mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-08 05:47:05 +09:00
DROID-2816 Auth | Fix | Refact error handling on mnemonic-login screen (#1803)
This commit is contained in:
parent
3a2defa5ec
commit
5c16df81ec
3 changed files with 34 additions and 12 deletions
|
@ -399,6 +399,14 @@ class OnboardingFragment : Fragment() {
|
|||
errorText.value = getString(R.string.error_login_select_vault_error)
|
||||
isErrorDialogVisible.value = true
|
||||
}
|
||||
is OnboardingMnemonicLoginViewModel.SideEffect.Error.AccountDeletedError -> {
|
||||
errorText.value = getString(R.string.error_login_account_deleted_error)
|
||||
isErrorDialogVisible.value = true
|
||||
}
|
||||
is OnboardingMnemonicLoginViewModel.SideEffect.Error.NeedUpdateError -> {
|
||||
errorText.value = getString(R.string.error_login_account_need_update_error)
|
||||
isErrorDialogVisible.value = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1702,6 +1702,8 @@ Please provide specific details of your needs here.</string>
|
|||
<string name="membership_error_button_text_dismiss">Ok</string>
|
||||
<string name="error_login_network_id_mismatch">Network ID mismatch detected. Please verify your network configuration.</string>
|
||||
<string name="error_login_select_vault_error">Select vault error.</string>
|
||||
<string name="error_login_account_deleted_error">This account is deleted. Try using another account or create a new one.</string>
|
||||
<string name="error_login_account_need_update_error">Unable to retrieve account. Please update Anytype to the latest version.</string>
|
||||
<string name="global_search_related_to">"Related to: "</string>
|
||||
<string name="global_search_no_related_objects_found">No related objects found</string>
|
||||
|
||||
|
|
|
@ -66,8 +66,6 @@ class OnboardingMnemonicLoginViewModel @Inject constructor(
|
|||
|
||||
val command = MutableSharedFlow<Command>(replay = 0)
|
||||
|
||||
val error by lazy { MutableStateFlow(NO_ERROR) }
|
||||
|
||||
private var debugClickCount = 0
|
||||
private val _fiveClicks = MutableStateFlow(false)
|
||||
|
||||
|
@ -216,14 +214,22 @@ class OnboardingMnemonicLoginViewModel @Inject constructor(
|
|||
) { result ->
|
||||
result.either(
|
||||
fnL = { e ->
|
||||
if (e is AccountIsDeletedException) {
|
||||
error.value = "This account is deleted. Try using another account or create a new one."
|
||||
} else {
|
||||
error.value = "Error while account loading \n ${e.localizedMessage}"
|
||||
viewModelScope.launch {
|
||||
if (e is AccountIsDeletedException) {
|
||||
sideEffects.emit(
|
||||
value = SideEffect.Error.Unknown(
|
||||
msg = "This account is deleted. Try using another account or create a new one."
|
||||
)
|
||||
)
|
||||
} else {
|
||||
sideEffects.emit(
|
||||
value = SideEffect.Error.Unknown(
|
||||
msg = "Error while account loading \n ${e.localizedMessage}"
|
||||
)
|
||||
)
|
||||
}
|
||||
Timber.e(e, "Error while account loading")
|
||||
}
|
||||
Timber.e(e, "Error while account loading")
|
||||
// TODO refact
|
||||
viewModelScope.launch { command.emit(Command.Exit) }
|
||||
},
|
||||
fnR = {
|
||||
Timber.d("Account loading successfully finished")
|
||||
|
@ -263,10 +269,10 @@ class OnboardingMnemonicLoginViewModel @Inject constructor(
|
|||
navigateToMigrationErrorScreen()
|
||||
}
|
||||
is AccountIsDeletedException -> {
|
||||
error.value = "This account is deleted. Try using another account or create a new one."
|
||||
sideEffects.emit(value = SideEffect.Error.AccountDeletedError)
|
||||
}
|
||||
is NeedToUpdateApplicationException -> {
|
||||
error.value = SplashViewModel.ERROR_NEED_UPDATE
|
||||
sideEffects.emit(value = SideEffect.Error.NeedUpdateError)
|
||||
}
|
||||
is LoginException.NetworkIdMismatch -> {
|
||||
sideEffects.emit(SideEffect.Error.NetworkIdMismatch)
|
||||
|
@ -276,7 +282,11 @@ class OnboardingMnemonicLoginViewModel @Inject constructor(
|
|||
}
|
||||
else -> {
|
||||
val msg = e.message ?: "Unknown error"
|
||||
error.value = "${ERROR_MESSAGE}: $msg"
|
||||
sideEffects.emit(
|
||||
value = SideEffect.Error.Unknown(
|
||||
msg = "${ERROR_MESSAGE}: $msg"
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -371,6 +381,8 @@ class OnboardingMnemonicLoginViewModel @Inject constructor(
|
|||
data object InvalidMnemonic : Error()
|
||||
data object NetworkIdMismatch: Error()
|
||||
data object SelectVaultError: Error()
|
||||
data object AccountDeletedError: Error()
|
||||
data object NeedUpdateError: Error()
|
||||
data class Unknown(val msg: String): SideEffect()
|
||||
}
|
||||
data object Exit: SideEffect()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue