forked from github/szkolny
Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
147f4c39e5 | |||
9e95d05182 | |||
9ccb6e0a24 |
@ -1,12 +1,6 @@
|
|||||||
<h3>Wersja 4.6, 2021-02-26</h3>
|
<h3>Wersja 4.6.1, 2021-03-04</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Vulcan: aplikacja Szkolny.eu zaktualizowana w związku z wygaszeniem aplikacji Dzienniczek+.</li>
|
<li>Przywrócono obsługę dziennika Librus Synergia.</li>
|
||||||
<li>Vulcan: dodano wyświetlanie <b>szczęśliwego numerka.</b></li>
|
|
||||||
<li>Vulcan: dodano możliwość logowania adresem e-mail lub nazwą użytkownika - wersja testowa.</li>
|
|
||||||
<li>Vulcan: usunięto wyświetlanie zadań domowych i sprawdzianów z poprzednich lat.</li>
|
|
||||||
<li>Mobidziennik: naprawiono otwieranie wysłanej wiadomości.</li>
|
|
||||||
<li>Mobidziennik: poprawiono wyświetlanie oraz liczenie e-obecności.</li>
|
|
||||||
<li>iDziennik: usunięto dziennik w związku z wygaszeniem systemu. [*]</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
/*secret password - removed for source code publication*/
|
/*secret password - removed for source code publication*/
|
||||||
static toys AES_IV[16] = {
|
static toys AES_IV[16] = {
|
||||||
0x9f, 0xff, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
0xdc, 0x61, 0x4d, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
||||||
|
|
||||||
unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat);
|
unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat);
|
||||||
|
|
||||||
|
@ -46,6 +46,6 @@ object Signing {
|
|||||||
|
|
||||||
/*fun provideKey(param1: String, param2: Long): ByteArray {*/
|
/*fun provideKey(param1: String, param2: Long): ByteArray {*/
|
||||||
fun pleaseStopRightNow(param1: String, param2: Long): ByteArray {
|
fun pleaseStopRightNow(param1: String, param2: Long): ByteArray {
|
||||||
return "$param1.MTIzNDU2Nzg5MDgzuDTD2K===.$param2".sha256()
|
return "$param1.MTIzNDU2Nzg5MDAXOgN264===.$param2".sha256()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ import androidx.core.view.isVisible
|
|||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
import com.google.firebase.analytics.FirebaseAnalytics
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import pl.szczodrzynski.edziennik.*
|
import pl.szczodrzynski.edziennik.*
|
||||||
import pl.szczodrzynski.edziennik.data.api.*
|
import pl.szczodrzynski.edziennik.data.api.*
|
||||||
@ -201,6 +202,12 @@ class LoginChooserFragment : Fragment(), CoroutineScope {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (loginType.loginType == LOGIN_TYPE_LIBRUS) {
|
||||||
|
FirebaseAnalytics.getInstance(activity).logEvent("librus_hacked", Bundle())
|
||||||
|
nav.navigate(R.id.loginLibrusFragment, null, activity.navOptions)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
launch {
|
launch {
|
||||||
if (!checkAvailability(loginType.loginType))
|
if (!checkAvailability(loginType.loginType))
|
||||||
return@launch
|
return@launch
|
||||||
|
@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) Kacper Ziubryniewicz 2021-3-1
|
||||||
|
*/
|
||||||
|
|
||||||
|
package pl.szczodrzynski.edziennik.ui.modules.login
|
||||||
|
|
||||||
|
import android.net.Uri
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.Job
|
||||||
|
import pl.szczodrzynski.edziennik.App
|
||||||
|
import pl.szczodrzynski.edziennik.databinding.LoginLibrusFragmentBinding
|
||||||
|
import kotlin.coroutines.CoroutineContext
|
||||||
|
|
||||||
|
class LoginLibrusFragment : Fragment(), CoroutineScope {
|
||||||
|
companion object {
|
||||||
|
private const val TAG = "LoginLibrusFragment"
|
||||||
|
}
|
||||||
|
|
||||||
|
private lateinit var app: App
|
||||||
|
private lateinit var activity: LoginActivity
|
||||||
|
private lateinit var b: LoginLibrusFragmentBinding
|
||||||
|
|
||||||
|
private val job: Job = Job()
|
||||||
|
override val coroutineContext: CoroutineContext
|
||||||
|
get() = job + Dispatchers.Main
|
||||||
|
|
||||||
|
override fun onCreateView(
|
||||||
|
inflater: LayoutInflater,
|
||||||
|
container: ViewGroup?,
|
||||||
|
savedInstanceState: Bundle?
|
||||||
|
): View? {
|
||||||
|
activity = (getActivity() as LoginActivity?) ?: return null
|
||||||
|
context ?: return null
|
||||||
|
app = activity.application as App
|
||||||
|
b = LoginLibrusFragmentBinding.inflate(inflater)
|
||||||
|
return b.root
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
b.librus2021HackWorking100PercentLegit.apply {
|
||||||
|
setVideoURI(Uri.parse("https://szkolny.eu/librus.mp4"))
|
||||||
|
setMediaController(null)
|
||||||
|
requestFocus()
|
||||||
|
start()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
20
app/src/main/res/layout/login_librus_fragment.xml
Normal file
20
app/src/main/res/layout/login_librus_fragment.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) Kacper Ziubryniewicz 2021-3-1
|
||||||
|
-->
|
||||||
|
|
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center"
|
||||||
|
android:background="@color/black">
|
||||||
|
|
||||||
|
<VideoView
|
||||||
|
android:id="@+id/librus_2021_hack_working_100_percent_legit"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
</LinearLayout>
|
||||||
|
</layout>
|
@ -22,6 +22,9 @@
|
|||||||
<action
|
<action
|
||||||
android:id="@+id/action_loginChooserFragment_to_loginEggsFragment"
|
android:id="@+id/action_loginChooserFragment_to_loginEggsFragment"
|
||||||
app:destination="@id/loginEggsFragment" />
|
app:destination="@id/loginEggsFragment" />
|
||||||
|
<!-- librus -->
|
||||||
|
<action android:id="@+id/action_loginChooserFragment_to_loginLibrusFragment"
|
||||||
|
app:destination="@id/loginLibrusFragment" />
|
||||||
</fragment>
|
</fragment>
|
||||||
<!-- eggs -->
|
<!-- eggs -->
|
||||||
<fragment
|
<fragment
|
||||||
@ -32,6 +35,12 @@
|
|||||||
android:id="@+id/action_loginEggsFragment_to_loginPrizeFragment"
|
android:id="@+id/action_loginEggsFragment_to_loginPrizeFragment"
|
||||||
app:destination="@id/loginPrizeFragment" />
|
app:destination="@id/loginPrizeFragment" />
|
||||||
</fragment>
|
</fragment>
|
||||||
|
<!-- librus -->
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/loginLibrusFragment"
|
||||||
|
android:name="pl.szczodrzynski.edziennik.ui.modules.login.LoginLibrusFragment"
|
||||||
|
android:label="LoginEggsFragment">
|
||||||
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/loginPrizeFragment"
|
android:id="@+id/loginPrizeFragment"
|
||||||
android:name="pl.szczodrzynski.edziennik.ui.modules.login.LoginPrizeFragment"
|
android:name="pl.szczodrzynski.edziennik.ui.modules.login.LoginPrizeFragment"
|
||||||
|
@ -5,8 +5,8 @@ buildscript {
|
|||||||
kotlin_version = '1.4.30'
|
kotlin_version = '1.4.30'
|
||||||
|
|
||||||
release = [
|
release = [
|
||||||
versionName: "4.6",
|
versionName: "4.6.1",
|
||||||
versionCode: 4060099
|
versionCode: 4060199
|
||||||
]
|
]
|
||||||
|
|
||||||
setup = [
|
setup = [
|
||||||
|
Reference in New Issue
Block a user