diff options
Diffstat (limited to 'android/src/main')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt | 19 |
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 |
