diff options
| author | Kalle Lindström <karl.lindstrom@mullvad.net> | 2025-07-15 11:23:07 +0200 |
|---|---|---|
| committer | Kalle Lindström <karl.lindstrom@mullvad.net> | 2025-07-22 14:04:11 +0200 |
| commit | 6611bab5d849471fe09e42c27797c55459134e6e (patch) | |
| tree | 0cbf2caeaa89dfa85801205eac53104f2d93f8df /android/lib/model/src | |
| parent | 75501a665b1bb7257cacd79f1eca84c839929725 (diff) | |
| download | mullvadvpn-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.kt | 25 |
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 |
