diff options
| author | David Göransson <david.goransson90@gmail.com> | 2023-12-18 08:59:48 +0100 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-12-19 13:40:50 +0100 |
| commit | 1df9f4b5328432ca77048d789ba907f9dde60a5e (patch) | |
| tree | 622b044523fb656529221afb25065aa519ccf43f /android | |
| parent | dce93ba278004b9dc05e2ddda35655bd372e03cc (diff) | |
| download | mullvadvpn-1df9f4b5328432ca77048d789ba907f9dde60a5e.tar.xz mullvadvpn-1df9f4b5328432ca77048d789ba907f9dde60a5e.zip | |
Lift IS_PLAY_BUILD
Diffstat (limited to 'android')
20 files changed, 128 insertions, 68 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt index cd25c8ce0b..dae3bf2ed3 100644 --- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt @@ -82,7 +82,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = InAppNotification.TunnelStateBlocked + inAppNotification = InAppNotification.TunnelStateBlocked, + isPlayBuild = false ), ) } @@ -117,7 +118,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = InAppNotification.TunnelStateBlocked + inAppNotification = InAppNotification.TunnelStateBlocked, + isPlayBuild = false ), ) } @@ -150,7 +152,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = null + inAppNotification = null, + isPlayBuild = false ), ) } @@ -182,7 +185,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = null + inAppNotification = null, + isPlayBuild = false ), ) } @@ -215,7 +219,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = null + inAppNotification = null, + isPlayBuild = false ), ) } @@ -248,7 +253,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = null + inAppNotification = null, + isPlayBuild = false ), ) } @@ -286,7 +292,8 @@ class ConnectScreenTest { inAppNotification = InAppNotification.TunnelStateError( ErrorState(ErrorStateCause.StartTunnelError, true) - ) + ), + isPlayBuild = false ), ) } @@ -325,7 +332,8 @@ class ConnectScreenTest { inAppNotification = InAppNotification.TunnelStateError( ErrorState(ErrorStateCause.StartTunnelError, false) - ) + ), + isPlayBuild = false ), ) } @@ -358,7 +366,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = InAppNotification.TunnelStateBlocked + inAppNotification = InAppNotification.TunnelStateBlocked, + isPlayBuild = false ), ) } @@ -393,7 +402,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = InAppNotification.TunnelStateBlocked + inAppNotification = InAppNotification.TunnelStateBlocked, + isPlayBuild = false ), ) } @@ -428,7 +438,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = null + inAppNotification = null, + isPlayBuild = false ), onSwitchLocationClick = mockedClickHandler ) @@ -460,7 +471,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = null + inAppNotification = null, + isPlayBuild = false ), onDisconnectClick = mockedClickHandler ) @@ -492,7 +504,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = null + inAppNotification = null, + isPlayBuild = false ), onReconnectClick = mockedClickHandler ) @@ -523,7 +536,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = null + inAppNotification = null, + isPlayBuild = false ), onConnectClick = mockedClickHandler ) @@ -554,7 +568,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = null + inAppNotification = null, + isPlayBuild = false ), onCancelClick = mockedClickHandler ) @@ -586,7 +601,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = null + inAppNotification = null, + isPlayBuild = false ), onToggleTunnelInfo = mockedClickHandler ) @@ -625,7 +641,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = true, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = null + inAppNotification = null, + isPlayBuild = false ), ) } @@ -663,7 +680,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = InAppNotification.UpdateAvailable(versionInfo) + inAppNotification = InAppNotification.UpdateAvailable(versionInfo), + isPlayBuild = false ), ) } @@ -699,7 +717,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = InAppNotification.UnsupportedVersion(versionInfo) + inAppNotification = InAppNotification.UnsupportedVersion(versionInfo), + isPlayBuild = false ), ) } @@ -732,7 +751,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = InAppNotification.AccountExpiry(expiryDate) + inAppNotification = InAppNotification.AccountExpiry(expiryDate), + isPlayBuild = false ), ) } @@ -770,7 +790,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = InAppNotification.UnsupportedVersion(versionInfo) + inAppNotification = InAppNotification.UnsupportedVersion(versionInfo), + isPlayBuild = false ), ) } @@ -802,7 +823,8 @@ class ConnectScreenTest { isTunnelInfoExpanded = false, deviceName = "", daysLeftUntilExpiry = null, - inAppNotification = InAppNotification.AccountExpiry(expiryDate) + inAppNotification = InAppNotification.AccountExpiry(expiryDate), + isPlayBuild = false ), ) } diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreenTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreenTest.kt index e15ed012d6..f5daf29bb2 100644 --- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreenTest.kt +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreenTest.kt @@ -25,7 +25,12 @@ class SettingsScreenTest { composeTestRule.setContentWithTheme { SettingsScreen( uiState = - SettingsUiState(appVersion = "", isLoggedIn = true, isUpdateAvailable = true), + SettingsUiState( + appVersion = "", + isLoggedIn = true, + isUpdateAvailable = true, + isPlayBuild = false + ), ) } // Assert @@ -43,7 +48,12 @@ class SettingsScreenTest { composeTestRule.setContentWithTheme { SettingsScreen( uiState = - SettingsUiState(appVersion = "", isLoggedIn = false, isUpdateAvailable = true), + SettingsUiState( + appVersion = "", + isLoggedIn = false, + isUpdateAvailable = true, + isPlayBuild = false + ), ) } // Assert diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt index 2bcda3ea35..3d4a71f1af 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt @@ -71,7 +71,7 @@ private fun PreviewNotificationBanner() { ) ) ) - .map { it.toNotificationData({}, {}, {}) } + .map { it.toNotificationData(false, {}, {}, {}) } bannerDataList.forEach { MullvadTopBar( @@ -90,6 +90,7 @@ private fun PreviewNotificationBanner() { @Composable fun NotificationBanner( notification: InAppNotification?, + isPlayBuild: Boolean, onClickUpdateVersion: () -> Unit, onClickShowAccount: () -> Unit, onClickDismissNewDevice: () -> Unit @@ -106,6 +107,7 @@ fun NotificationBanner( if (visibleNotification != null) Notification( visibleNotification.toNotificationData( + isPlayBuild = isPlayBuild, onClickUpdateVersion, onClickShowAccount, onClickDismissNewDevice diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationData.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationData.kt index 16efa6c88b..99501d1f4d 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationData.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationData.kt @@ -12,7 +12,6 @@ import androidx.core.text.HtmlCompat import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.compose.extensions.getExpiryQuantityString import net.mullvad.mullvadvpn.compose.extensions.toAnnotatedString -import net.mullvad.mullvadvpn.constant.IS_PLAY_BUILD import net.mullvad.mullvadvpn.lib.common.util.getErrorNotificationResources import net.mullvad.mullvadvpn.repository.InAppNotification import net.mullvad.mullvadvpn.ui.notification.StatusLevel @@ -39,6 +38,7 @@ data class NotificationAction( @Composable fun InAppNotification.toNotificationData( + isPlayBuild: Boolean, onClickUpdateVersion: () -> Unit, onClickShowAccount: () -> Unit, onDismissNewDevice: () -> Unit @@ -71,7 +71,7 @@ fun InAppNotification.toNotificationData( message = LocalContext.current.resources.getExpiryQuantityString(expiry), statusLevel = StatusLevel.Error, action = - if (IS_PLAY_BUILD) null + if (isPlayBuild) null else NotificationAction( R.drawable.icon_extlink, @@ -90,7 +90,7 @@ fun InAppNotification.toNotificationData( message = stringResource(id = R.string.unsupported_version_description), statusLevel = StatusLevel.Error, action = - if (IS_PLAY_BUILD) null + if (isPlayBuild) null else NotificationAction(R.drawable.icon_extlink, onClickUpdateVersion) ) is InAppNotification.UpdateAvailable -> @@ -103,7 +103,7 @@ fun InAppNotification.toNotificationData( ), statusLevel = StatusLevel.Warning, action = - if (IS_PLAY_BUILD) null + if (isPlayBuild) null else NotificationAction(R.drawable.icon_extlink, onClickUpdateVersion) ) } 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 cbf1f53c3d..b1de1ad809 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 @@ -114,7 +114,9 @@ fun Connect(navigator: DestinationsNavigator) { Intent( Intent.ACTION_VIEW, Uri.parse( - context.getString(R.string.download_url).appendHideNavOnPlayBuild() + context + .getString(R.string.download_url) + .appendHideNavOnPlayBuild(state.isPlayBuild) ) ) .apply { flags = Intent.FLAG_ACTIVITY_NEW_TASK } @@ -190,6 +192,7 @@ fun ConnectScreen( ) { NotificationBanner( notification = uiState.inAppNotification, + isPlayBuild = uiState.isPlayBuild, onClickUpdateVersion = onUpdateVersionClick, onClickShowAccount = onManageAccountClick, onClickDismissNewDevice = onDismissNewDeviceClick, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt index d057da60f8..9805a7bb3b 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt @@ -33,7 +33,6 @@ import net.mullvad.mullvadvpn.compose.extensions.itemWithDivider import net.mullvad.mullvadvpn.compose.state.SettingsUiState import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_TEST_TAG import net.mullvad.mullvadvpn.compose.transitions.SettingsTransition -import net.mullvad.mullvadvpn.constant.IS_PLAY_BUILD import net.mullvad.mullvadvpn.lib.common.util.openLink import net.mullvad.mullvadvpn.lib.theme.AppTheme import net.mullvad.mullvadvpn.lib.theme.Dimens @@ -51,7 +50,8 @@ private fun PreviewSettings() { SettingsUiState( appVersion = "2222.22", isLoggedIn = true, - isUpdateAvailable = true + isUpdateAvailable = true, + isPlayBuild = false ), ) } @@ -123,13 +123,13 @@ fun SettingsScreen( Uri.parse( context.resources .getString(R.string.download_url) - .appendHideNavOnPlayBuild() + .appendHideNavOnPlayBuild(uiState.isPlayBuild) ) ) }, bodyView = @Composable { - if (IS_PLAY_BUILD.not()) { + if (!uiState.isPlayBuild) { NavigationCellBody( content = uiState.appVersion, contentBodyDescription = @@ -145,7 +145,7 @@ fun SettingsScreen( } }, showWarning = uiState.isUpdateAvailable, - isRowEnabled = IS_PLAY_BUILD.not() + isRowEnabled = !uiState.isPlayBuild ) } if (uiState.isUpdateAvailable) { @@ -174,7 +174,7 @@ fun SettingsScreen( ) } - if (IS_PLAY_BUILD.not()) { + if (!uiState.isPlayBuild) { itemWithDivider { val faqGuideLabel = stringResource(id = R.string.faqs_and_guides) NavigationComposeCell( @@ -199,7 +199,7 @@ fun SettingsScreen( Uri.parse( context.resources .getString(R.string.privacy_policy_url) - .appendHideNavOnPlayBuild() + .appendHideNavOnPlayBuild(uiState.isPlayBuild) ) ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/ConnectUiState.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/ConnectUiState.kt index 6ab4839bd1..54c1a0d7c0 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/ConnectUiState.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/ConnectUiState.kt @@ -17,7 +17,8 @@ data class ConnectUiState( val inAppNotification: InAppNotification?, val isTunnelInfoExpanded: Boolean, val deviceName: String?, - val daysLeftUntilExpiry: Int? + val daysLeftUntilExpiry: Int?, + val isPlayBuild: Boolean ) { companion object { val INITIAL = @@ -32,7 +33,8 @@ data class ConnectUiState( isTunnelInfoExpanded = false, inAppNotification = null, deviceName = null, - daysLeftUntilExpiry = null + daysLeftUntilExpiry = null, + isPlayBuild = false ) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SettingsUiState.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SettingsUiState.kt index 06bd0749eb..b325ed2ce7 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SettingsUiState.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SettingsUiState.kt @@ -3,5 +3,6 @@ package net.mullvad.mullvadvpn.compose.state data class SettingsUiState( val appVersion: String, val isLoggedIn: Boolean, - val isUpdateAvailable: Boolean + val isUpdateAvailable: Boolean, + val isPlayBuild: Boolean ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt index e12e3e2322..56d6b71a2d 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt @@ -9,6 +9,7 @@ import kotlinx.coroutines.MainScope import net.mullvad.mullvadvpn.BuildConfig import net.mullvad.mullvadvpn.applist.ApplicationsIconManager import net.mullvad.mullvadvpn.applist.ApplicationsProvider +import net.mullvad.mullvadvpn.constant.IS_PLAY_BUILD import net.mullvad.mullvadvpn.dataproxy.MullvadProblemReport import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher import net.mullvad.mullvadvpn.lib.ipc.MessageHandler @@ -132,11 +133,13 @@ val uiModule = module { single { ProblemReportRepository() } // View models - viewModel { AccountViewModel(get(), get(), get(), get()) } + viewModel { AccountViewModel(get(), get(), get(), get(), IS_PLAY_BUILD) } viewModel { ChangelogViewModel(get(), BuildConfig.VERSION_CODE, BuildConfig.ALWAYS_SHOW_CHANGELOG) } - viewModel { ConnectViewModel(get(), get(), get(), get(), get(), get(), get(), get()) } + viewModel { + ConnectViewModel(get(), get(), get(), get(), get(), get(), get(), get(), IS_PLAY_BUILD) + } viewModel { DeviceListViewModel(get(), get()) } viewModel { DeviceRevokedViewModel(get(), get()) } viewModel { MtuDialogViewModel(get()) } @@ -146,14 +149,14 @@ val uiModule = module { viewModel { LoginViewModel(get(), get(), get(), get()) } viewModel { PrivacyDisclaimerViewModel(get()) } viewModel { SelectLocationViewModel(get(), get(), get()) } - viewModel { SettingsViewModel(get(), get()) } + viewModel { SettingsViewModel(get(), get(), IS_PLAY_BUILD) } viewModel { SplashViewModel(get(), get(), get()) } viewModel { VoucherDialogViewModel(get(), get()) } viewModel { VpnSettingsViewModel(get(), get(), get(), get()) } - viewModel { WelcomeViewModel(get(), get(), get(), get(), get()) } + viewModel { WelcomeViewModel(get(), get(), get(), get(), get(), isPlayBuild = IS_PLAY_BUILD) } viewModel { ReportProblemViewModel(get(), get()) } viewModel { ViewLogsViewModel(get()) } - viewModel { OutOfTimeViewModel(get(), get(), get(), get(), get()) } + viewModel { OutOfTimeViewModel(get(), get(), get(), get(), get(), isPlayBuild = IS_PLAY_BUILD) } viewModel { PaymentViewModel(get()) } viewModel { FilterViewModel(get()) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/StringExtensions.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/StringExtensions.kt index 4214aac209..41e83465a1 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/StringExtensions.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/StringExtensions.kt @@ -1,9 +1,7 @@ package net.mullvad.mullvadvpn.util -import net.mullvad.mullvadvpn.constant.IS_PLAY_BUILD - -fun String.appendHideNavOnPlayBuild(): String = - if (IS_PLAY_BUILD) { +fun String.appendHideNavOnPlayBuild(isPlayBuild: Boolean): String = + if (isPlayBuild) { "$this?hide_nav" } else { this 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 eda8674802..0f8d624fc4 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 @@ -12,7 +12,6 @@ import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.compose.state.PaymentState -import net.mullvad.mullvadvpn.constant.IS_PLAY_BUILD import net.mullvad.mullvadvpn.lib.payment.model.ProductId import net.mullvad.mullvadvpn.model.AccountExpiry import net.mullvad.mullvadvpn.model.DeviceState @@ -28,7 +27,8 @@ class AccountViewModel( private val accountRepository: AccountRepository, private val serviceConnectionManager: ServiceConnectionManager, private val paymentUseCase: PaymentUseCase, - deviceRepository: DeviceRepository + deviceRepository: DeviceRepository, + private val isPlayBuild: Boolean, ) : ViewModel() { private val _uiSideEffect = Channel<UiSideEffect>(1, BufferOverflow.DROP_OLDEST) val uiSideEffect = _uiSideEffect.receiveAsFlow() @@ -43,7 +43,7 @@ class AccountViewModel( deviceName = deviceState.deviceName() ?: "", accountNumber = deviceState.token() ?: "", accountExpiry = accountExpiry.date(), - showSitePayment = IS_PLAY_BUILD.not(), + showSitePayment = !isPlayBuild, billingPaymentState = paymentAvailability?.toPaymentState() ) } 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 976eed1270..3066006083 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 @@ -54,7 +54,8 @@ class ConnectViewModel( private val newDeviceNotificationUseCase: NewDeviceNotificationUseCase, private val relayListUseCase: RelayListUseCase, private val outOfTimeUseCase: OutOfTimeUseCase, - private val paymentUseCase: PaymentUseCase + private val paymentUseCase: PaymentUseCase, + private val isPlayBuild: Boolean ) : ViewModel() { private val _uiSideEffect = Channel<UiSideEffect>(1, BufferOverflow.DROP_OLDEST) val uiSideEffect = _uiSideEffect.receiveAsFlow() @@ -128,7 +129,8 @@ class ConnectViewModel( }, inAppNotification = notifications.firstOrNull(), deviceName = deviceName, - daysLeftUntilExpiry = accountExpiry.date()?.daysFromNow() + daysLeftUntilExpiry = accountExpiry.date()?.daysFromNow(), + isPlayBuild = isPlayBuild ) } } 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 8c9a39bbdc..833ccf77d2 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 @@ -17,7 +17,6 @@ import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.compose.state.OutOfTimeUiState import net.mullvad.mullvadvpn.constant.ACCOUNT_EXPIRY_POLL_INTERVAL -import net.mullvad.mullvadvpn.constant.IS_PLAY_BUILD import net.mullvad.mullvadvpn.model.TunnelState import net.mullvad.mullvadvpn.repository.AccountRepository import net.mullvad.mullvadvpn.repository.DeviceRepository @@ -38,6 +37,7 @@ class OutOfTimeViewModel( private val paymentUseCase: PaymentUseCase, private val outOfTimeUseCase: OutOfTimeUseCase, private val pollAccountExpiry: Boolean = true, + private val isPlayBuild: Boolean ) : ViewModel() { private val _uiSideEffect = Channel<UiSideEffect>(1, BufferOverflow.DROP_OLDEST) @@ -61,7 +61,7 @@ class OutOfTimeViewModel( OutOfTimeUiState( tunnelState = tunnelState, deviceName = deviceState.deviceName() ?: "", - showSitePayment = IS_PLAY_BUILD.not(), + showSitePayment = !isPlayBuild, billingPaymentState = paymentAvailability?.toPaymentState(), ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModel.kt index 8ef85cfca8..b836894cb7 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModel.kt @@ -13,7 +13,8 @@ import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionManager class SettingsViewModel( deviceRepository: DeviceRepository, - serviceConnectionManager: ServiceConnectionManager + serviceConnectionManager: ServiceConnectionManager, + isPlayBuild: Boolean ) : ViewModel() { private val vmState: StateFlow<SettingsUiState> = @@ -25,19 +26,30 @@ class SettingsViewModel( isLoggedIn = deviceState is DeviceState.LoggedIn, appVersion = cachedVersionInfo?.version ?: "", isUpdateAvailable = - cachedVersionInfo?.let { it.isSupported.not() || it.isOutdated } ?: false + cachedVersionInfo?.let { it.isSupported.not() || it.isOutdated } ?: false, + isPlayBuild = isPlayBuild ) } .stateIn( viewModelScope, SharingStarted.WhileSubscribed(), - SettingsUiState(appVersion = "", isLoggedIn = false, isUpdateAvailable = false) + SettingsUiState( + appVersion = "", + isLoggedIn = false, + isUpdateAvailable = false, + isPlayBuild + ) ) val uiState = vmState.stateIn( viewModelScope, SharingStarted.WhileSubscribed(), - SettingsUiState(appVersion = "", isLoggedIn = false, isUpdateAvailable = false) + SettingsUiState( + appVersion = "", + isLoggedIn = false, + isUpdateAvailable = false, + isPlayBuild + ) ) } 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 7c77d183ca..6a2488c961 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 @@ -19,7 +19,6 @@ import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.compose.state.WelcomeUiState import net.mullvad.mullvadvpn.constant.ACCOUNT_EXPIRY_POLL_INTERVAL -import net.mullvad.mullvadvpn.constant.IS_PLAY_BUILD import net.mullvad.mullvadvpn.model.TunnelState import net.mullvad.mullvadvpn.repository.AccountRepository import net.mullvad.mullvadvpn.repository.DeviceRepository @@ -41,7 +40,8 @@ class WelcomeViewModel( private val serviceConnectionManager: ServiceConnectionManager, private val paymentUseCase: PaymentUseCase, private val outOfTimeUseCase: OutOfTimeUseCase, - private val pollAccountExpiry: Boolean = true + private val pollAccountExpiry: Boolean = true, + private val isPlayBuild: Boolean ) : ViewModel() { private val _uiSideEffect = Channel<UiSideEffect>(1, BufferOverflow.DROP_OLDEST) val uiSideEffect = _uiSideEffect.receiveAsFlow() @@ -67,7 +67,7 @@ class WelcomeViewModel( tunnelState = tunnelState, accountNumber = deviceState.token(), deviceName = deviceState.deviceName(), - showSitePayment = IS_PLAY_BUILD.not(), + showSitePayment = !isPlayBuild, billingPaymentState = paymentAvailability?.toPaymentState(), ) } 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 282d1d3a27..22acc97986 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 @@ -77,7 +77,8 @@ class AccountViewModelTest { accountRepository = mockAccountRepository, serviceConnectionManager = mockServiceConnectionManager, deviceRepository = mockDeviceRepository, - paymentUseCase = mockPaymentUseCase + paymentUseCase = mockPaymentUseCase, + isPlayBuild = false ) } diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt index 35898df4ab..7271c07433 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt @@ -150,7 +150,8 @@ class ConnectViewModelTest { relayListUseCase = mockRelayListUseCase, newDeviceNotificationUseCase = mockk(), outOfTimeUseCase = outOfTimeUseCase, - paymentUseCase = mockPaymentUseCase + paymentUseCase = mockPaymentUseCase, + isPlayBuild = false ) } diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModelTest.kt index 0232f12e89..ab861b1e20 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModelTest.kt @@ -97,7 +97,8 @@ class OutOfTimeViewModelTest { deviceRepository = mockDeviceRepository, paymentUseCase = mockPaymentUseCase, outOfTimeUseCase = mockOutOfTimeUseCase, - pollAccountExpiry = false + pollAccountExpiry = false, + isPlayBuild = false ) } diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModelTest.kt index a858913b31..ff6804c953 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModelTest.kt @@ -63,7 +63,8 @@ class SettingsViewModelTest { viewModel = SettingsViewModel( deviceRepository = mockDeviceRepository, - serviceConnectionManager = mockServiceConnectionManager + serviceConnectionManager = mockServiceConnectionManager, + isPlayBuild = false ) } diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModelTest.kt index 433a9f5709..ac047db2ea 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModelTest.kt @@ -96,7 +96,8 @@ class WelcomeViewModelTest { serviceConnectionManager = mockServiceConnectionManager, paymentUseCase = mockPaymentUseCase, outOfTimeUseCase = mockOutOfTimeUseCase, - pollAccountExpiry = false + pollAccountExpiry = false, + isPlayBuild = false ) } |
