summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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
+ }
}