summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-06-26 16:53:22 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-07-01 20:22:02 +0000
commitc2fbf06016da682ac26cec220bebbbe67069af43 (patch)
tree9aa09be8fb4c894f509ace3deb76f40a409adc84 /android/src
parent88d51e082abc89886e32ca3f71d268a6aa20ae2d (diff)
downloadmullvadvpn-c2fbf06016da682ac26cec220bebbbe67069af43.tar.xz
mullvadvpn-c2fbf06016da682ac26cec220bebbbe67069af43.zip
Create `InAppNotification` abstract class
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/InAppNotification.kt40
1 files changed, 40 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/InAppNotification.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/InAppNotification.kt
new file mode 100644
index 0000000000..8fb0a64b7c
--- /dev/null
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/InAppNotification.kt
@@ -0,0 +1,40 @@
+package net.mullvad.mullvadvpn.ui.notification
+
+import net.mullvad.mullvadvpn.util.ChangeMonitor
+import net.mullvad.mullvadvpn.util.JobTracker
+
+abstract class InAppNotification {
+ private val changeMonitor = ChangeMonitor()
+ protected val jobTracker = JobTracker()
+
+ var status by changeMonitor.monitor(StatusLevel.Error)
+ protected set
+
+ var title by changeMonitor.monitor("")
+ protected set
+
+ var message by changeMonitor.monitor<String?>(null)
+ protected set
+
+ var onClick by changeMonitor.monitor<(suspend () -> Unit)?>(null)
+ protected set
+
+ var showIcon by changeMonitor.monitor(false)
+ protected set
+
+ var shouldShow by changeMonitor.monitor(false)
+ protected set
+
+ open fun onResume() {}
+ open fun onPause() {}
+
+ open fun onDestroy() {
+ jobTracker.cancelAllJobs()
+ }
+
+ protected fun update() {
+ if (changeMonitor.changed) {
+ changeMonitor.reset()
+ }
+ }
+}