diff options
Diffstat (limited to 'android/app')
7 files changed, 19 insertions, 11 deletions
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 08a99a8aef..ba7e843c6d 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 @@ -54,10 +54,10 @@ class AccountViewModel( ) .toLc<Unit, AccountUiState>() } - .stateIn(viewModelScope, SharingStarted.WhileSubscribed(), Lc.Loading(Unit)) + .onStart { viewModelScope.launch { updateAccountExpiry() } } + .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5_000), Lc.Loading(Unit)) init { - updateAccountExpiry() verifyPurchases() } @@ -88,7 +88,7 @@ class AccountViewModel( } private fun updateAccountExpiry() { - viewModelScope.launch { accountRepository.getAccountData() } + viewModelScope.launch { accountRepository.refreshAccountData() } } private fun verifyPurchases() { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModel.kt index 36e6864a80..e96162c858 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModel.kt @@ -105,7 +105,7 @@ class AddTimeViewModel( } private fun updateAccountExpiry() { - viewModelScope.launch { accountRepository.getAccountData() } + viewModelScope.launch { accountRepository.refreshAccountData() } } private fun PurchaseResult.toPurchaseState() = 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 e836acb844..4ed52d4c63 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 @@ -13,6 +13,7 @@ import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.filterIsInstance import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.merge +import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch @@ -110,12 +111,17 @@ class ConnectViewModel( isPlayBuild = isPlayBuild, ) } - .stateIn(viewModelScope, SharingStarted.WhileSubscribed(), ConnectUiState.INITIAL) + .onStart { + viewModelScope.launch { + accountRepository.refreshAccountData(ignoreTimeout = false) + } + } + .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5_0000), ConnectUiState.INITIAL) init { viewModelScope.launch { if (paymentUseCase.verifyPurchases().isSuccess()) { - accountRepository.getAccountData() + accountRepository.refreshAccountData() } } viewModelScope.launch { deviceRepository.updateDevice() } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModel.kt index ace068304d..1ac414e725 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModel.kt @@ -84,7 +84,7 @@ class OutOfTimeViewModel( } private suspend fun updateAccountExpiry() { - accountRepository.getAccountData() + accountRepository.refreshAccountData() } private fun notOutOfTimeEffect() = diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModel.kt index 334a360cfd..d8ea161787 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModel.kt @@ -105,7 +105,7 @@ class WelcomeViewModel( } private suspend fun updateAccountExpiry() { - accountRepository.getAccountData() + accountRepository.refreshAccountData() } sealed interface UiSideEffect { diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModelTest.kt index 7a6b756bf5..26fc228729 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModelTest.kt @@ -2,9 +2,11 @@ package net.mullvad.mullvadvpn.viewmodel import app.cash.turbine.test import arrow.core.right +import io.mockk.Runs import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every +import io.mockk.just import io.mockk.mockk import io.mockk.unmockkAll import java.time.ZonedDateTime @@ -61,7 +63,7 @@ class AccountViewModelTest { every { mockAccountRepository.accountData } returns accountExpiryState every { mockDeviceRepository.deviceState } returns deviceState coEvery { mockPaymentUseCase.paymentAvailability } returns paymentAvailability - coEvery { mockAccountRepository.getAccountData() } returns null + coEvery { mockAccountRepository.refreshAccountData(any()) } just Runs viewModel = AccountViewModel( diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModelTest.kt index 7e3f966dbb..d3c95690bf 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModelTest.kt @@ -56,7 +56,7 @@ class AddTimeViewModelTest { VerificationResult.NothingToVerify.right() coEvery { mockPaymentUseCase.queryPaymentAvailability() } just Runs coEvery { mockPaymentUseCase.resetPurchaseResult() } just Runs - coEvery { mockAccountRepository.getAccountData() } returns null + coEvery { mockAccountRepository.refreshAccountData(any()) } just Runs viewModel = AddTimeViewModel( @@ -151,7 +151,7 @@ class AddTimeViewModelTest { purchaseResult.emit(purchaseResultData) // Assert - coVerify { mockAccountRepository.getAccountData() } + coVerify { mockAccountRepository.refreshAccountData(ignoreTimeout = true) } } @Test |
