diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-26 16:53:22 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-07-01 20:22:02 +0000 |
| commit | c2fbf06016da682ac26cec220bebbbe67069af43 (patch) | |
| tree | 9aa09be8fb4c894f509ace3deb76f40a409adc84 /android/src | |
| parent | 88d51e082abc89886e32ca3f71d268a6aa20ae2d (diff) | |
| download | mullvadvpn-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.kt | 40 |
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() + } + } +} |
