diff options
| -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 + } } |
