From 2c4c2d1f4918a1ee9e6280f46534b79590f77da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Pich?= Date: Thu, 23 Apr 2020 11:07:18 +0200 Subject: [PATCH] Fix injector of ErrorDialog (#780) --- app/build.gradle | 2 +- app/src/main/java/io/github/wulkanowy/di/BindingModule.kt | 4 ++++ .../main/java/io/github/wulkanowy/ui/base/ErrorDialog.kt | 2 ++ .../java/io/github/wulkanowy/ui/modules/main/MainModule.kt | 5 ----- .../java/io/github/wulkanowy/utils/ResourcesExtension.kt | 5 ++++- app/src/main/res/layout/dialog_error.xml | 7 +++---- app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 11 files changed, 19 insertions(+), 11 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2480ff479..0e23ec43f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -128,7 +128,7 @@ configurations.all { } dependencies { - implementation "io.github.wulkanowy:sdk:0.17.2" + implementation "io.github.wulkanowy:sdk:b42fc85" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation "androidx.core:core-ktx:1.2.0" diff --git a/app/src/main/java/io/github/wulkanowy/di/BindingModule.kt b/app/src/main/java/io/github/wulkanowy/di/BindingModule.kt index 98061e609..ba8c78d3f 100644 --- a/app/src/main/java/io/github/wulkanowy/di/BindingModule.kt +++ b/app/src/main/java/io/github/wulkanowy/di/BindingModule.kt @@ -3,6 +3,7 @@ package io.github.wulkanowy.di import dagger.Module import dagger.android.ContributesAndroidInjector import io.github.wulkanowy.di.scopes.PerActivity +import io.github.wulkanowy.ui.base.ErrorDialog import io.github.wulkanowy.ui.modules.login.LoginActivity import io.github.wulkanowy.ui.modules.login.LoginModule import io.github.wulkanowy.ui.modules.luckynumberwidget.LuckyNumberWidgetConfigureActivity @@ -18,6 +19,9 @@ import io.github.wulkanowy.ui.modules.timetablewidget.TimetableWidgetProvider @Module internal abstract class BindingModule { + @ContributesAndroidInjector + abstract fun bindErrorDialog(): ErrorDialog + @PerActivity @ContributesAndroidInjector abstract fun bindSplashActivity(): SplashActivity diff --git a/app/src/main/java/io/github/wulkanowy/ui/base/ErrorDialog.kt b/app/src/main/java/io/github/wulkanowy/ui/base/ErrorDialog.kt index 374181130..ae3604bfd 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/base/ErrorDialog.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/base/ErrorDialog.kt @@ -19,6 +19,7 @@ import io.github.wulkanowy.utils.getString import io.github.wulkanowy.utils.openEmailClient import io.github.wulkanowy.utils.openInternetBrowser import kotlinx.android.synthetic.main.dialog_error.* +import java.io.InterruptedIOException import java.io.PrintWriter import java.io.StringWriter import java.net.SocketTimeoutException @@ -76,6 +77,7 @@ class ErrorDialog : BaseDialogFragment() { errorDialogMessage.text = resources.getString(error) errorDialogReport.isEnabled = when (error) { is UnknownHostException, + is InterruptedIOException, is SocketTimeoutException, is ServiceUnavailableException, is FeatureDisabledException, diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainModule.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainModule.kt index b533684de..1610d0298 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainModule.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainModule.kt @@ -7,7 +7,6 @@ import dagger.Provides import dagger.android.ContributesAndroidInjector import io.github.wulkanowy.R import io.github.wulkanowy.di.scopes.PerFragment -import io.github.wulkanowy.ui.base.ErrorDialog import io.github.wulkanowy.ui.modules.about.AboutFragment import io.github.wulkanowy.ui.modules.about.contributor.ContributorFragment import io.github.wulkanowy.ui.modules.about.license.LicenseFragment @@ -116,10 +115,6 @@ abstract class MainModule { @ContributesAndroidInjector abstract fun bindAccountDialog(): AccountDialog - @PerFragment - @ContributesAndroidInjector - abstract fun bindErrorDialog(): ErrorDialog - @PerFragment @ContributesAndroidInjector(modules = [MobileDeviceModule::class]) abstract fun bindMobileDevices(): MobileDeviceFragment diff --git a/app/src/main/java/io/github/wulkanowy/utils/ResourcesExtension.kt b/app/src/main/java/io/github/wulkanowy/utils/ResourcesExtension.kt index 9744d3747..a2d0384e3 100644 --- a/app/src/main/java/io/github/wulkanowy/utils/ResourcesExtension.kt +++ b/app/src/main/java/io/github/wulkanowy/utils/ResourcesExtension.kt @@ -5,14 +5,17 @@ import io.github.wulkanowy.R import io.github.wulkanowy.sdk.exception.FeatureDisabledException import io.github.wulkanowy.sdk.exception.FeatureNotAvailableException import io.github.wulkanowy.sdk.exception.NotLoggedInException +import io.github.wulkanowy.sdk.exception.PasswordChangeRequiredException import io.github.wulkanowy.sdk.exception.ServiceUnavailableException +import java.io.InterruptedIOException import java.net.SocketTimeoutException import java.net.UnknownHostException fun Resources.getString(error: Throwable) = when (error) { is UnknownHostException -> getString(R.string.error_no_internet) - is SocketTimeoutException -> getString(R.string.error_timeout) + is SocketTimeoutException, is InterruptedIOException -> getString(R.string.error_timeout) is NotLoggedInException -> getString(R.string.error_login_failed) + is PasswordChangeRequiredException -> getString(R.string.error_password_change_required) is ServiceUnavailableException -> getString(R.string.error_service_unavailable) is FeatureDisabledException -> getString(R.string.error_feature_disabled) is FeatureNotAvailableException -> getString(R.string.error_feature_not_available) diff --git a/app/src/main/res/layout/dialog_error.xml b/app/src/main/res/layout/dialog_error.xml index ac2c542a2..2d4e5d0ba 100644 --- a/app/src/main/res/layout/dialog_error.xml +++ b/app/src/main/res/layout/dialog_error.xml @@ -34,6 +34,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:overScrollMode="ifContentScrolls" + android:paddingHorizontal="24dp" app:layout_constrainedHeight="true" app:layout_constraintHeight_max="300dp" app:layout_constraintHeight_min="200dp" @@ -41,10 +42,8 @@ + android:layout_width="match_parent" + android:layout_height="wrap_content"> Keine Internetverbindung Das Zeitlimit für die Verbindung zum Klassenbuch ist abgelaufen Anmeldung fehlgeschlagen. Versuchen Sie es noch einmal oder starten Sie die Anwendung neu. + Passwortänderung erforderlich Wartung im Gange UONET + Klassenbuch. Versuchen Sie es später noch einmal Ein unerwarteter Fehler ist aufgetreten Funktion, die von Ihrer Schule deaktiviert wurde diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index d179d9e48..742d61ed2 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -418,6 +418,7 @@ Brak połączenia z internetem Upłynął limit czasu na połączenie z dziennikiem Logowanie nie powiodło się. Spróbuj ponownie lub zrestartuj aplikację + Wymagana zmiana hasła Trwa przerwa techniczna dziennika UONET+. Spróbuj ponownie później Wystąpił nieoczekiwany błąd Funkcja wyłączona przez szkołę diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e637e3ea9..e2f13f30c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -406,6 +406,7 @@ Нет интернет-подключения Слишком долгое ожидание соединения с дневником Авторизация не удалась. Пожалуйста, попробуйте ещё раз или перезапустите дневник + Требуется смена пароля Технический перерыв в журнале UONET + продолжается. Попробуйте позже Произошла неожиданная ошибка Функция была выключена школой diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 9caf13a6b..d9db3f068 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -407,6 +407,7 @@ Відсутнє інтернет-підключення Занадто довге очікування з\'єднання з щоденником Авторизація не відбулася. Будь ласка, авторизуйтеся знову або перезавантажте щоденник + Потрібно змінити пароль Технічна перерва в журналі UONET + продовжується. Спробуйте пізніше Відбулася несподівана помилка Функція вимкнена школою diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ae1627ae5..c7b41f698 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -403,6 +403,7 @@ No internet connection Connection to the register timed out Login failed. Try again or restart the app + Password change required Maintenance underway UONET + register. Try again later An unexpected error occurred Feature disabled by your school