summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/main
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2023-10-02 11:45:48 +0200
committerAlbin <albin@mullvad.net>2023-10-02 11:45:48 +0200
commit76a67daefa31e8b6f06b7078f0a6a591318375c8 (patch)
treee4e42ff06eea92a1d7cd1972f7d4877c91de3c7e /android/app/src/main
parent3bf2f5767f9f7c363279be110c215c26bf9446e4 (diff)
parent8af8d3c266c032ebb1f7019fa92aec02df9053b8 (diff)
downloadmullvadvpn-76a67daefa31e8b6f06b7078f0a6a591318375c8.tar.xz
mullvadvpn-76a67daefa31e8b6f06b7078f0a6a591318375c8.zip
Merge branch 'add-konsist-vm-checks'
Diffstat (limited to 'android/app/src/main')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt12
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt14
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt18
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt14
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/AccountFragment.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/ConnectFragment.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/LoginFragment.kt10
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/OutOfTimeFragment.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/WelcomeFragment.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt13
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt9
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt16
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt3
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModel.kt20
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModel.kt16
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModel.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModel.kt16
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
}
}