summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2025-03-21 11:59:42 +0100
committerDavid Göransson <david.goransson@mullvad.net>2025-03-21 11:59:42 +0100
commit8da59e1d8c4fbfb8ed95fe7bb1fcdfc67e3d1ad7 (patch)
treec351e3ec5ca9a68b4e0a1b8f6dc95ab3e8a96bb9 /android
parent0fff3f944a000a2b660e92e75ee66c21160fed3d (diff)
parentf25afa97f9dd798f9a0a2c21461a59d5013eab41 (diff)
downloadmullvadvpn-8da59e1d8c4fbfb8ed95fe7bb1fcdfc67e3d1ad7.tar.xz
mullvadvpn-8da59e1d8c4fbfb8ed95fe7bb1fcdfc67e3d1ad7.zip
Merge branch 'add-action-to-vpn-permission-snackbar-droid-1866'
Diffstat (limited to 'android')
-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")