summaryrefslogtreecommitdiffhomepage
path: root/android/app
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-07-31 11:20:57 +0200
committerAlbin <albin@mullvad.net>2024-08-23 09:44:47 +0200
commit021829b9c3ff4082ffb0918ef4f2a2600e7160eb (patch)
treed20b5a3ef9bd3e95b3b5b1646360b54c0e1406ed /android/app
parent23ad8a63f42fe11fbe8bf9641efa56630dd47e0f (diff)
downloadmullvadvpn-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.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt10
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()
}
}