summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-03 02:05:23 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-27 16:21:52 +0000
commitfe6c5db924b0447ea06c838e24bd4b30ae599534 (patch)
treef788db0b364a255e4784d254c16b69d2cc8b3e0f /android
parent0ce644fc41194520a77b33f614b5a0c987934890 (diff)
downloadmullvadvpn-fe6c5db924b0447ea06c838e24bd4b30ae599534.tar.xz
mullvadvpn-fe6c5db924b0447ea06c838e24bd4b30ae599534.zip
Allow asynchronous on click handlers on buttons
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/Button.kt17
1 files changed, 17 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/Button.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/Button.kt
index e4f2f1e8be..cb82f5be7c 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/Button.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/Button.kt
@@ -2,8 +2,13 @@ package net.mullvad.mullvadvpn.ui.widget
import android.content.Context
import android.util.AttributeSet
+import net.mullvad.mullvadvpn.util.JobTracker
class Button : android.widget.Button {
+ private var clickJobName: String? = null
+ private var jobTracker: JobTracker? = null
+ private var onClickAction: (suspend () -> Unit)? = null
+
constructor(context: Context) : super(context) {}
constructor(context: Context, attributes: AttributeSet) : super(context, attributes) {}
@@ -28,4 +33,16 @@ class Button : android.widget.Button {
alpha = 0.5f
}
}
+
+ init {
+ setOnClickListener {
+ jobTracker?.newUiJob(clickJobName!!, onClickAction!!)
+ }
+ }
+
+ fun setOnClickAction(jobName: String, tracker: JobTracker, action: suspend () -> Unit) {
+ clickJobName = jobName
+ jobTracker = tracker
+ onClickAction = action
+ }
}