diff options
| author | Kalle Lindström <karl.lindstrom@mullvad.net> | 2025-03-20 16:47:22 +0100 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2025-03-21 11:59:23 +0100 |
| commit | f25afa97f9dd798f9a0a2c21461a59d5013eab41 (patch) | |
| tree | c351e3ec5ca9a68b4e0a1b8f6dc95ab3e8a96bb9 /android/app/src | |
| parent | 0fff3f944a000a2b660e92e75ee66c21160fed3d (diff) | |
| download | mullvadvpn-f25afa97f9dd798f9a0a2c21461a59d5013eab41.tar.xz mullvadvpn-f25afa97f9dd798f9a0a2c21461a59d5013eab41.zip | |
Add action to go to VPN settings from snackbar
Diffstat (limited to 'android/app/src')
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt | 24 |
1 files changed, 13 insertions, 11 deletions
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 eb6df6c820..db7492607e 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 @@ -99,6 +99,7 @@ import net.mullvad.mullvadvpn.constant.SECURE_ZOOM import net.mullvad.mullvadvpn.constant.SECURE_ZOOM_ANIMATION_MILLIS import net.mullvad.mullvadvpn.constant.UNSECURE_ZOOM import net.mullvad.mullvadvpn.constant.fallbackLatLong +import net.mullvad.mullvadvpn.lib.common.util.openVpnSettings import net.mullvad.mullvadvpn.lib.map.AnimatedMap import net.mullvad.mullvadvpn.lib.map.data.GlobeColors import net.mullvad.mullvadvpn.lib.map.data.LocationMarkerColors @@ -215,12 +216,22 @@ fun Connect( is PrepareError.NotPrepared -> createVpnProfile.launch(sideEffect.prepareError.prepareIntent) } - is ConnectViewModel.UiSideEffect.ConnectError -> + + is ConnectViewModel.UiSideEffect.ConnectError.Generic -> + snackbarHostState.showSnackbarImmediately( + message = context.getString(R.string.error_occurred) + ) + + is ConnectViewModel.UiSideEffect.ConnectError.PermissionDenied -> { launch { snackbarHostState.showSnackbarImmediately( - message = sideEffect.toMessage(context) + message = context.getString(R.string.vpn_permission_denied_error), + actionLabel = context.getString(R.string.go_to_vpn_settings), + withDismissAction = true, + onAction = context::openVpnSettings, ) } + } is ConnectViewModel.UiSideEffect.OpenUri -> try { @@ -688,15 +699,6 @@ fun TunnelState.iconTintColor(): Color = fun GeoIpLocation.toLatLong() = LatLong(Latitude(latitude.toFloat()), Longitude(longitude.toFloat())) -private fun ConnectViewModel.UiSideEffect.ConnectError.toMessage(context: Context): String = - when (this) { - ConnectViewModel.UiSideEffect.ConnectError.Generic -> - context.getString(R.string.error_occurred) - - ConnectViewModel.UiSideEffect.ConnectError.PermissionDenied -> - context.getString(R.string.vpn_permission_denied_error) - } - private fun PrepareError.OtherLegacyAlwaysOnVpn.toMessage(context: Context) = context .getString(R.string.always_on_vpn_error_notification_content, "Legacy app") |
