Skip to content

Commit d49616f

Browse files
committed
Temp fix for out of sync clock on WelcomeViewModel
1 parent d4b599d commit d49616f

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ val uiModule = module {
154154
viewModel { SplashViewModel(get(), get(), get()) }
155155
viewModel { VoucherDialogViewModel(get(), get()) }
156156
viewModel { VpnSettingsViewModel(get(), get(), get(), get(), get()) }
157-
viewModel { WelcomeViewModel(get(), get(), get(), get(), get(), isPlayBuild = IS_PLAY_BUILD) }
157+
viewModel { WelcomeViewModel(get(), get(), get(), get(), isPlayBuild = IS_PLAY_BUILD) }
158158
viewModel { ReportProblemViewModel(get(), get()) }
159159
viewModel { ViewLogsViewModel(get()) }
160160
viewModel { OutOfTimeViewModel(get(), get(), get(), get(), get(), isPlayBuild = IS_PLAY_BUILD) }

android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModel.kt

+11-6
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import kotlinx.coroutines.flow.combine
1111
import kotlinx.coroutines.flow.debounce
1212
import kotlinx.coroutines.flow.emptyFlow
1313
import kotlinx.coroutines.flow.filter
14+
import kotlinx.coroutines.flow.filterNotNull
1415
import kotlinx.coroutines.flow.flatMapLatest
1516
import kotlinx.coroutines.flow.flowOf
1617
import kotlinx.coroutines.flow.map
@@ -27,7 +28,6 @@ import net.mullvad.mullvadvpn.ui.serviceconnection.ConnectionProxy
2728
import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionManager
2829
import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionState
2930
import net.mullvad.mullvadvpn.ui.serviceconnection.authTokenCache
30-
import net.mullvad.mullvadvpn.usecase.OutOfTimeUseCase
3131
import net.mullvad.mullvadvpn.usecase.PaymentUseCase
3232
import net.mullvad.mullvadvpn.util.UNKNOWN_STATE_DEBOUNCE_DELAY_MILLISECONDS
3333
import net.mullvad.mullvadvpn.util.addDebounceForUnknownState
@@ -40,12 +40,11 @@ class WelcomeViewModel(
4040
private val deviceRepository: DeviceRepository,
4141
private val serviceConnectionManager: ServiceConnectionManager,
4242
private val paymentUseCase: PaymentUseCase,
43-
private val outOfTimeUseCase: OutOfTimeUseCase,
4443
private val pollAccountExpiry: Boolean = true,
4544
private val isPlayBuild: Boolean
4645
) : ViewModel() {
4746
private val _uiSideEffect = Channel<UiSideEffect>()
48-
val uiSideEffect = merge(_uiSideEffect.receiveAsFlow(), notOutOfTimeEffect())
47+
val uiSideEffect = merge(_uiSideEffect.receiveAsFlow(), hasAddedTime())
4948

5049
val uiState =
5150
serviceConnectionManager.connectionState
@@ -86,9 +85,11 @@ class WelcomeViewModel(
8685
fetchPaymentAvailability()
8786
}
8887

89-
private fun notOutOfTimeEffect() =
90-
outOfTimeUseCase.isOutOfTime
91-
.filter { it == false }
88+
private fun hasAddedTime() =
89+
accountRepository.accountExpiryState
90+
.map { it.date() }
91+
.filterNotNull()
92+
.filter { it.minusHours(MIN_TIME_PAST_ACCOUNT_EXPIRY).isAfterNow }
9293
.map {
9394
paymentUseCase.resetPurchaseResult()
9495
UiSideEffect.OpenConnectScreen
@@ -144,4 +145,8 @@ class WelcomeViewModel(
144145

145146
data object OpenConnectScreen : UiSideEffect
146147
}
148+
149+
companion object {
150+
private const val MIN_TIME_PAST_ACCOUNT_EXPIRY = 20
151+
}
147152
}

0 commit comments

Comments
 (0)