summaryrefslogtreecommitdiffhomepage
path: root/android/src/main
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-06-08 16:46:31 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-06-17 14:15:14 +0000
commit3a45a4830d60f9bccf0b8c22d0cae22f207fe34e (patch)
tree4074a26317227e350f01d764df6a975bb74045b9 /android/src/main
parenta10e5d94e331a1929089d3d29408a653dbc4de58 (diff)
downloadmullvadvpn-3a45a4830d60f9bccf0b8c22d0cae22f207fe34e.tar.xz
mullvadvpn-3a45a4830d60f9bccf0b8c22d0cae22f207fe34e.zip
Create `TunnelStateNotificationAction` helper enum
Diffstat (limited to 'android/src/main')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotificationAction.kt54
1 files changed, 54 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotificationAction.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotificationAction.kt
new file mode 100644
index 0000000000..714264efbf
--- /dev/null
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotificationAction.kt
@@ -0,0 +1,54 @@
+package net.mullvad.mullvadvpn.service.notifications
+
+import net.mullvad.mullvadvpn.R
+import net.mullvad.mullvadvpn.model.TunnelState
+import net.mullvad.mullvadvpn.service.MullvadVpnService
+import net.mullvad.talpid.tunnel.ActionAfterDisconnect
+
+enum class TunnelStateNotificationAction {
+ Connect,
+ Disconnect,
+ Cancel,
+ Dismiss;
+
+ companion object {
+ fun from(tunnelState: TunnelState) = when (tunnelState) {
+ is TunnelState.Disconnected -> Connect
+ is TunnelState.Connecting -> Cancel
+ is TunnelState.Connected -> Disconnect
+ is TunnelState.Disconnecting -> {
+ when (tunnelState.actionAfterDisconnect) {
+ ActionAfterDisconnect.Reconnect -> Cancel
+ else -> Connect
+ }
+ }
+ is TunnelState.Error -> {
+ if (tunnelState.errorState.isBlocking) {
+ Disconnect
+ } else {
+ Dismiss
+ }
+ }
+ }
+ }
+
+ val text
+ get() = when (this) {
+ Connect -> R.string.connect
+ Disconnect -> R.string.disconnect
+ Cancel -> R.string.cancel
+ Dismiss -> R.string.dismiss
+ }
+
+ val key
+ get() = when (this) {
+ Connect -> MullvadVpnService.KEY_CONNECT_ACTION
+ else -> MullvadVpnService.KEY_DISCONNECT_ACTION
+ }
+
+ val icon
+ get() = when (this) {
+ Connect -> R.drawable.icon_notification_connect
+ else -> R.drawable.icon_notification_disconnect
+ }
+}