diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2024-07-31 11:20:57 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2024-08-23 09:44:47 +0200 |
| commit | 021829b9c3ff4082ffb0918ef4f2a2600e7160eb (patch) | |
| tree | d20b5a3ef9bd3e95b3b5b1646360b54c0e1406ed /android/app | |
| parent | 23ad8a63f42fe11fbe8bf9641efa56630dd47e0f (diff) | |
| download | mullvadvpn-021829b9c3ff4082ffb0918ef4f2a2600e7160eb.tar.xz mullvadvpn-021829b9c3ff4082ffb0918ef4f2a2600e7160eb.zip | |
Propagate logout errors to the ui
Diffstat (limited to 'android/app')
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt | 4 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt | 10 |
2 files changed, 12 insertions, 2 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt index 6969e56518..bd64cc3561 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt @@ -57,6 +57,7 @@ import net.mullvad.mullvadvpn.compose.transitions.SlideInFromBottomTransition import net.mullvad.mullvadvpn.compose.util.LaunchedEffectCollect import net.mullvad.mullvadvpn.compose.util.SecureScreenWhileInView import net.mullvad.mullvadvpn.compose.util.createCopyToClipboardHandle +import net.mullvad.mullvadvpn.compose.util.showSnackbarImmediately import net.mullvad.mullvadvpn.lib.model.AccountNumber import net.mullvad.mullvadvpn.lib.payment.model.PaymentProduct import net.mullvad.mullvadvpn.lib.payment.model.PaymentStatus @@ -164,6 +165,7 @@ fun AccountScreen( val snackbarHostState = remember { SnackbarHostState() } val copyTextString = stringResource(id = R.string.copied_mullvad_account_number) + val errorString = stringResource(id = R.string.error_occurred) val copyToClipboard = createCopyToClipboardHandle(snackbarHostState = snackbarHostState) val openAccountPage = LocalUriHandler.current.createOpenAccountPageHook() LaunchedEffectCollect(uiSideEffect) { sideEffect -> @@ -173,6 +175,8 @@ fun AccountScreen( openAccountPage(sideEffect.token) is AccountViewModel.UiSideEffect.CopyAccountNumber -> launch { copyToClipboard(sideEffect.accountNumber, copyTextString) } + AccountViewModel.UiSideEffect.GenericError -> + snackbarHostState.showSnackbarImmediately(message = errorString) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt index b830d00c60..f8f66563e8 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt @@ -75,8 +75,12 @@ class AccountViewModel( fun onLogoutClick() { viewModelScope.launch { - accountRepository.logout() - _uiSideEffect.send(UiSideEffect.NavigateToLogin) + accountRepository + .logout() + .fold( + { _uiSideEffect.send(UiSideEffect.GenericError) }, + { _uiSideEffect.send(UiSideEffect.NavigateToLogin) } + ) } } @@ -127,6 +131,8 @@ class AccountViewModel( UiSideEffect() data class CopyAccountNumber(val accountNumber: String) : UiSideEffect() + + data object GenericError : UiSideEffect() } } |
