summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-01 20:15:48 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-27 16:21:51 +0000
commit05844638f9e61c7db86e3ab6f6eb5ede390b066d (patch)
tree5ceec86815fae87f4055e2130be3d91d7bb35a37 /android/src
parentf273b3d11495637ba52e1144c35b509df83d1778 (diff)
downloadmullvadvpn-05844638f9e61c7db86e3ab6f6eb5ede390b066d.tar.xz
mullvadvpn-05844638f9e61c7db86e3ab6f6eb5ede390b066d.zip
Replace flags with `ActionState` enum
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt29
1 files changed, 16 insertions, 13 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt
index bcffe5b1b8..7b2893623e 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt
@@ -30,15 +30,20 @@ import org.joda.time.format.DateTimeFormat
val RFC3339_FORMAT = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss.SSSSSSSSSS z")
class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
+ enum class ActionState {
+ Idle,
+ Generating,
+ Verifying;
+ }
+
private lateinit var timeAgoFormatter: TimeAgoFormatter
private var currentJob: Job? = null
private var updateViewsJob: Job? = null
+ private var actionState = ActionState.Idle
private var tunnelStateListener: Int? = null
private var tunnelState: TunnelState = TunnelState.Disconnected()
private lateinit var urlController: BlockingController
- private var generatingKey = false
- private var validatingKey = false
private var resetReconnectionExpectedJob: Job? = null
private var reconnectionExpected = false
@@ -128,7 +133,7 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre
synchronized(this@WireguardKeyFragment) {
tunnelState = uiState
- if (generatingKey) {
+ if (actionState == ActionState.Generating) {
reconnectionExpected = !(tunnelState is TunnelState.Disconnected)
} else if (tunnelState is TunnelState.Connected) {
reconnectionExpected = false
@@ -154,8 +159,7 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre
currentJob?.cancel()
updateViewsJob?.cancel()
resetReconnectionExpectedJob?.cancel()
- validatingKey = false
- generatingKey = false
+ actionState = ActionState.Idle
urlController.onPause()
}
@@ -222,7 +226,7 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre
}
private fun setGenerateButton() {
- generateKeyButton.setEnabled(!generatingKey && !validatingKey)
+ generateKeyButton.setEnabled(actionState == ActionState.Idle)
if (keyStatusListener.keyStatus is KeygenEvent.NewKey) {
generateKeyButton.setText(R.string.wireguard_replace_key)
@@ -234,7 +238,7 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre
private fun setVerifyButton() {
val keyState = keyStatusListener.keyStatus
- verifyKeyButton.setEnabled(!generatingKey && !validatingKey && keyState?.failure() == null)
+ verifyKeyButton.setEnabled(actionState == ActionState.Idle && keyState?.failure() == null)
}
private fun drawNoConnectionState() {
@@ -260,8 +264,7 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre
currentJob?.cancel()
synchronized(this) {
- generatingKey = true
- validatingKey = false
+ actionState = ActionState.Generating
reconnectionExpected = !(tunnelState is TunnelState.Disconnected)
}
@@ -273,16 +276,16 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre
keyStatusListener.generateKey().join()
- generatingKey = false
+ actionState = ActionState.Idle
updateViews()
}
}
private fun onValidateKeyPress() {
currentJob?.cancel()
- validatingKey = true
- generatingKey = false
+ actionState = ActionState.Verifying
updateViews()
+
currentJob = GlobalScope.launch(Dispatchers.Main) {
statusMessage.visibility = View.GONE
verifyingKeySpinner.visibility = View.VISIBLE
@@ -291,7 +294,7 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre
verifyingKeySpinner.visibility = View.GONE
statusMessage.visibility = View.VISIBLE
- validatingKey = false
+ actionState = ActionState.Idle
when (val state = keyStatusListener.keyStatus) {
is KeygenEvent.NewKey -> {