mirror of
https://github.com/wulkanowy/wulkanowy.git
synced 2024-11-25 20:34:41 -06:00
Merge branch 'release/1.6.1'
This commit is contained in:
commit
ae65228805
@ -22,8 +22,8 @@ android {
|
|||||||
testApplicationId "io.github.tests.wulkanowy"
|
testApplicationId "io.github.tests.wulkanowy"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 31
|
targetSdkVersion 31
|
||||||
versionCode 104
|
versionCode 105
|
||||||
versionName "1.6.0"
|
versionName "1.6.1"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
|
||||||
resValue "string", "app_name", "Wulkanowy"
|
resValue "string", "app_name", "Wulkanowy"
|
||||||
@ -241,7 +241,7 @@ dependencies {
|
|||||||
playImplementation 'com.google.android.play:core-ktx:1.8.1'
|
playImplementation 'com.google.android.play:core-ktx:1.8.1'
|
||||||
playImplementation 'com.google.android.gms:play-services-ads:20.6.0'
|
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'
|
hmsImplementation 'com.huawei.agconnect:agconnect-crash:1.6.5.200'
|
||||||
|
|
||||||
releaseImplementation "com.github.ChuckerTeam.Chucker:library-no-op:$chucker"
|
releaseImplementation "com.github.ChuckerTeam.Chucker:library-no-op:$chucker"
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package io.github.wulkanowy.ui.modules
|
package io.github.wulkanowy.ui.modules
|
||||||
|
|
||||||
|
import android.os.Parcelable
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import io.github.wulkanowy.data.serializers.LocalDateSerializer
|
import io.github.wulkanowy.data.serializers.LocalDateSerializer
|
||||||
import io.github.wulkanowy.ui.modules.attendance.AttendanceFragment
|
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.schoolandteachers.school.SchoolFragment
|
||||||
import io.github.wulkanowy.ui.modules.schoolannouncement.SchoolAnnouncementFragment
|
import io.github.wulkanowy.ui.modules.schoolannouncement.SchoolAnnouncementFragment
|
||||||
import io.github.wulkanowy.ui.modules.timetable.TimetableFragment
|
import io.github.wulkanowy.ui.modules.timetable.TimetableFragment
|
||||||
|
import kotlinx.parcelize.Parcelize
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import java.time.LocalDate
|
import java.time.LocalDate
|
||||||
|
|
||||||
@Serializable
|
@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
|
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);
|
MESSAGE(Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
object Dashboard : Destination() {
|
object Dashboard : Destination() {
|
||||||
override val type get() = Type.DASHBOARD
|
override val type get() = Type.DASHBOARD
|
||||||
override val fragment get() = DashboardFragment.newInstance()
|
override val fragment get() = DashboardFragment.newInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
object Grade : Destination() {
|
object Grade : Destination() {
|
||||||
override val type get() = Type.GRADE
|
override val type get() = Type.GRADE
|
||||||
override val fragment get() = GradeFragment.newInstance()
|
override val fragment get() = GradeFragment.newInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
object Attendance : Destination() {
|
object Attendance : Destination() {
|
||||||
override val type get() = Type.ATTENDANCE
|
override val type get() = Type.ATTENDANCE
|
||||||
override val fragment get() = AttendanceFragment.newInstance()
|
override val fragment get() = AttendanceFragment.newInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
object Exam : Destination() {
|
object Exam : Destination() {
|
||||||
override val type get() = Type.EXAM
|
override val type get() = Type.EXAM
|
||||||
override val fragment get() = ExamFragment.newInstance()
|
override val fragment get() = ExamFragment.newInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Timetable(
|
data class Timetable(
|
||||||
@Serializable(with = LocalDateSerializer::class)
|
@Serializable(with = LocalDateSerializer::class)
|
||||||
@ -78,51 +85,59 @@ sealed class Destination private constructor() : java.io.Serializable {
|
|||||||
override val fragment get() = TimetableFragment.newInstance(date)
|
override val fragment get() = TimetableFragment.newInstance(date)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
object Homework : Destination() {
|
object Homework : Destination() {
|
||||||
override val type get() = Type.HOMEWORK
|
override val type get() = Type.HOMEWORK
|
||||||
override val fragment get() = HomeworkFragment.newInstance()
|
override val fragment get() = HomeworkFragment.newInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
object Note : Destination() {
|
object Note : Destination() {
|
||||||
override val type get() = Type.NOTE
|
override val type get() = Type.NOTE
|
||||||
override val fragment get() = NoteFragment.newInstance()
|
override val fragment get() = NoteFragment.newInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
object Conference : Destination() {
|
object Conference : Destination() {
|
||||||
override val type get() = Type.CONFERENCE
|
override val type get() = Type.CONFERENCE
|
||||||
override val fragment get() = ConferenceFragment.newInstance()
|
override val fragment get() = ConferenceFragment.newInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
object SchoolAnnouncement : Destination() {
|
object SchoolAnnouncement : Destination() {
|
||||||
override val type get() = Type.SCHOOL_ANNOUNCEMENT
|
override val type get() = Type.SCHOOL_ANNOUNCEMENT
|
||||||
override val fragment get() = SchoolAnnouncementFragment.newInstance()
|
override val fragment get() = SchoolAnnouncementFragment.newInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
object School : Destination() {
|
object School : Destination() {
|
||||||
override val type get() = Type.SCHOOL
|
override val type get() = Type.SCHOOL
|
||||||
override val fragment get() = SchoolFragment.newInstance()
|
override val fragment get() = SchoolFragment.newInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
object LuckyNumber : Destination() {
|
object LuckyNumber : Destination() {
|
||||||
override val type get() = Type.LUCKY_NUMBER
|
override val type get() = Type.LUCKY_NUMBER
|
||||||
override val fragment get() = LuckyNumberFragment.newInstance()
|
override val fragment get() = LuckyNumberFragment.newInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
object More : Destination() {
|
object More : Destination() {
|
||||||
override val type get() = Type.MORE
|
override val type get() = Type.MORE
|
||||||
override val fragment get() = MoreFragment.newInstance()
|
override val fragment get() = MoreFragment.newInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Serializable
|
@Serializable
|
||||||
object Message : Destination() {
|
object Message : Destination() {
|
||||||
override val type get() = Type.MESSAGE
|
override val type get() = Type.MESSAGE
|
||||||
override val fragment get() = MessageFragment.newInstance()
|
override val fragment get() = MessageFragment.newInstance()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,7 @@ class LuckyNumberWidgetProvider : AppWidgetProvider() {
|
|||||||
.apply {
|
.apply {
|
||||||
setTextViewText(
|
setTextViewText(
|
||||||
R.id.luckyNumberWidgetNumber,
|
R.id.luckyNumberWidgetNumber,
|
||||||
luckyNumber.dataOrNull?.toString() ?: "#"
|
luckyNumber.dataOrNull?.luckyNumber?.toString() ?: "#"
|
||||||
)
|
)
|
||||||
setOnClickPendingIntent(R.id.luckyNumberWidgetContainer, appIntent)
|
setOnClickPendingIntent(R.id.luckyNumberWidgetContainer, appIntent)
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ class MainActivity : BaseActivity<MainPresenter, ActivityMainBinding>(), MainVie
|
|||||||
messageContainer = binding.mainMessageContainer
|
messageContainer = binding.mainMessageContainer
|
||||||
updateHelper.messageContainer = binding.mainFragmentContainer
|
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 }
|
?.takeIf { savedInstanceState == null }
|
||||||
|
|
||||||
presenter.onAttachView(this, destination)
|
presenter.onAttachView(this, destination)
|
||||||
|
@ -45,7 +45,7 @@ class SplashActivity : BaseActivity<SplashPresenter, ViewBinding>(), SplashView
|
|||||||
installSplashScreen().setKeepOnScreenCondition { true }
|
installSplashScreen().setKeepOnScreenCondition { true }
|
||||||
|
|
||||||
val externalLink = intent?.getStringExtra(EXTRA_EXTERNAL_URL)
|
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)
|
?: shortcutsHelper.getDestination(intent)
|
||||||
|
|
||||||
presenter.onAttachView(this, externalLink, startDestination)
|
presenter.onAttachView(this, externalLink, startDestination)
|
||||||
|
@ -146,7 +146,7 @@
|
|||||||
android:id="@+id/examDialogDeadlineDateValue"
|
android:id="@+id/examDialogDeadlineDateValue"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="0dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginEnd="24dp"
|
android:layout_marginEnd="24dp"
|
||||||
android:paddingStart="0dp"
|
android:paddingStart="0dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
@ -162,7 +162,7 @@
|
|||||||
android:id="@+id/examDialogEntryDateTitle"
|
android:id="@+id/examDialogEntryDateTitle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="0dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:layout_marginEnd="24dp"
|
android:layout_marginEnd="24dp"
|
||||||
android:text="@string/exam_entry_date"
|
android:text="@string/exam_entry_date"
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
<string name="login_recover_title">Obnovte svůj účet</string>
|
<string name="login_recover_title">Obnovte svůj účet</string>
|
||||||
<string name="login_recover">Obnovit</string>
|
<string name="login_recover">Obnovit</string>
|
||||||
<string name="login_signed_in">Žák je už přihlášen</string>
|
<string name="login_signed_in">Žák je už přihlášen</string>
|
||||||
|
<string name="login_host_standard">Standardní</string>
|
||||||
<!--Main-->
|
<!--Main-->
|
||||||
<string name="main_account_picker">Manažer účtů</string>
|
<string name="main_account_picker">Manažer účtů</string>
|
||||||
<string name="main_log_in">Přihlásit se</string>
|
<string name="main_log_in">Přihlásit se</string>
|
||||||
@ -93,9 +94,9 @@
|
|||||||
<string name="grade_summary_predicted_grade">Předpokládaná známka</string>
|
<string name="grade_summary_predicted_grade">Předpokládaná známka</string>
|
||||||
<string name="grade_summary_calculated_average">Vypočítaný průměr</string>
|
<string name="grade_summary_calculated_average">Vypočítaný průměr</string>
|
||||||
<string name="grade_summary_calculated_average_help_dialog_title">Jak funguje vypočítaný průměr?</string>
|
<string name="grade_summary_calculated_average_help_dialog_title">Jak funguje vypočítaný průměr?</string>
|
||||||
<string name="grade_summary_calculated_average_help_dialog_message">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\n<b>Průměr známek pouze z vybraného semestru</b>:\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\n<b>Průměr průměrů z obou semestrů</b>:\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\n<b>Průměr známek z celého roku:</b>\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ů</string>
|
<string name="grade_summary_calculated_average_help_dialog_message">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\n<b>Průměr známek pouze z vybraného semestru</b>:\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\n<b>Průměr průměrů z obou semestrů</b>:\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\n<b>Průměr známek z celého roku:</b>\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ů</string>
|
||||||
<string name="grade_summary_final_average_help_dialog_title">Jak funguje konečný průměr?</string>
|
<string name="grade_summary_final_average_help_dialog_title">Jak funguje konečný průměr?</string>
|
||||||
<string name="grade_summary_final_average_help_dialog_message">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</string>
|
<string name="grade_summary_final_average_help_dialog_message">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</string>
|
||||||
<string name="grade_summary_final_average">Konečný průměr</string>
|
<string name="grade_summary_final_average">Konečný průměr</string>
|
||||||
<string name="grade_summary_from_subjects">z %1$d z %2$d předmětů</string>
|
<string name="grade_summary_from_subjects">z %1$d z %2$d předmětů</string>
|
||||||
<string name="grade_menu_summary">Shrnutí</string>
|
<string name="grade_menu_summary">Shrnutí</string>
|
||||||
@ -219,7 +220,7 @@
|
|||||||
<string name="additional_lessons_end_time_error">Čas ukončení musí být pozdější než čas zahájení</string>
|
<string name="additional_lessons_end_time_error">Čas ukončení musí být pozdější než čas zahájení</string>
|
||||||
<!--Attendance-->
|
<!--Attendance-->
|
||||||
<string name="attendance_summary_button">Shrnutí frekvencí</string>
|
<string name="attendance_summary_button">Shrnutí frekvencí</string>
|
||||||
<string name="attendance_absence_school">Neprítomnosť zo školských dôvodov</string>
|
<string name="attendance_absence_school">Nepřítomnost ze školních důvodů</string>
|
||||||
<string name="attendance_absence_excused">Omluvená nepřítomnost</string>
|
<string name="attendance_absence_excused">Omluvená nepřítomnost</string>
|
||||||
<string name="attendance_absence_unexcused">Neomluvená nepřítomnost</string>
|
<string name="attendance_absence_unexcused">Neomluvená nepřítomnost</string>
|
||||||
<string name="attendance_exemption">Osvobození</string>
|
<string name="attendance_exemption">Osvobození</string>
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
<string name="login_recover_title">Ihr Konto wiederherstellen</string>
|
<string name="login_recover_title">Ihr Konto wiederherstellen</string>
|
||||||
<string name="login_recover">Wiederherstellen</string>
|
<string name="login_recover">Wiederherstellen</string>
|
||||||
<string name="login_signed_in">Student ist bereits angemeldet</string>
|
<string name="login_signed_in">Student ist bereits angemeldet</string>
|
||||||
|
<string name="login_host_standard">Standard</string>
|
||||||
<!--Main-->
|
<!--Main-->
|
||||||
<string name="main_account_picker">Kundenbetreuer</string>
|
<string name="main_account_picker">Kundenbetreuer</string>
|
||||||
<string name="main_log_in">Anmelden</string>
|
<string name="main_log_in">Anmelden</string>
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
<string name="login_recover_title">Przywróć swoje konto</string>
|
<string name="login_recover_title">Przywróć swoje konto</string>
|
||||||
<string name="login_recover">Przywróć</string>
|
<string name="login_recover">Przywróć</string>
|
||||||
<string name="login_signed_in">Uczeń jest już zalogowany</string>
|
<string name="login_signed_in">Uczeń jest już zalogowany</string>
|
||||||
|
<string name="login_host_standard">Standardowa</string>
|
||||||
<!--Main-->
|
<!--Main-->
|
||||||
<string name="main_account_picker">Menadżer kont</string>
|
<string name="main_account_picker">Menadżer kont</string>
|
||||||
<string name="main_log_in">Zaloguj się</string>
|
<string name="main_log_in">Zaloguj się</string>
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
<string name="login_recover_title">Восстановите свой аккаунт</string>
|
<string name="login_recover_title">Восстановите свой аккаунт</string>
|
||||||
<string name="login_recover">Восстановить</string>
|
<string name="login_recover">Восстановить</string>
|
||||||
<string name="login_signed_in">Студент уже вошел в систему</string>
|
<string name="login_signed_in">Студент уже вошел в систему</string>
|
||||||
|
<string name="login_host_standard">Стандартный</string>
|
||||||
<!--Main-->
|
<!--Main-->
|
||||||
<string name="main_account_picker">Менеджер аккаунтов</string>
|
<string name="main_account_picker">Менеджер аккаунтов</string>
|
||||||
<string name="main_log_in">Войти</string>
|
<string name="main_log_in">Войти</string>
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
<string name="login_recover_title">Obnovte svoj účet</string>
|
<string name="login_recover_title">Obnovte svoj účet</string>
|
||||||
<string name="login_recover">Obnoviť</string>
|
<string name="login_recover">Obnoviť</string>
|
||||||
<string name="login_signed_in">Žiak je už prihlásený</string>
|
<string name="login_signed_in">Žiak je už prihlásený</string>
|
||||||
|
<string name="login_host_standard">Štandardná</string>
|
||||||
<!--Main-->
|
<!--Main-->
|
||||||
<string name="main_account_picker">Manažér účtov</string>
|
<string name="main_account_picker">Manažér účtov</string>
|
||||||
<string name="main_log_in">Prihlásiť sa</string>
|
<string name="main_log_in">Prihlásiť sa</string>
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
<string name="login_recover_title">Відновіть свій обліковий запис</string>
|
<string name="login_recover_title">Відновіть свій обліковий запис</string>
|
||||||
<string name="login_recover">Відновити</string>
|
<string name="login_recover">Відновити</string>
|
||||||
<string name="login_signed_in">Учень вже увійшов до системи</string>
|
<string name="login_signed_in">Учень вже увійшов до системи</string>
|
||||||
|
<string name="login_host_standard">Стандартний</string>
|
||||||
<!--Main-->
|
<!--Main-->
|
||||||
<string name="main_account_picker">Менеджер аккаунтів</string>
|
<string name="main_account_picker">Менеджер аккаунтів</string>
|
||||||
<string name="main_log_in">Увійти</string>
|
<string name="main_log_in">Увійти</string>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
<string-array name="hosts_keys">
|
<string-array name="hosts_keys">
|
||||||
<item>Standardowa</item>
|
<item>@string/login_host_standard</item>
|
||||||
<item>Opolska eSzkoła</item>
|
<item>Opolska eSzkoła</item>
|
||||||
<item>Gdańska Platforma Edukacyjna</item>
|
<item>Gdańska Platforma Edukacyjna</item>
|
||||||
<item>Lubelski Portal Oświatowy</item>
|
<item>Lubelski Portal Oświatowy</item>
|
||||||
|
@ -77,6 +77,7 @@
|
|||||||
<string name="login_recover_title">Recover your account</string>
|
<string name="login_recover_title">Recover your account</string>
|
||||||
<string name="login_recover">Recover</string>
|
<string name="login_recover">Recover</string>
|
||||||
<string name="login_signed_in">Student is already signed in</string>
|
<string name="login_signed_in">Student is already signed in</string>
|
||||||
|
<string name="login_host_standard">Standard</string>
|
||||||
|
|
||||||
|
|
||||||
<!--Main-->
|
<!--Main-->
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
buildscript {
|
buildscript {
|
||||||
ext {
|
ext {
|
||||||
kotlin_version = '1.6.10'
|
kotlin_version = '1.6.20'
|
||||||
about_libraries = '8.9.4'
|
about_libraries = '8.9.4'
|
||||||
hilt_version = "2.41"
|
hilt_version = "2.41"
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user