diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-26 17:56:55 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-07-01 20:22:03 +0000 |
| commit | 13a6322b2de11c14ff54a0e5e71b3454eaffaee7 (patch) | |
| tree | 228e4d4eed366ce54a747cdb5259816de2facbd2 | |
| parent | 8e45a4110e79c4ccfa248ed6350eb59bb2bc241c (diff) | |
| download | mullvadvpn-13a6322b2de11c14ff54a0e5e71b3454eaffaee7.tar.xz mullvadvpn-13a6322b2de11c14ff54a0e5e71b3454eaffaee7.zip | |
Implement in-app notification click behavior
| -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 |
