summaryrefslogtreecommitdiffhomepage
path: root/android/lib/model
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2025-03-19 09:38:52 +0100
committerDavid Göransson <david.goransson@mullvad.net>2025-03-19 09:38:52 +0100
commit22fc75dc527d1510874f7253b728a068426f6beb (patch)
tree14c4519dccdfe99d89a512ebcc5527aa5761918a /android/lib/model
parent793c39338a2fcd2bf188952061edaeaa925d614a (diff)
parentfaabed7502583eb9f58774717c48fcec7c1aca70 (diff)
downloadmullvadvpn-22fc75dc527d1510874f7253b728a068426f6beb.tar.xz
mullvadvpn-22fc75dc527d1510874f7253b728a068426f6beb.zip
Merge branch 'improve-tv-ui-experience'
Diffstat (limited to 'android/lib/model')
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/InAppNotification.kt44
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/VersionInfo.kt3
2 files changed, 47 insertions, 0 deletions
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/InAppNotification.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/InAppNotification.kt
new file mode 100644
index 0000000000..fdaa5f3c9d
--- /dev/null
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/InAppNotification.kt
@@ -0,0 +1,44 @@
+package net.mullvad.mullvadvpn.lib.model
+
+import java.time.Duration
+
+enum class StatusLevel {
+ Error,
+ Warning,
+ Info,
+}
+
+sealed class InAppNotification {
+ abstract val statusLevel: StatusLevel
+ abstract val priority: Long
+
+ data class TunnelStateError(val error: ErrorState) : InAppNotification() {
+ override val statusLevel = StatusLevel.Error
+ override val priority: Long = 1001
+ }
+
+ data object TunnelStateBlocked : InAppNotification() {
+ override val statusLevel = StatusLevel.Error
+ override val priority: Long = 1000
+ }
+
+ data class UnsupportedVersion(val versionInfo: VersionInfo) : InAppNotification() {
+ override val statusLevel = StatusLevel.Error
+ override val priority: Long = 999
+ }
+
+ data class AccountExpiry(val expiry: Duration) : InAppNotification() {
+ override val statusLevel = StatusLevel.Warning
+ override val priority: Long = 1001
+ }
+
+ data class NewDevice(val deviceName: String) : InAppNotification() {
+ override val statusLevel = StatusLevel.Info
+ override val priority: Long = 1001
+ }
+
+ data object NewVersionChangelog : InAppNotification() {
+ override val statusLevel = StatusLevel.Info
+ override val priority: Long = 1001
+ }
+}
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/VersionInfo.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/VersionInfo.kt
new file mode 100644
index 0000000000..1a225d482f
--- /dev/null
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/VersionInfo.kt
@@ -0,0 +1,3 @@
+package net.mullvad.mullvadvpn.lib.model
+
+data class VersionInfo(val currentVersion: String, val isSupported: Boolean)