diff --git a/app/proguard/app.pro b/app/proguard/app.pro index 68d1fde8..b96a904c 100644 --- a/app/proguard/app.pro +++ b/app/proguard/app.pro @@ -64,6 +64,6 @@ -keep class pl.szczodrzynski.edziennik.data.api.szkolny.interceptor.Signing { public final byte[] pleaseStopRightNow(java.lang.String, long); } --keepclassmembernames class pl.szczodrzynski.edziennik.data.api.szkolny.request.** { *; } --keepclassmembernames class pl.szczodrzynski.edziennik.data.api.szkolny.response.** { *; } +-keepclassmembers class pl.szczodrzynski.edziennik.data.api.szkolny.request.** { *; } +-keepclassmembers class pl.szczodrzynski.edziennik.data.api.szkolny.response.** { *; } -keepclassmembernames class pl.szczodrzynski.edziennik.ui.modules.login.LoginInfo.Platform { *; } diff --git a/app/src/main/assets/pl-changelog.html b/app/src/main/assets/pl-changelog.html index 217e9cd2..c7150a83 100644 --- a/app/src/main/assets/pl-changelog.html +++ b/app/src/main/assets/pl-changelog.html @@ -1,8 +1,9 @@ -

Wersja 4.4.1, 2020-09-03

+

Wersja 4.4.2, 2020-09-05



