diff options
| author | Albin <albin@mullvad.net> | 2023-10-02 11:45:48 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2023-10-02 11:45:48 +0200 |
| commit | 76a67daefa31e8b6f06b7078f0a6a591318375c8 (patch) | |
| tree | e4e42ff06eea92a1d7cd1972f7d4877c91de3c7e /android/app/src/main | |
| parent | 3bf2f5767f9f7c363279be110c215c26bf9446e4 (diff) | |
| parent | 8af8d3c266c032ebb1f7019fa92aec02df9053b8 (diff) | |
| download | mullvadvpn-76a67daefa31e8b6f06b7078f0a6a591318375c8.tar.xz mullvadvpn-76a67daefa31e8b6f06b7078f0a6a591318375c8.zip | |
Merge branch 'add-konsist-vm-checks'
Diffstat (limited to 'android/app/src/main')
20 files changed, 91 insertions, 84 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt index b3bc9e7f3b..6241b3bf04 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt @@ -62,7 +62,7 @@ private fun PreviewAccountScreen() { accountNumber = "1234123412341234", accountExpiry = null ), - viewActions = MutableSharedFlow<AccountViewModel.ViewAction>().asSharedFlow(), + uiSideEffect = MutableSharedFlow<AccountViewModel.UiSideEffect>().asSharedFlow(), enterTransitionEndAction = MutableSharedFlow() ) } @@ -71,7 +71,7 @@ private fun PreviewAccountScreen() { @Composable fun AccountScreen( uiState: AccountUiState, - viewActions: SharedFlow<AccountViewModel.ViewAction>, + uiSideEffect: SharedFlow<AccountViewModel.UiSideEffect>, enterTransitionEndAction: SharedFlow<Unit>, onRedeemVoucherClick: () -> Unit = {}, onManageAccountClick: () -> Unit = {}, @@ -116,9 +116,11 @@ fun AccountScreen( }, ) { LaunchedEffect(Unit) { - viewActions.collect { viewAction -> - if (viewAction is AccountViewModel.ViewAction.OpenAccountManagementPageInBrowser) { - context.openAccountPageInBrowser(viewAction.token) + uiSideEffect.collect { uiSideEffect -> + if ( + uiSideEffect is AccountViewModel.UiSideEffect.OpenAccountManagementPageInBrowser + ) { + context.openAccountPageInBrowser(uiSideEffect.token) } } } 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 d250a5467e..8ca98c410a 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 @@ -60,7 +60,7 @@ fun PreviewConnectScreen() { AppTheme { ConnectScreen( uiState = state, - viewActions = MutableSharedFlow<ConnectViewModel.ViewAction>().asSharedFlow() + uiSideEffect = MutableSharedFlow<ConnectViewModel.UiSideEffect>().asSharedFlow() ) } } @@ -68,7 +68,7 @@ fun PreviewConnectScreen() { @Composable fun ConnectScreen( uiState: ConnectUiState, - viewActions: SharedFlow<ConnectViewModel.ViewAction>, + uiSideEffect: SharedFlow<ConnectViewModel.UiSideEffect>, onDisconnectClick: () -> Unit = {}, onReconnectClick: () -> Unit = {}, onConnectClick: () -> Unit = {}, @@ -83,12 +83,12 @@ fun ConnectScreen( ) { val context = LocalContext.current LaunchedEffect(key1 = Unit) { - viewActions.collect { viewAction -> - when (viewAction) { - is ConnectViewModel.ViewAction.OpenAccountManagementPageInBrowser -> { - context.openAccountPageInBrowser(viewAction.token) + uiSideEffect.collect { uiSideEffect -> + when (uiSideEffect) { + is ConnectViewModel.UiSideEffect.OpenAccountManagementPageInBrowser -> { + context.openAccountPageInBrowser(uiSideEffect.token) } - is ConnectViewModel.ViewAction.OpenOutOfTimeView -> { + is ConnectViewModel.UiSideEffect.OpenOutOfTimeView -> { onOpenOutOfTimeScreen() } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt index a9ab126dae..49de23228c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt @@ -48,7 +48,7 @@ private fun PreviewOutOfTimeScreenDisconnected() { OutOfTimeScreen( showSitePayment = true, uiState = OutOfTimeUiState(tunnelState = TunnelState.Disconnected), - viewActions = MutableSharedFlow<OutOfTimeViewModel.ViewAction>().asSharedFlow() + uiSideEffect = MutableSharedFlow<OutOfTimeViewModel.UiSideEffect>().asSharedFlow() ) } } @@ -60,7 +60,7 @@ private fun PreviewOutOfTimeScreenConnecting() { OutOfTimeScreen( showSitePayment = true, uiState = OutOfTimeUiState(tunnelState = TunnelState.Connecting(null, null)), - viewActions = MutableSharedFlow<OutOfTimeViewModel.ViewAction>().asSharedFlow() + uiSideEffect = MutableSharedFlow<OutOfTimeViewModel.UiSideEffect>().asSharedFlow() ) } } @@ -78,7 +78,7 @@ private fun PreviewOutOfTimeScreenError() { ErrorState(cause = ErrorStateCause.IsOffline, isBlocking = true) ) ), - viewActions = MutableSharedFlow<OutOfTimeViewModel.ViewAction>().asSharedFlow() + uiSideEffect = MutableSharedFlow<OutOfTimeViewModel.UiSideEffect>().asSharedFlow() ) } } @@ -87,7 +87,7 @@ private fun PreviewOutOfTimeScreenError() { fun OutOfTimeScreen( showSitePayment: Boolean, uiState: OutOfTimeUiState, - viewActions: SharedFlow<OutOfTimeViewModel.ViewAction>, + uiSideEffect: SharedFlow<OutOfTimeViewModel.UiSideEffect>, onDisconnectClick: () -> Unit = {}, onSitePaymentClick: () -> Unit = {}, onRedeemVoucherClick: () -> Unit = {}, @@ -97,11 +97,11 @@ fun OutOfTimeScreen( ) { val openAccountPage = LocalUriHandler.current.createOpenAccountPageHook() LaunchedEffect(key1 = Unit) { - viewActions.collect { viewAction -> - when (viewAction) { - is OutOfTimeViewModel.ViewAction.OpenAccountView -> - openAccountPage(viewAction.token) - OutOfTimeViewModel.ViewAction.OpenConnectScreen -> openConnectScreen() + uiSideEffect.collect { uiSideEffect -> + when (uiSideEffect) { + is OutOfTimeViewModel.UiSideEffect.OpenAccountView -> + openAccountPage(uiSideEffect.token) + OutOfTimeViewModel.UiSideEffect.OpenConnectScreen -> openConnectScreen() } } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt index 140b9824df..5cae9e966a 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt @@ -56,7 +56,7 @@ private fun PreviewWelcomeScreen() { WelcomeScreen( showSitePayment = true, uiState = WelcomeUiState(accountNumber = "4444555566667777", deviceName = "Happy Mole"), - viewActions = MutableSharedFlow<WelcomeViewModel.ViewAction>().asSharedFlow(), + uiSideEffect = MutableSharedFlow<WelcomeViewModel.UiSideEffect>().asSharedFlow(), onSitePaymentClick = {}, onRedeemVoucherClick = {}, onSettingsClick = {}, @@ -70,7 +70,7 @@ private fun PreviewWelcomeScreen() { fun WelcomeScreen( showSitePayment: Boolean, uiState: WelcomeUiState, - viewActions: SharedFlow<WelcomeViewModel.ViewAction>, + uiSideEffect: SharedFlow<WelcomeViewModel.UiSideEffect>, onSitePaymentClick: () -> Unit, onRedeemVoucherClick: () -> Unit, onSettingsClick: () -> Unit, @@ -79,11 +79,11 @@ fun WelcomeScreen( ) { val context = LocalContext.current LaunchedEffect(Unit) { - viewActions.collect { viewAction -> - when (viewAction) { - is WelcomeViewModel.ViewAction.OpenAccountView -> - context.openAccountPageInBrowser(viewAction.token) - WelcomeViewModel.ViewAction.OpenConnectScreen -> openConnectScreen() + uiSideEffect.collect { uiSideEffect -> + when (uiSideEffect) { + is WelcomeViewModel.UiSideEffect.OpenAccountView -> + context.openAccountPageInBrowser(uiSideEffect.token) + WelcomeViewModel.UiSideEffect.OpenConnectScreen -> openConnectScreen() } } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt index e8343aba8a..fa88696cd9 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt @@ -253,7 +253,7 @@ open class MainActivity : FragmentActivity() { findViewById<ComposeView>(R.id.compose_view).apply { setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnDetachedFromWindow) setContent { - val state = changelogViewModel.changelogDialogUiState.collectAsState().value + val state = changelogViewModel.uiState.collectAsState().value if (state is ChangelogDialogUiState.Show) { AppTheme { ChangelogDialog( diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/AccountFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/AccountFragment.kt index 666bd19cdb..b0784d62a9 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/AccountFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/AccountFragment.kt @@ -32,7 +32,7 @@ class AccountFragment : BaseFragment(), StatusBarPainter, NavigationBarPainter { val state = vm.uiState.collectAsState().value AccountScreen( uiState = state, - viewActions = vm.viewActions, + uiSideEffect = vm.uiSideEffect, enterTransitionEndAction = vm.enterTransitionEndAction, onRedeemVoucherClick = { openRedeemVoucherFragment() }, onManageAccountClick = vm::onManageAccountClick, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/ConnectFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/ConnectFragment.kt index b32f162761..afb2ec9d94 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/ConnectFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/ConnectFragment.kt @@ -34,7 +34,7 @@ class ConnectFragment : BaseFragment(), NavigationBarPainter { val state = connectViewModel.uiState.collectAsState().value ConnectScreen( uiState = state, - viewActions = connectViewModel.viewActions, + uiSideEffect = connectViewModel.uiSideEffect, onDisconnectClick = connectViewModel::onDisconnectClick, onReconnectClick = connectViewModel::onReconnectClick, onConnectClick = connectViewModel::onConnectClick, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/LoginFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/LoginFragment.kt index 466b0eca85..9fd6e5aceb 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/LoginFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/LoginFragment.kt @@ -14,7 +14,7 @@ import net.mullvad.mullvadvpn.lib.theme.AppTheme import net.mullvad.mullvadvpn.model.AccountToken import net.mullvad.mullvadvpn.ui.MainActivity import net.mullvad.mullvadvpn.ui.NavigationBarPainter -import net.mullvad.mullvadvpn.viewmodel.LoginViewAction +import net.mullvad.mullvadvpn.viewmodel.LoginUiSideEffect import net.mullvad.mullvadvpn.viewmodel.LoginViewModel import org.koin.androidx.viewmodel.ext.android.viewModel @@ -40,12 +40,12 @@ class LoginFragment : BaseFragment(), NavigationBarPainter { AppTheme { val uiState by vm.uiState.collectAsState() LaunchedEffect(Unit) { - vm.viewActions.collect { + vm.uiSideEffect.collect { when (it) { - LoginViewAction.NavigateToWelcome, - LoginViewAction + LoginUiSideEffect.NavigateToWelcome, + LoginUiSideEffect .NavigateToConnect -> {} // TODO Fix when we redo navigation - is LoginViewAction.TooManyDevices -> { + is LoginUiSideEffect.TooManyDevices -> { navigateToDeviceListFragment(it.accountToken) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/OutOfTimeFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/OutOfTimeFragment.kt index 8d3bf00010..700ffba145 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/OutOfTimeFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/OutOfTimeFragment.kt @@ -30,7 +30,7 @@ class OutOfTimeFragment : BaseFragment() { OutOfTimeScreen( showSitePayment = IS_PLAY_BUILD.not(), uiState = state, - viewActions = vm.viewActions, + uiSideEffect = vm.uiSideEffect, onSitePaymentClick = vm::onSitePaymentClick, onRedeemVoucherClick = ::openRedeemVoucherFragment, onSettingsClick = ::openSettingsView, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/WelcomeFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/WelcomeFragment.kt index 6c9fa0c4c7..403c50ccec 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/WelcomeFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/WelcomeFragment.kt @@ -30,7 +30,7 @@ class WelcomeFragment : BaseFragment() { WelcomeScreen( showSitePayment = IS_PLAY_BUILD.not(), uiState = state, - viewActions = vm.viewActions, + uiSideEffect = vm.uiSideEffect, onSitePaymentClick = vm::onSitePaymentClick, onRedeemVoucherClick = ::openRedeemVoucherFragment, onSettingsClick = ::openSettingsView, 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 b1ce2e0027..4099e52480 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 @@ -22,9 +22,9 @@ class AccountViewModel( deviceRepository: DeviceRepository ) : ViewModel() { - private val _viewActions = MutableSharedFlow<ViewAction>(extraBufferCapacity = 1) + private val _uiSideEffect = MutableSharedFlow<UiSideEffect>(extraBufferCapacity = 1) private val _enterTransitionEndAction = MutableSharedFlow<Unit>() - val viewActions = _viewActions.asSharedFlow() + val uiSideEffect = _uiSideEffect.asSharedFlow() val uiState = combine(deviceRepository.deviceState, accountRepository.accountExpiryState) { @@ -38,12 +38,13 @@ class AccountViewModel( } .stateIn(viewModelScope, SharingStarted.WhileSubscribed(), AccountUiState.default()) + @Suppress("konsist.ensurePublicPropertiesUsePermittedNames") val enterTransitionEndAction = _enterTransitionEndAction.asSharedFlow() fun onManageAccountClick() { viewModelScope.launch { - _viewActions.tryEmit( - ViewAction.OpenAccountManagementPageInBrowser( + _uiSideEffect.tryEmit( + UiSideEffect.OpenAccountManagementPageInBrowser( serviceConnectionManager.authTokenCache()?.fetchAuthToken() ?: "" ) ) @@ -58,8 +59,8 @@ class AccountViewModel( viewModelScope.launch { _enterTransitionEndAction.emit(Unit) } } - sealed class ViewAction { - data class OpenAccountManagementPageInBrowser(val token: String) : ViewAction() + sealed class UiSideEffect { + data class OpenAccountManagementPageInBrowser(val token: String) : UiSideEffect() } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt index 1c541944d2..f6549cded6 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt @@ -10,15 +10,14 @@ class ChangelogViewModel( private val buildVersionCode: Int, private val alwaysShowChangelog: Boolean ) : ViewModel() { - private val _changelogDialogUiState = - MutableStateFlow<ChangelogDialogUiState>(ChangelogDialogUiState.Hide) - val changelogDialogUiState = _changelogDialogUiState.asStateFlow() + private val _uiState = MutableStateFlow<ChangelogDialogUiState>(ChangelogDialogUiState.Hide) + val uiState = _uiState.asStateFlow() fun refreshChangelogDialogUiState() { val shouldShowChangelogDialog = alwaysShowChangelog || changelogRepository.getVersionCodeOfMostRecentChangelogShowed() < buildVersionCode - _changelogDialogUiState.value = + _uiState.value = if (shouldShowChangelogDialog) { val changelogList = changelogRepository.getLastVersionChanges() if (changelogList.isNotEmpty()) { @@ -33,7 +32,7 @@ class ChangelogViewModel( fun dismissChangelogDialog() { changelogRepository.setVersionCodeOfMostRecentChangelogShowed(buildVersionCode) - _changelogDialogUiState.value = ChangelogDialogUiState.Hide + _uiState.value = ChangelogDialogUiState.Hide } } 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 bf3414b0e1..01a1c84896 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 @@ -48,8 +48,8 @@ class ConnectViewModel( private val isVersionInfoNotificationEnabled: Boolean, accountRepository: AccountRepository, ) : ViewModel() { - private val _viewActions = MutableSharedFlow<ViewAction>(extraBufferCapacity = 1) - val viewActions = _viewActions.asSharedFlow() + private val _uiSideEffect = MutableSharedFlow<UiSideEffect>(extraBufferCapacity = 1) + val uiSideEffect = _uiSideEffect.asSharedFlow() private val _shared: SharedFlow<ServiceConnectionContainer> = serviceConnectionManager.connectionState @@ -84,7 +84,7 @@ class ConnectViewModel( accountExpiry, isTunnelInfoExpanded -> if (tunnelRealState.isTunnelErrorStateDueToExpiredAccount()) { - _viewActions.tryEmit(ViewAction.OpenOutOfTimeView) + _uiSideEffect.tryEmit(UiSideEffect.OpenOutOfTimeView) } ConnectUiState( location = @@ -205,18 +205,18 @@ class ConnectViewModel( fun onManageAccountClick() { viewModelScope.launch { - _viewActions.tryEmit( - ViewAction.OpenAccountManagementPageInBrowser( + _uiSideEffect.tryEmit( + UiSideEffect.OpenAccountManagementPageInBrowser( serviceConnectionManager.authTokenCache()?.fetchAuthToken() ?: "" ) ) } } - sealed interface ViewAction { - data class OpenAccountManagementPageInBrowser(val token: String) : ViewAction + sealed interface UiSideEffect { + data class OpenAccountManagementPageInBrowser(val token: String) : UiSideEffect - data object OpenOutOfTimeView : ViewAction + data object OpenOutOfTimeView : UiSideEffect } companion object { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt index 88337aea00..c554bd4daa 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt @@ -37,9 +37,10 @@ class DeviceListViewModel( private val _loadingDevices = MutableStateFlow<List<DeviceId>>(emptyList()) private val _toastMessages = MutableSharedFlow<String>(extraBufferCapacity = 1) + @Suppress("konsist.ensurePublicPropertiesUsePermittedNames") val toastMessages = _toastMessages.asSharedFlow() - var accountToken: String? = null + @Suppress("konsist.ensurePublicPropertiesUsePermittedNames") var accountToken: String? = null private var cachedDeviceList: List<Device>? = null val uiState = diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModel.kt index 194b6462a5..953e59f388 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModel.kt @@ -27,12 +27,12 @@ import net.mullvad.mullvadvpn.repository.DeviceRepository private const val MINIMUM_LOADING_SPINNER_TIME_MILLIS = 500L -sealed interface LoginViewAction { - data object NavigateToWelcome : LoginViewAction +sealed interface LoginUiSideEffect { + data object NavigateToWelcome : LoginUiSideEffect - data object NavigateToConnect : LoginViewAction + data object NavigateToConnect : LoginUiSideEffect - data class TooManyDevices(val accountToken: AccountToken) : LoginViewAction + data class TooManyDevices(val accountToken: AccountToken) : LoginUiSideEffect } class LoginViewModel( @@ -43,8 +43,8 @@ class LoginViewModel( private val _loginState = MutableStateFlow(LoginUiState.INITIAL.loginState) private val _loginInput = MutableStateFlow(LoginUiState.INITIAL.accountNumberInput) - private val _viewActions = MutableSharedFlow<LoginViewAction>(extraBufferCapacity = 1) - val viewActions = _viewActions.asSharedFlow() + private val _uiSideEffect = MutableSharedFlow<LoginUiSideEffect>(extraBufferCapacity = 1) + val uiSideEffect = _uiSideEffect.asSharedFlow() private val _uiState = combine( @@ -83,7 +83,7 @@ class LoginViewModel( LoginResult.Ok -> { launch { delay(1000) - _viewActions.emit(LoginViewAction.NavigateToConnect) + _uiSideEffect.emit(LoginUiSideEffect.NavigateToConnect) } Success } @@ -100,8 +100,8 @@ class LoginViewModel( if (refreshResult.isAvailable()) { // Navigate to device list - _viewActions.emit( - LoginViewAction.TooManyDevices(AccountToken(accountToken)) + _uiSideEffect.emit( + LoginUiSideEffect.TooManyDevices(AccountToken(accountToken)) ) return@launch } else { @@ -123,7 +123,7 @@ class LoginViewModel( private suspend fun AccountCreationResult.mapToUiState(): LoginState? { return if (this is AccountCreationResult.Success) { - _viewActions.emit(LoginViewAction.NavigateToWelcome) + _uiSideEffect.emit(LoginUiSideEffect.NavigateToWelcome) null } else { Idle(LoginError.UnableToCreateAccount) 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 00f3850777..8a789f62fd 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 @@ -34,8 +34,8 @@ class OutOfTimeViewModel( private val pollAccountExpiry: Boolean = true ) : ViewModel() { - private val _viewActions = MutableSharedFlow<ViewAction>(extraBufferCapacity = 1) - val viewActions = _viewActions.asSharedFlow() + private val _uiSideEffect = MutableSharedFlow<UiSideEffect>(extraBufferCapacity = 1) + val uiSideEffect = _uiSideEffect.asSharedFlow() val uiState = serviceConnectionManager.connectionState @@ -59,7 +59,7 @@ class OutOfTimeViewModel( val tomorrow = DateTime.now().plusHours(20) if (expiry.isAfter(tomorrow)) { - _viewActions.tryEmit(ViewAction.OpenConnectScreen) + _uiSideEffect.tryEmit(UiSideEffect.OpenConnectScreen) } } } @@ -77,8 +77,8 @@ class OutOfTimeViewModel( fun onSitePaymentClick() { viewModelScope.launch { - _viewActions.tryEmit( - ViewAction.OpenAccountView( + _uiSideEffect.tryEmit( + UiSideEffect.OpenAccountView( serviceConnectionManager.authTokenCache()?.fetchAuthToken() ?: "" ) ) @@ -89,9 +89,9 @@ class OutOfTimeViewModel( viewModelScope.launch { serviceConnectionManager.connectionProxy()?.disconnect() } } - sealed interface ViewAction { - data class OpenAccountView(val token: String) : ViewAction + sealed interface UiSideEffect { + data class OpenAccountView(val token: String) : UiSideEffect - data object OpenConnectScreen : ViewAction + data object OpenConnectScreen : UiSideEffect } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt index 4b7bca151d..2ae361c964 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt @@ -66,7 +66,9 @@ class SelectLocationViewModel(private val serviceConnectionManager: ServiceConne SelectLocationUiState.Loading ) + @Suppress("konsist.ensurePublicPropertiesUsePermittedNames") val uiCloseAction = _closeAction.asSharedFlow() + @Suppress("konsist.ensurePublicPropertiesUsePermittedNames") val enterTransitionEndAction = _enterTransitionEndAction.asSharedFlow() fun selectRelay(relayItem: RelayItem?) { 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 eaeaf33933..89adbe20be 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 @@ -45,6 +45,7 @@ class SettingsViewModel( SettingsUiState(appVersion = "", isLoggedIn = false, isUpdateAvailable = false) ) + @Suppress("konsist.ensurePublicPropertiesUsePermittedNames") val enterTransitionEndAction = _enterTransitionEndAction.asSharedFlow() fun onTransitionAnimationEnd() { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt index 5bd56f150d..7d3344d948 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt @@ -51,6 +51,7 @@ class VpnSettingsViewModel( ) : ViewModel() { private val _toastMessages = MutableSharedFlow<String>(extraBufferCapacity = 1) + @Suppress("konsist.ensurePublicPropertiesUsePermittedNames") val toastMessages = _toastMessages.asSharedFlow() private val dialogState = 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 eb25ad1268..fe2ddcb66a 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 @@ -39,8 +39,8 @@ class WelcomeViewModel( private val pollAccountExpiry: Boolean = true ) : ViewModel() { - private val _viewActions = MutableSharedFlow<ViewAction>(extraBufferCapacity = 1) - val viewActions = _viewActions.asSharedFlow() + private val _uiSideEffect = MutableSharedFlow<UiSideEffect>(extraBufferCapacity = 1) + val uiSideEffect = _uiSideEffect.asSharedFlow() val uiState = serviceConnectionManager.connectionState @@ -74,7 +74,7 @@ class WelcomeViewModel( val tomorrow = DateTime.now().plusHours(20) if (expiry.isAfter(tomorrow)) { - _viewActions.tryEmit(ViewAction.OpenConnectScreen) + _uiSideEffect.tryEmit(UiSideEffect.OpenConnectScreen) } } } @@ -92,17 +92,17 @@ class WelcomeViewModel( fun onSitePaymentClick() { viewModelScope.launch { - _viewActions.tryEmit( - ViewAction.OpenAccountView( + _uiSideEffect.tryEmit( + UiSideEffect.OpenAccountView( serviceConnectionManager.authTokenCache()?.fetchAuthToken() ?: "" ) ) } } - sealed interface ViewAction { - data class OpenAccountView(val token: String) : ViewAction + sealed interface UiSideEffect { + data class OpenAccountView(val token: String) : UiSideEffect - data object OpenConnectScreen : ViewAction + data object OpenConnectScreen : UiSideEffect } } |
