summaryrefslogtreecommitdiffhomepage
path: root/android/lib/model/src
diff options
context:
space:
mode:
authorKalle Lindström <karl.lindstrom@mullvad.net>2025-07-15 11:23:07 +0200
committerKalle Lindström <karl.lindstrom@mullvad.net>2025-07-22 14:04:11 +0200
commit6611bab5d849471fe09e42c27797c55459134e6e (patch)
tree0cbf2caeaa89dfa85801205eac53104f2d93f8df /android/lib/model/src
parent75501a665b1bb7257cacd79f1eca84c839929725 (diff)
downloadmullvadvpn-6611bab5d849471fe09e42c27797c55459134e6e.tar.xz
mullvadvpn-6611bab5d849471fe09e42c27797c55459134e6e.zip
Implement select location recents ui
Diffstat (limited to 'android/lib/model/src')
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/RelayItem.kt25
1 files changed, 25 insertions, 0 deletions
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/RelayItem.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/RelayItem.kt
index 3ff0788776..27ce80c016 100644
--- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/RelayItem.kt
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/RelayItem.kt
@@ -4,6 +4,31 @@ import arrow.optics.optics
typealias DomainCustomList = CustomList
+sealed interface Hop {
+ data class Single<R : RelayItem>(val relay: R) : Hop
+
+ data class Multi(val entry: RelayItem, val exit: RelayItem) : Hop
+
+ val isActive: Boolean
+ get() =
+ when (this) {
+ is Multi -> entry.active && exit.active
+ is Single<*> -> relay.active
+ }
+
+ fun entry(): RelayItem =
+ when (this) {
+ is Multi -> entry
+ is Single<*> -> relay
+ }
+
+ fun exit(): RelayItem =
+ when (this) {
+ is Multi -> exit
+ is Single<*> -> relay
+ }
+}
+
@optics
sealed interface RelayItem {
val id: RelayItemId