summaryrefslogtreecommitdiffhomepage
path: root/android/lib/model/src
diff options
context:
space:
mode:
authorKalle Lindström <karl.lindstrom@mullvad.net>2025-07-22 14:26:22 +0200
committerKalle Lindström <karl.lindstrom@mullvad.net>2025-07-22 14:26:22 +0200
commitb2fc803af349205bc40d7cd00e0a480536c3d09e (patch)
treed603241a7e9ed6284f89704140f02c1a828518cb /android/lib/model/src
parent75501a665b1bb7257cacd79f1eca84c839929725 (diff)
parent526ecbf7d85c8abe7af08daf04dc4bc0c6df109c (diff)
downloadmullvadvpn-b2fc803af349205bc40d7cd00e0a480536c3d09e.tar.xz
mullvadvpn-b2fc803af349205bc40d7cd00e0a480536c3d09e.zip
Merge branch 'implement-recents-support-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