summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt19
1 files changed, 19 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt
index 73bebc2955..2992ee94eb 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt
@@ -11,8 +11,11 @@ import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.ui.notification.InAppNotification
import net.mullvad.mullvadvpn.ui.notification.InAppNotificationController
import net.mullvad.mullvadvpn.ui.notification.StatusLevel
+import net.mullvad.mullvadvpn.util.JobTracker
class NotificationBanner : FrameLayout {
+ private val jobTracker = JobTracker()
+
private val container =
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE).let { service ->
val inflater = service as LayoutInflater
@@ -51,6 +54,10 @@ class NotificationBanner : FrameLayout {
init {
setBackgroundResource(R.color.darkBlue)
+
+ setOnClickListener {
+ jobTracker.newUiJob("click") { onClick() }
+ }
}
fun onResume() {
@@ -65,6 +72,18 @@ class NotificationBanner : FrameLayout {
notifications.onDestroy()
}
+ private suspend fun onClick() {
+ notifications.current?.onClick?.let { action ->
+ alpha = 0.5f
+ setClickable(false)
+
+ jobTracker.runOnBackground(action)
+
+ setClickable(true)
+ alpha = 1.0f
+ }
+ }
+
private fun update(notification: InAppNotification) {
val notificationMessage = notification.message
val clickAction = notification.onClick