diff options
| author | David Göransson <david.goransson90@gmail.com> | 2023-12-19 15:43:35 +0100 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2024-01-04 14:58:53 +0100 |
| commit | dc9de3171f1c0e1e169c29be1098d8563dbb159f (patch) | |
| tree | 934965a53aa5972f4dd83509236b914dd25f28b7 /android/app | |
| parent | 268bde60ec57ddc85d81ca33ca10b8c11443f707 (diff) | |
| download | mullvadvpn-dc9de3171f1c0e1e169c29be1098d8563dbb159f.tar.xz mullvadvpn-dc9de3171f1c0e1e169c29be1098d8563dbb159f.zip | |
Handle device revocation on ConnectScreen
Diffstat (limited to 'android/app')
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt | 7 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt | 11 |
2 files changed, 17 insertions, 1 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt index 646e89c987..f626191b4c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt @@ -43,6 +43,7 @@ import net.mullvad.mullvadvpn.compose.component.ScaffoldWithTopBarAndDeviceName import net.mullvad.mullvadvpn.compose.component.drawVerticalScrollbar import net.mullvad.mullvadvpn.compose.component.notificationbanner.NotificationBanner import net.mullvad.mullvadvpn.compose.destinations.AccountDestination +import net.mullvad.mullvadvpn.compose.destinations.DeviceRevokedDestination import net.mullvad.mullvadvpn.compose.destinations.OutOfTimeDestination import net.mullvad.mullvadvpn.compose.destinations.SelectLocationDestination import net.mullvad.mullvadvpn.compose.destinations.SettingsDestination @@ -98,6 +99,12 @@ fun Connect(navigator: DestinationsNavigator) { popUpTo(NavGraphs.root) { inclusive = true } } } + ConnectViewModel.UiSideEffect.RevokedDevice -> { + navigator.navigate(DeviceRevokedDestination) { + launchSingleTop = true + popUpTo(NavGraphs.root) { inclusive = true } + } + } } } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt index d25f360b51..69a75bea7f 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt @@ -23,6 +23,7 @@ import kotlinx.coroutines.flow.shareIn import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.compose.state.ConnectUiState +import net.mullvad.mullvadvpn.model.DeviceState import net.mullvad.mullvadvpn.model.GeoIpLocation import net.mullvad.mullvadvpn.model.TunnelState import net.mullvad.mullvadvpn.repository.AccountRepository @@ -137,12 +138,18 @@ class ConnectViewModel( init { viewModelScope.launch { - // This once we get isOutOfTime true we will navigate to OutOfTime view. + // When we get isOutOfTime true we will navigate to OutOfTime view. outOfTimeUseCase.isOutOfTime().first { it == true } _uiSideEffect.send(UiSideEffect.OutOfTime) } viewModelScope.launch { + // When we get a revoked DeviceState we navigate to the RevokedDevice screen. + deviceRepository.deviceState.filterIsInstance<DeviceState.Revoked>().first() + _uiSideEffect.send(UiSideEffect.RevokedDevice) + } + + viewModelScope.launch { paymentUseCase.verifyPurchases { accountRepository.fetchAccountExpiry() } } } @@ -194,6 +201,8 @@ class ConnectViewModel( data class OpenAccountManagementPageInBrowser(val token: String) : UiSideEffect data object OutOfTime : UiSideEffect + + data object RevokedDevice : UiSideEffect } companion object { |