diff --git a/app/src/main/cpp/szkolny-signing.cpp b/app/src/main/cpp/szkolny-signing.cpp index 4d19eb33..9642f8a9 100644 --- a/app/src/main/cpp/szkolny-signing.cpp +++ b/app/src/main/cpp/szkolny-signing.cpp @@ -9,7 +9,7 @@ /*secret password - removed for source code publication*/ static toys AES_IV[16] = { - 0x72, 0x4b, 0x61, 0x3a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + 0x1a, 0xcd, 0xf0, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat); diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt b/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt index e1fe3b0c..28331a75 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt @@ -647,7 +647,7 @@ class MainActivity : AppCompatActivity(), CoroutineScope { app.profile.registerName?.let { registerName -> var status = app.config.sync.registerAvailability[registerName] - if (status == null || status.nextCheck < currentTimeUnix()) { + if (status == null || status.nextCheckAt < currentTimeUnix()) { withContext(Dispatchers.IO) { val api = SzkolnyApi(app) api.runCatching(this@MainActivity) { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/EdziennikTask.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/EdziennikTask.kt index aa316948..c6938f7a 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/EdziennikTask.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/EdziennikTask.kt @@ -93,7 +93,7 @@ open class EdziennikTask(override val profileId: Int, val request: Any) : IApiTa profile.registerName?.let { registerName -> var status = app.config.sync.registerAvailability[registerName] - if (status == null || status.nextCheck < currentTimeUnix()) { + if (status == null || status.nextCheckAt < currentTimeUnix()) { val api = SzkolnyApi(app) api.runCatching({ val availability = getRegisterAvailability() diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt index 76fc1193..4d9f425c 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt @@ -46,6 +46,6 @@ object Signing { /*fun provideKey(param1: String, param2: Long): ByteArray {*/ fun pleaseStopRightNow(param1: String, param2: Long): ByteArray { - return "$param1.MTIzNDU2Nzg5MDv1BTei5k===.$param2".sha256() + return "$param1.MTIzNDU2Nzg5MDx45DzIF8===.$param2".sha256() } } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/response/RegisterAvailabilityStatus.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/response/RegisterAvailabilityStatus.kt index 0596a8ac..82f2e050 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/response/RegisterAvailabilityStatus.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/response/RegisterAvailabilityStatus.kt @@ -11,8 +11,8 @@ import pl.szczodrzynski.edziennik.currentTimeUnix data class RegisterAvailabilityStatus( val available: Boolean, val name: String?, - val message: Message?, - val nextCheck: Long = currentTimeUnix() + 7 * DAY, + val userMessage: Message?, + val nextCheckAt: Long = currentTimeUnix() + 7 * DAY, val minVersionCode: Int = BuildConfig.VERSION_CODE ) { data class Message( diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/RegisterUnavailableDialog.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/RegisterUnavailableDialog.kt index e1e4b2b6..6ecd494f 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/RegisterUnavailableDialog.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/RegisterUnavailableDialog.kt @@ -47,14 +47,14 @@ class RegisterUnavailableDialog( onShowListener?.invoke(TAG) app = activity.applicationContext as App - if (!status.available && status.message != null) { + if (!status.available && status.userMessage != null) { val b = DialogRegisterUnavailableBinding.inflate(LayoutInflater.from(activity), null, false) - b.message = status.message - if (status.message.image != null) - b.image.load(status.message.image) - if (status.message.url != null) { + b.message = status.userMessage + if (status.userMessage.image != null) + b.image.load(status.userMessage.image) + if (status.userMessage.url != null) { b.readMore.onClick { - Utils.openUrl(activity, status.message.url) + Utils.openUrl(activity, status.userMessage.url) } } b.text.movementMethod = LinkMovementMethod.getInstance() @@ -67,6 +67,7 @@ class RegisterUnavailableDialog( onDismissListener?.invoke(TAG) } .show() + return@run } val update = app.config.update diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/cards/HomeAvailabilityCard.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/cards/HomeAvailabilityCard.kt index eefd4f6f..957dff0c 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/cards/HomeAvailabilityCard.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/cards/HomeAvailabilityCard.kt @@ -4,11 +4,11 @@ package pl.szczodrzynski.edziennik.ui.modules.home.cards -import android.text.Html import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.FrameLayout +import androidx.core.text.HtmlCompat import androidx.core.view.isVisible import androidx.core.view.plusAssign import androidx.core.view.setMargins @@ -58,13 +58,13 @@ class HomeAvailabilityCard( var onInfoClick = { _: View -> } - if (status != null && !status.available && status.message != null) { - b.homeAvailabilityTitle.text = Html.fromHtml(status.message.title) - b.homeAvailabilityText.text = Html.fromHtml(status.message.contentShort) + if (status != null && !status.available && status.userMessage != null) { + b.homeAvailabilityTitle.text = HtmlCompat.fromHtml(status.userMessage.title, HtmlCompat.FROM_HTML_MODE_LEGACY) + b.homeAvailabilityText.text = HtmlCompat.fromHtml(status.userMessage.contentShort, HtmlCompat.FROM_HTML_MODE_LEGACY) b.homeAvailabilityUpdate.isVisible = false b.homeAvailabilityIcon.setImageResource(R.drawable.ic_sync) - if (status.message.icon != null) - b.homeAvailabilityIcon.load(status.message.icon) + if (status.userMessage.icon != null) + b.homeAvailabilityIcon.load(status.userMessage.icon) onInfoClick = { RegisterUnavailableDialog(activity, status) } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/login/LoginChooserFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/login/LoginChooserFragment.kt index 90945294..abbb4ad9 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/login/LoginChooserFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/login/LoginChooserFragment.kt @@ -117,7 +117,7 @@ class LoginChooserFragment : Fragment(), CoroutineScope { else -> null }?.let { registerName -> var status = app.config.sync.registerAvailability[registerName] - if (status == null || status.nextCheck < currentTimeUnix()) { + if (status == null || status.nextCheckAt < currentTimeUnix()) { withContext(Dispatchers.IO) { val api = SzkolnyApi(app) api.runCatching(activity) { diff --git a/app/src/main/res/layout/dialog_register_unavailable.xml b/app/src/main/res/layout/dialog_register_unavailable.xml index da86a52b..a47bf17c 100644 --- a/app/src/main/res/layout/dialog_register_unavailable.xml +++ b/app/src/main/res/layout/dialog_register_unavailable.xml @@ -8,7 +8,7 @@ - + @@ -45,7 +45,7 @@ android:id="@+id/title" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@{Html.fromHtml(message.title)}" + android:text="@{HtmlCompat.fromHtml(message.title, HtmlCompat.FROM_HTML_MODE_LEGACY)}" android:textAppearance="@style/NavView.TextView.Title" tools:text="Dziennik nie działa" /> @@ -54,7 +54,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" - android:text="@{Html.fromHtml(message.contentLong)}" + android:text="@{HtmlCompat.fromHtml(message.contentLong, HtmlCompat.FROM_HTML_MODE_LEGACY)}" tools:text="Dziennik się zepsuł i nie działa, szkoda\n\n\nwiele linijek ma ten tekst" /> Brak aktualnego profilu Uczeń %s nie posiada profilu na tym koncie w aktualnym roku szkolnym. Prawdopodobnie ten profil został usunięty lub uczeń nie uczęszcza już do tej klasy.\n\nAby przejść do aktualnego profilu, wybierz ucznia z listy lub zaloguj się na jego konto przyciskiem Dodaj ucznia. Znaki towarowe zamieszczone w tej aplikacji należą do ich prawowitych właścicieli i są używane wyłącznie w celach informacyjnych. - Dostępna aktualiacja aplikacji + Dostępna aktualizacja aplikacji Używasz starej wersji aplikacji Szkolny.eu (%s). Aby móc korzystać z aplikacji oraz zapewnić najlepsze działanie, zaktualizuj aplikację do wersji %s.\n\nDziennik zmian:\n%s Posiadasz nieaktualną wersję aplikacji Szkolny.eu. Aby móc dalej synchronizować dane, musisz zaktualizować aplikację. Aktualizuj diff --git a/build.gradle b/build.gradle index 1f63c6ba..43dc3e9f 100644 --- a/build.gradle +++ b/build.gradle @@ -5,8 +5,8 @@ buildscript { kotlin_version = '1.3.61' release = [ - versionName: "4.4.1", - versionCode: 4040199 + versionName: "4.4.2", + versionCode: 4040299 ] setup = [