summaryrefslogtreecommitdiffhomepage
path: root/android/app/src
diff options
context:
space:
mode:
authorKalle Lindström <karl.lindstrom@mullvad.net>2025-03-20 16:47:22 +0100
committerDavid Göransson <david.goransson@mullvad.net>2025-03-21 11:59:23 +0100
commitf25afa97f9dd798f9a0a2c21461a59d5013eab41 (patch)
treec351e3ec5ca9a68b4e0a1b8f6dc95ab3e8a96bb9 /android/app/src
parent0fff3f944a000a2b660e92e75ee66c21160fed3d (diff)
downloadmullvadvpn-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.kt24
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")