diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-04-03 02:05:23 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-04-27 16:21:52 +0000 |
| commit | fe6c5db924b0447ea06c838e24bd4b30ae599534 (patch) | |
| tree | f788db0b364a255e4784d254c16b69d2cc8b3e0f | |
| parent | 0ce644fc41194520a77b33f614b5a0c987934890 (diff) | |
| download | mullvadvpn-fe6c5db924b0447ea06c838e24bd4b30ae599534.tar.xz mullvadvpn-fe6c5db924b0447ea06c838e24bd4b30ae599534.zip | |
Allow asynchronous on click handlers on buttons
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/Button.kt | 17 |
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 + } } |
