diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-08 16:46:31 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-17 14:15:14 +0000 |
| commit | 3a45a4830d60f9bccf0b8c22d0cae22f207fe34e (patch) | |
| tree | 4074a26317227e350f01d764df6a975bb74045b9 /android/src/main | |
| parent | a10e5d94e331a1929089d3d29408a653dbc4de58 (diff) | |
| download | mullvadvpn-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.kt | 54 |
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 + } +} |
