Skip to content

Commit f25afa9

Browse files
klRawa
authored andcommitted
Add action to go to VPN settings from snackbar
1 parent 0fff3f9 commit f25afa9

File tree

1 file changed

+13
-11
lines changed
  • android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen

1 file changed

+13
-11
lines changed

android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt

+13-11
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ import net.mullvad.mullvadvpn.constant.SECURE_ZOOM
9999
import net.mullvad.mullvadvpn.constant.SECURE_ZOOM_ANIMATION_MILLIS
100100
import net.mullvad.mullvadvpn.constant.UNSECURE_ZOOM
101101
import net.mullvad.mullvadvpn.constant.fallbackLatLong
102+
import net.mullvad.mullvadvpn.lib.common.util.openVpnSettings
102103
import net.mullvad.mullvadvpn.lib.map.AnimatedMap
103104
import net.mullvad.mullvadvpn.lib.map.data.GlobeColors
104105
import net.mullvad.mullvadvpn.lib.map.data.LocationMarkerColors
@@ -215,12 +216,22 @@ fun Connect(
215216
is PrepareError.NotPrepared ->
216217
createVpnProfile.launch(sideEffect.prepareError.prepareIntent)
217218
}
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 -> {
219226
launch {
220227
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,
222232
)
223233
}
234+
}
224235

225236
is ConnectViewModel.UiSideEffect.OpenUri ->
226237
try {
@@ -688,15 +699,6 @@ fun TunnelState.iconTintColor(): Color =
688699
fun GeoIpLocation.toLatLong() =
689700
LatLong(Latitude(latitude.toFloat()), Longitude(longitude.toFloat()))
690701

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-
700702
private fun PrepareError.OtherLegacyAlwaysOnVpn.toMessage(context: Context) =
701703
context
702704
.getString(R.string.always_on_vpn_error_notification_content, "Legacy app")

0 commit comments

Comments
 (0)