mirror of
https://github.com/wulkanowy/wulkanowy.git
synced 2025-02-07 15:34:36 +01:00
Improve invalid password message (#2451)
This commit is contained in:
parent
05bda598fc
commit
e9d64de0cb
@ -17,6 +17,8 @@ import io.github.wulkanowy.utils.FragmentLifecycleLogger
|
|||||||
import io.github.wulkanowy.utils.getThemeAttrColor
|
import io.github.wulkanowy.utils.getThemeAttrColor
|
||||||
import io.github.wulkanowy.utils.lifecycleAwareVariable
|
import io.github.wulkanowy.utils.lifecycleAwareVariable
|
||||||
import io.github.wulkanowy.utils.openInternetBrowser
|
import io.github.wulkanowy.utils.openInternetBrowser
|
||||||
|
import timber.log.Timber
|
||||||
|
import java.time.Instant
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
abstract class BaseActivity<T : BasePresenter<out BaseView>, VB : ViewBinding> :
|
abstract class BaseActivity<T : BasePresenter<out BaseView>, VB : ViewBinding> :
|
||||||
@ -36,6 +38,8 @@ abstract class BaseActivity<T : BasePresenter<out BaseView>, VB : ViewBinding> :
|
|||||||
|
|
||||||
abstract var presenter: T
|
abstract var presenter: T
|
||||||
|
|
||||||
|
private var lastDialogOpenTime = mutableMapOf<String, Instant>()
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
inject()
|
inject()
|
||||||
themeManager.applyActivityTheme(this)
|
themeManager.applyActivityTheme(this)
|
||||||
@ -70,6 +74,8 @@ abstract class BaseActivity<T : BasePresenter<out BaseView>, VB : ViewBinding> :
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun showExpiredCredentialsDialog() {
|
override fun showExpiredCredentialsDialog() {
|
||||||
|
if (!shouldShowDialog(DIALOG_ERROR_BAD_CREDENTIALS)) return
|
||||||
|
|
||||||
MaterialAlertDialogBuilder(this)
|
MaterialAlertDialogBuilder(this)
|
||||||
.setTitle(R.string.main_expired_credentials_title)
|
.setTitle(R.string.main_expired_credentials_title)
|
||||||
.setMessage(R.string.main_expired_credentials_description)
|
.setMessage(R.string.main_expired_credentials_description)
|
||||||
@ -83,6 +89,8 @@ abstract class BaseActivity<T : BasePresenter<out BaseView>, VB : ViewBinding> :
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun showDecryptionFailedDialog() {
|
override fun showDecryptionFailedDialog() {
|
||||||
|
if (!shouldShowDialog(DIALOG_ERROR_DECRYPTION_FAILED)) return
|
||||||
|
|
||||||
MaterialAlertDialogBuilder(this)
|
MaterialAlertDialogBuilder(this)
|
||||||
.setTitle(R.string.main_session_expired)
|
.setTitle(R.string.main_session_expired)
|
||||||
.setMessage(R.string.main_session_relogin)
|
.setMessage(R.string.main_session_relogin)
|
||||||
@ -119,4 +127,21 @@ abstract class BaseActivity<T : BasePresenter<out BaseView>, VB : ViewBinding> :
|
|||||||
protected open fun inject() {
|
protected open fun inject() {
|
||||||
throw UnsupportedOperationException()
|
throw UnsupportedOperationException()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun shouldShowDialog(name: String): Boolean {
|
||||||
|
val lastOpenTime = lastDialogOpenTime[name]
|
||||||
|
val now = Instant.now()
|
||||||
|
|
||||||
|
if (lastOpenTime != null && now.isBefore(lastOpenTime.plusSeconds(1))) {
|
||||||
|
Timber.i("Dialog $name was shown less than a second ago. Skip")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
lastDialogOpenTime[name] = Instant.now()
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val DIALOG_ERROR_BAD_CREDENTIALS = "dialog_error_bad_credentials"
|
||||||
|
private const val DIALOG_ERROR_DECRYPTION_FAILED = "dialog_error_decryption_failed"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import io.github.wulkanowy.sdk.scrapper.exception.FeatureDisabledException
|
|||||||
import io.github.wulkanowy.sdk.scrapper.exception.ScrapperException
|
import io.github.wulkanowy.sdk.scrapper.exception.ScrapperException
|
||||||
import io.github.wulkanowy.sdk.scrapper.exception.ServiceUnavailableException
|
import io.github.wulkanowy.sdk.scrapper.exception.ServiceUnavailableException
|
||||||
import io.github.wulkanowy.sdk.scrapper.exception.VulcanException
|
import io.github.wulkanowy.sdk.scrapper.exception.VulcanException
|
||||||
|
import io.github.wulkanowy.sdk.scrapper.login.BadCredentialsException
|
||||||
import io.github.wulkanowy.sdk.scrapper.login.NotLoggedInException
|
import io.github.wulkanowy.sdk.scrapper.login.NotLoggedInException
|
||||||
import io.github.wulkanowy.sdk.scrapper.login.PasswordChangeRequiredException
|
import io.github.wulkanowy.sdk.scrapper.login.PasswordChangeRequiredException
|
||||||
import okhttp3.internal.http2.StreamResetException
|
import okhttp3.internal.http2.StreamResetException
|
||||||
@ -34,6 +35,7 @@ fun Resources.getErrorString(error: Throwable): String = when (error) {
|
|||||||
is ServiceUnavailableException -> R.string.error_service_unavailable
|
is ServiceUnavailableException -> R.string.error_service_unavailable
|
||||||
is FeatureDisabledException -> R.string.error_feature_disabled
|
is FeatureDisabledException -> R.string.error_feature_disabled
|
||||||
is FeatureNotAvailableException -> R.string.error_feature_not_available
|
is FeatureNotAvailableException -> R.string.error_feature_not_available
|
||||||
|
is BadCredentialsException -> R.string.error_password_invalid
|
||||||
is AccountInactiveException -> R.string.error_account_inactive
|
is AccountInactiveException -> R.string.error_account_inactive
|
||||||
is VulcanException -> R.string.error_unknown_uonet
|
is VulcanException -> R.string.error_unknown_uonet
|
||||||
is ScrapperException -> R.string.error_unknown_app
|
is ScrapperException -> R.string.error_unknown_app
|
||||||
|
@ -109,8 +109,8 @@
|
|||||||
<string name="main_log_in">Log in</string>
|
<string name="main_log_in">Log in</string>
|
||||||
<string name="main_session_expired">Session expired</string>
|
<string name="main_session_expired">Session expired</string>
|
||||||
<string name="main_session_relogin">Session expired, log in again</string>
|
<string name="main_session_relogin">Session expired, log in again</string>
|
||||||
<string name="main_expired_credentials_description">Your account password has been changed. You need to log in to Wulkanowy again</string>
|
<string name="main_expired_credentials_title">Password has expired or been changed</string>
|
||||||
<string name="main_expired_credentials_title">Password changed</string>
|
<string name="main_expired_credentials_description">Your account password has expired or been changed. You will need to log in to Wulkanowy again</string>
|
||||||
<string name="main_support_title">Application support</string>
|
<string name="main_support_title">Application support</string>
|
||||||
<string name="main_support_description">Do you like this app? Support its development by enabling non-invasive ads that you can disable at any time</string>
|
<string name="main_support_description">Do you like this app? Support its development by enabling non-invasive ads that you can disable at any time</string>
|
||||||
<string name="main_support_positive">Enable ads</string>
|
<string name="main_support_positive">Enable ads</string>
|
||||||
@ -858,6 +858,7 @@
|
|||||||
<string name="error_account_inactive">This account is inactive. Try logging in again</string>
|
<string name="error_account_inactive">This account is inactive. Try logging in again</string>
|
||||||
<string name="error_timeout">Connection to register failed. Servers can be overloaded. Please try again later</string>
|
<string name="error_timeout">Connection to register failed. Servers can be overloaded. Please try again later</string>
|
||||||
<string name="error_login_failed">Loading data failed. Please try again later</string>
|
<string name="error_login_failed">Loading data failed. Please try again later</string>
|
||||||
|
<string name="error_password_invalid">Your password has expired or been changed. Please log in again</string>
|
||||||
<string name="error_password_change_required">Register password change required</string>
|
<string name="error_password_change_required">Register password change required</string>
|
||||||
<string name="error_service_unavailable">Maintenance underway UONET + register. Try again later</string>
|
<string name="error_service_unavailable">Maintenance underway UONET + register. Try again later</string>
|
||||||
<string name="error_unknown_uonet">Unknown UONET + register error. Try again later</string>
|
<string name="error_unknown_uonet">Unknown UONET + register error. Try again later</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user