diff options
Diffstat (limited to 'android')
| -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 { |
