summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-03 18:36:59 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-27 16:21:52 +0000
commite70831b7fa9e020977f9c882c1391c1e508b57fe (patch)
tree725dc38d29849c449092994e13b2972c73a1ac74 /android/src
parent6944f2362db6b6c85d2d1bb8f41d95f26f109044 (diff)
downloadmullvadvpn-e70831b7fa9e020977f9c882c1391c1e508b57fe.tar.xz
mullvadvpn-e70831b7fa9e020977f9c882c1391c1e508b57fe.zip
Use `UrlButton` in WireGuard Key screen
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt34
-rw-r--r--android/src/main/res/layout/wireguard_key.xml20
2 files changed, 15 insertions, 39 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 c99101df0b..e910d75d4f 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt
@@ -1,19 +1,13 @@
package net.mullvad.mullvadvpn.ui
import android.content.Context
-import android.content.Intent
-import android.net.Uri
import android.os.Bundle
import android.util.Base64
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.GlobalScope
-import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
-import kotlinx.coroutines.launch
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.model.KeygenEvent
import net.mullvad.mullvadvpn.model.KeygenFailure
@@ -21,6 +15,7 @@ import net.mullvad.mullvadvpn.model.TunnelState
import net.mullvad.mullvadvpn.ui.widget.Button
import net.mullvad.mullvadvpn.ui.widget.CopyableInformationView
import net.mullvad.mullvadvpn.ui.widget.InformationView
+import net.mullvad.mullvadvpn.ui.widget.UrlButton
import net.mullvad.mullvadvpn.util.JobTracker
import net.mullvad.mullvadvpn.util.TimeAgoFormatter
import org.joda.time.DateTime
@@ -42,7 +37,6 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre
private var tunnelStateListener: Int? = null
private var tunnelState: TunnelState = TunnelState.Disconnected()
- private lateinit var urlController: BlockingController
private var actionState: ActionState = ActionState.Idle(false)
set(value) {
@@ -87,7 +81,7 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre
private lateinit var keyAge: InformationView
private lateinit var statusMessage: TextView
private lateinit var verifyingKeySpinner: View
- private lateinit var manageKeysButton: Button
+ private lateinit var manageKeysButton: UrlButton
private lateinit var generateKeyButton: android.widget.Button
private lateinit var verifyKeyButton: Button
@@ -109,7 +103,6 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre
}
statusMessage = view.findViewById<TextView>(R.id.wireguard_key_status)
- manageKeysButton = view.findViewById(R.id.manage_keys)
publicKey = view.findViewById(R.id.public_key)
keyAge = view.findViewById(R.id.key_age)
@@ -127,26 +120,8 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre
verifyingKeySpinner = view.findViewById(R.id.verifying_key_spinner)
- val keyUrl = parentActivity.getString(R.string.wg_key_url)
-
- urlController = BlockingController(
- object : BlockableView {
- override fun setEnabled(enabled: Boolean) {
- manageKeysButton.setEnabled(enabled && !(tunnelState is TunnelState.Error))
- }
-
- override fun onClick(): Job {
- return GlobalScope.launch(Dispatchers.Default) {
- val token = daemon.getWwwAuthToken()
- val intent = Intent(Intent.ACTION_VIEW,
- Uri.parse(keyUrl + "?token=" + token))
- startActivity(intent)
- }
- }
- }
- )
- manageKeysButton.setOnClickListener {
- urlController.action()
+ manageKeysButton = view.findViewById<UrlButton>(R.id.manage_keys).apply {
+ prepare(daemon, jobTracker)
}
return view
@@ -184,7 +159,6 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre
}
keyStatusListener.onKeyStatusChange = null
- urlController.onPause()
jobTracker.cancelAllJobs()
}
diff --git a/android/src/main/res/layout/wireguard_key.xml b/android/src/main/res/layout/wireguard_key.xml
index 20e6250f49..c29300393e 100644
--- a/android/src/main/res/layout/wireguard_key.xml
+++ b/android/src/main/res/layout/wireguard_key.xml
@@ -92,13 +92,15 @@
android:paddingHorizontal="8dp"
android:text="@string/wireguard_verify_key"
style="@style/BlueButton" />
- <net.mullvad.mullvadvpn.ui.widget.Button android:id="@+id/manage_keys"
- android:layout_weight="0"
- android:layout_marginTop="24dp"
- android:layout_marginBottom="24dp"
- android:layout_marginHorizontal="24dp"
- android:paddingHorizontal="8dp"
- android:text="@string/wireguard_manage_keys"
- android:drawableRight="@drawable/icon_extlink"
- style="@style/BlueButton" />
+ <net.mullvad.mullvadvpn.ui.widget.UrlButton android:id="@+id/manage_keys"
+ android:layout_weight="0"
+ android:layout_marginTop="24dp"
+ android:layout_marginBottom="24dp"
+ android:layout_marginHorizontal="24dp"
+ android:paddingHorizontal="8dp"
+ android:text="@string/wireguard_manage_keys"
+ android:drawableRight="@drawable/icon_extlink"
+ mullvad:url="@string/wg_key_url"
+ mullvad:withToken="true"
+ style="@style/BlueButton" />
</LinearLayout>