diff --git a/app/build.gradle b/app/build.gradle index 9c056c542..56137fffa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,8 +22,8 @@ android { testApplicationId "io.github.tests.wulkanowy" minSdkVersion 21 targetSdkVersion 31 - versionCode 104 - versionName "1.6.0" + versionCode 105 + versionName "1.6.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" resValue "string", "app_name", "Wulkanowy" @@ -241,7 +241,7 @@ dependencies { playImplementation 'com.google.android.play:core-ktx:1.8.1' playImplementation 'com.google.android.gms:play-services-ads:20.6.0' - hmsImplementation 'com.huawei.hms:hianalytics:6.4.1.300' + hmsImplementation 'com.huawei.hms:hianalytics:6.4.1.301' hmsImplementation 'com.huawei.agconnect:agconnect-crash:1.6.5.200' releaseImplementation "com.github.ChuckerTeam.Chucker:library-no-op:$chucker" diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/Destination.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/Destination.kt index f49c48891..f8c456fe6 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/Destination.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/Destination.kt @@ -1,5 +1,6 @@ package io.github.wulkanowy.ui.modules +import android.os.Parcelable import androidx.fragment.app.Fragment import io.github.wulkanowy.data.serializers.LocalDateSerializer import io.github.wulkanowy.ui.modules.attendance.AttendanceFragment @@ -15,11 +16,12 @@ import io.github.wulkanowy.ui.modules.note.NoteFragment import io.github.wulkanowy.ui.modules.schoolandteachers.school.SchoolFragment import io.github.wulkanowy.ui.modules.schoolannouncement.SchoolAnnouncementFragment import io.github.wulkanowy.ui.modules.timetable.TimetableFragment +import kotlinx.parcelize.Parcelize import kotlinx.serialization.Serializable import java.time.LocalDate @Serializable -sealed class Destination private constructor() : java.io.Serializable { +sealed class Destination private constructor() : Parcelable { /* Type in children classes have to be as getter to avoid null in enums @@ -45,30 +47,35 @@ sealed class Destination private constructor() : java.io.Serializable { MESSAGE(Message); } + @Parcelize @Serializable object Dashboard : Destination() { override val type get() = Type.DASHBOARD override val fragment get() = DashboardFragment.newInstance() } + @Parcelize @Serializable object Grade : Destination() { override val type get() = Type.GRADE override val fragment get() = GradeFragment.newInstance() } + @Parcelize @Serializable object Attendance : Destination() { override val type get() = Type.ATTENDANCE override val fragment get() = AttendanceFragment.newInstance() } + @Parcelize @Serializable object Exam : Destination() { override val type get() = Type.EXAM override val fragment get() = ExamFragment.newInstance() } + @Parcelize @Serializable data class Timetable( @Serializable(with = LocalDateSerializer::class) @@ -78,51 +85,59 @@ sealed class Destination private constructor() : java.io.Serializable { override val fragment get() = TimetableFragment.newInstance(date) } + @Parcelize @Serializable object Homework : Destination() { override val type get() = Type.HOMEWORK override val fragment get() = HomeworkFragment.newInstance() } + @Parcelize @Serializable object Note : Destination() { override val type get() = Type.NOTE override val fragment get() = NoteFragment.newInstance() } + @Parcelize @Serializable object Conference : Destination() { override val type get() = Type.CONFERENCE override val fragment get() = ConferenceFragment.newInstance() } + @Parcelize @Serializable object SchoolAnnouncement : Destination() { override val type get() = Type.SCHOOL_ANNOUNCEMENT override val fragment get() = SchoolAnnouncementFragment.newInstance() } + @Parcelize @Serializable object School : Destination() { override val type get() = Type.SCHOOL override val fragment get() = SchoolFragment.newInstance() } + @Parcelize @Serializable object LuckyNumber : Destination() { override val type get() = Type.LUCKY_NUMBER override val fragment get() = LuckyNumberFragment.newInstance() } + @Parcelize @Serializable object More : Destination() { override val type get() = Type.MORE override val fragment get() = MoreFragment.newInstance() } + @Parcelize @Serializable object Message : Destination() { override val type get() = Type.MESSAGE override val fragment get() = MessageFragment.newInstance() } -} \ No newline at end of file +} diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt index e016c07e6..e03e3e90e 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt @@ -78,7 +78,7 @@ class LuckyNumberWidgetProvider : AppWidgetProvider() { .apply { setTextViewText( R.id.luckyNumberWidgetNumber, - luckyNumber.dataOrNull?.toString() ?: "#" + luckyNumber.dataOrNull?.luckyNumber?.toString() ?: "#" ) setOnClickPendingIntent(R.id.luckyNumberWidgetContainer, appIntent) } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt index 0cd38ac7d..d1f324475 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt @@ -86,7 +86,7 @@ class MainActivity : BaseActivity(), MainVie messageContainer = binding.mainMessageContainer updateHelper.messageContainer = binding.mainFragmentContainer - val destination = (intent.getSerializableExtra(EXTRA_START_DESTINATION) as Destination?) + val destination = (intent.getParcelableExtra(EXTRA_START_DESTINATION) as Destination?) ?.takeIf { savedInstanceState == null } presenter.onAttachView(this, destination) diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/splash/SplashActivity.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/splash/SplashActivity.kt index a86024e49..24347e735 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/splash/SplashActivity.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/splash/SplashActivity.kt @@ -45,7 +45,7 @@ class SplashActivity : BaseActivity(), SplashView installSplashScreen().setKeepOnScreenCondition { true } val externalLink = intent?.getStringExtra(EXTRA_EXTERNAL_URL) - val startDestination = intent?.getSerializableExtra(EXTRA_START_DESTINATION) as Destination? + val startDestination = intent?.getParcelableExtra(EXTRA_START_DESTINATION) as Destination? ?: shortcutsHelper.getDestination(intent) presenter.onAttachView(this, externalLink, startDestination) diff --git a/app/src/main/res/layout/dialog_exam.xml b/app/src/main/res/layout/dialog_exam.xml index 57ed9d45b..0d04b1fac 100644 --- a/app/src/main/res/layout/dialog_exam.xml +++ b/app/src/main/res/layout/dialog_exam.xml @@ -146,7 +146,7 @@ android:id="@+id/examDialogDeadlineDateValue" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="0dp" + android:layout_marginStart="16dp" android:layout_marginEnd="24dp" android:paddingStart="0dp" android:paddingEnd="16dp" @@ -162,7 +162,7 @@ android:id="@+id/examDialogEntryDateTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="0dp" + android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:layout_marginEnd="24dp" android:text="@string/exam_entry_date" diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 555da8dfa..11054a0e5 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -71,6 +71,7 @@ Obnovte svůj účet Obnovit Žák je už přihlášen + Standardní Manažer účtů Přihlásit se @@ -93,9 +94,9 @@ Předpokládaná známka Vypočítaný průměr Jak funguje vypočítaný průměr? - Vypočítaný průměr je aritmetický průměr vypočítaný z průměrů předmětů. Umožňuje vám to znát přibližný konečný průměr. Vypočítává se způsobem zvoleným uživatelem v nastavení aplikaci. Doporučuje se vybrat příslušnou možnost. Důvodem je rozdílný výpočet školních průměrů. Pokud vaše škola navíc uvádí průměr předmětů na stránce deníku Vulcan, aplikace si je stáhne a tyto průměry nepočítá. To lze změnit vynucením výpočtu průměru v nastavení aplikaci.\n\nPrůměr známek pouze z vybraného semestru:\n1. Výpočet váženého průměru pro každý předmět v daném semestru\n2. Sčítání vypočítaných průměrů\n3. Výpočet aritmetického průměru součtených průměrů\n\nPrůměr průměrů z obou semestrů:\n1. Výpočet váženého průměru pro každý předmět v semestru 1 a 2\n2. Výpočet aritmetického průměru vypočítaných průměrů za semestry 1 a 2 pro každý předmět.\n3. Sčítání vypočítaných průměrů\n4. Výpočet aritmetického průměru součtených průměrů\n\nPrůměr známek z celého roku:\n1. Výpočet váženého průměru za rok pro každý předmět. Konečný průměr v 1. semestru je nepodstatný.\n3. Sčítání vypočítaných průměrů\n4. Výpočet aritmetického průměru součtených průměrů + Vypočítaný průměr je aritmetický průměr vypočítaný z průměrů předmětů. Umožňuje vám to znát přibližný konečný průměr. Vypočítává se způsobem zvoleným uživatelem v nastavení aplikaci. Doporučuje se vybrat příslušnou možnost. Důvodem je rozdílný výpočet školních průměrů. Pokud vaše škola navíc uvádí průměr předmětů na stránce deníku Vulcan, aplikace si je stáhne a tyto průměry nepočítá. To lze změnit vynucením výpočtu průměru v nastavení aplikaci.\n\nPrůměr známek pouze z vybraného semestru:\n1. Výpočet váženého průměru pro každý předmět v daném semestru\n2. Sčítání vypočítaných průměrů\n3. Výpočet aritmetického průměru součtených průměrů\n\nPrůměr průměrů z obou semestrů:\n1. Výpočet váženého průměru pro každý předmět v semestru 1 a 2\n2. Výpočet aritmetického průměru vypočítaných průměrů za semestry 1 a 2 pro každý předmět.\n3. Sčítání vypočítaných průměrů\n4. Výpočet aritmetického průměru sečtených průměrů\n\nPrůměr známek z celého roku:\n1. Výpočet váženého průměru za rok pro každý předmět. Konečný průměr v 1. semestru je nepodstatný.\n3. Sčítání vypočítaných průměrů\n4. Výpočet aritmetického průměru součtených průměrů Jak funguje konečný průměr? - Konečný průměr je aritmetický průměr vypočítaný ze všech aktuálně dostupných konečných známek v daném semestru.\n\nSchéma výpočtu se skládá z následujících kroků:\n1. Sčítání konečných známek zadaných učiteli\n2. Děleno počtem předmětů, pro které už byly vydány známky + Konečný průměr je aritmetický průměr vypočítaný ze všech aktuálně dostupných konečných známek v daném semestru.\n\nSchéma výpočtu se skládá z následujících kroků:\n1. Sčítání konečných známek zadaných učiteli\n2. Děleno počtem předmětů, pro které už byly uděleny známky Konečný průměr z %1$d z %2$d předmětů Shrnutí @@ -219,7 +220,7 @@ Čas ukončení musí být pozdější než čas zahájení Shrnutí frekvencí - Neprítomnosť zo školských dôvodov + Nepřítomnost ze školních důvodů Omluvená nepřítomnost Neomluvená nepřítomnost Osvobození diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 8492f6460..86308aa19 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -71,6 +71,7 @@ Ihr Konto wiederherstellen Wiederherstellen Student ist bereits angemeldet + Standard Kundenbetreuer Anmelden diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 2c8a83cca..1607b17c6 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -71,6 +71,7 @@ Przywróć swoje konto Przywróć Uczeń jest już zalogowany + Standardowa Menadżer kont Zaloguj się diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 1ddcaf4c5..909a627cb 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -71,6 +71,7 @@ Восстановите свой аккаунт Восстановить Студент уже вошел в систему + Стандартный Менеджер аккаунтов Войти diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 804473add..5ebd1e76b 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -71,6 +71,7 @@ Obnovte svoj účet Obnoviť Žiak je už prihlásený + Štandardná Manažér účtov Prihlásiť sa diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index c53161e71..7e01f70b6 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -71,6 +71,7 @@ Відновіть свій обліковий запис Відновити Учень вже увійшов до системи + Стандартний Менеджер аккаунтів Увійти diff --git a/app/src/main/res/values/api_hosts.xml b/app/src/main/res/values/api_hosts.xml index b3b434e14..8413d68e4 100644 --- a/app/src/main/res/values/api_hosts.xml +++ b/app/src/main/res/values/api_hosts.xml @@ -1,7 +1,7 @@ - Standardowa + @string/login_host_standard Opolska eSzkoła Gdańska Platforma Edukacyjna Lubelski Portal Oświatowy diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2763f00de..ff25da7f5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -77,6 +77,7 @@ Recover your account Recover Student is already signed in + Standard diff --git a/build.gradle b/build.gradle index 742d39569..9aa30944f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ buildscript { ext { - kotlin_version = '1.6.10' + kotlin_version = '1.6.20' about_libraries = '8.9.4' hilt_version = "2.41" }