@@ -99,6 +99,7 @@ import net.mullvad.mullvadvpn.constant.SECURE_ZOOM
99
99
import net.mullvad.mullvadvpn.constant.SECURE_ZOOM_ANIMATION_MILLIS
100
100
import net.mullvad.mullvadvpn.constant.UNSECURE_ZOOM
101
101
import net.mullvad.mullvadvpn.constant.fallbackLatLong
102
+ import net.mullvad.mullvadvpn.lib.common.util.openVpnSettings
102
103
import net.mullvad.mullvadvpn.lib.map.AnimatedMap
103
104
import net.mullvad.mullvadvpn.lib.map.data.GlobeColors
104
105
import net.mullvad.mullvadvpn.lib.map.data.LocationMarkerColors
@@ -215,12 +216,22 @@ fun Connect(
215
216
is PrepareError .NotPrepared ->
216
217
createVpnProfile.launch(sideEffect.prepareError.prepareIntent)
217
218
}
218
- is ConnectViewModel .UiSideEffect .ConnectError ->
219
+
220
+ is ConnectViewModel .UiSideEffect .ConnectError .Generic ->
221
+ snackbarHostState.showSnackbarImmediately(
222
+ message = context.getString(R .string.error_occurred)
223
+ )
224
+
225
+ is ConnectViewModel .UiSideEffect .ConnectError .PermissionDenied -> {
219
226
launch {
220
227
snackbarHostState.showSnackbarImmediately(
221
- message = sideEffect.toMessage(context)
228
+ message = context.getString(R .string.vpn_permission_denied_error),
229
+ actionLabel = context.getString(R .string.go_to_vpn_settings),
230
+ withDismissAction = true ,
231
+ onAction = context::openVpnSettings,
222
232
)
223
233
}
234
+ }
224
235
225
236
is ConnectViewModel .UiSideEffect .OpenUri ->
226
237
try {
@@ -688,15 +699,6 @@ fun TunnelState.iconTintColor(): Color =
688
699
fun GeoIpLocation.toLatLong () =
689
700
LatLong (Latitude (latitude.toFloat()), Longitude (longitude.toFloat()))
690
701
691
- private fun ConnectViewModel.UiSideEffect.ConnectError.toMessage (context : Context ): String =
692
- when (this ) {
693
- ConnectViewModel .UiSideEffect .ConnectError .Generic ->
694
- context.getString(R .string.error_occurred)
695
-
696
- ConnectViewModel .UiSideEffect .ConnectError .PermissionDenied ->
697
- context.getString(R .string.vpn_permission_denied_error)
698
- }
699
-
700
702
private fun PrepareError.OtherLegacyAlwaysOnVpn.toMessage (context : Context ) =
701
703
context
702
704
.getString(R .string.always_on_vpn_error_notification_content, " Legacy app" )
0 commit comments