summaryrefslogtreecommitdiffhomepage
path: root/android/app/src
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2023-07-26 13:24:34 +0200
committerAlbin <albin@mullvad.net>2023-07-27 10:41:29 +0200
commite65ec2a5a99cf1de9a99822b79c01ad90f0e2bc5 (patch)
tree2418f16fcbdcb2a4c1fd35babf608d0f3e19c6ae /android/app/src
parent67d97bbf838d25151b1739960a74bb53d18c828c (diff)
downloadmullvadvpn-e65ec2a5a99cf1de9a99822b79c01ad90f0e2bc5.tar.xz
mullvadvpn-e65ec2a5a99cf1de9a99822b79c01ad90f0e2bc5.zip
Move ipc classes to ipc module
Diffstat (limited to 'android/app/src')
-rw-r--r--android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/ipc/HandlerFlowTest.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/DispatchingHandler.kt41
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Event.kt72
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/HandlerFlow.kt41
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Message.kt30
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/MessageDispatcher.kt7
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt103
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/ServiceConnection.kt5
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/AccountRepository.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/DeviceRepository.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AppVersionInfoCache.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AuthTokenCache.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ConnectionProxy.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/CustomDns.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/DaemonDeviceDataSource.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/LocationInfoCache.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SplitTunneling.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VoucherRedeemer.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoCache.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AuthTokenCache.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/LocationInfoCache.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionAccountDataSource.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionContainer.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionDeviceDataSource.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SettingsListener.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SplitTunneling.kt8
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/VoucherRedeemer.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/VpnPermission.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/MessengerExtensions.kt4
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxyTest.kt6
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/service/ServiceConnectionDeviceDataSourceTest.kt6
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt2
41 files changed, 77 insertions, 367 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/ipc/HandlerFlowTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/ipc/HandlerFlowTest.kt
index 1dcb4dff5b..9501c26426 100644
--- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/ipc/HandlerFlowTest.kt
+++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/ipc/HandlerFlowTest.kt
@@ -9,6 +9,7 @@ import kotlinx.coroutines.flow.take
import kotlinx.coroutines.flow.toList
import kotlinx.coroutines.runBlocking
import kotlinx.parcelize.Parcelize
+import net.mullvad.mullvadvpn.lib.ipc.HandlerFlow
import org.junit.Test
class HandlerFlowTest {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt
index 0e10278ac3..ba27a1bd18 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt
@@ -8,7 +8,7 @@ import kotlinx.coroutines.Dispatchers
import net.mullvad.mullvadvpn.BuildConfig
import net.mullvad.mullvadvpn.applist.ApplicationsIconManager
import net.mullvad.mullvadvpn.applist.ApplicationsProvider
-import net.mullvad.mullvadvpn.ipc.EventDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher
import net.mullvad.mullvadvpn.repository.AccountRepository
import net.mullvad.mullvadvpn.repository.ChangelogRepository
import net.mullvad.mullvadvpn.repository.DeviceRepository
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/DispatchingHandler.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/DispatchingHandler.kt
deleted file mode 100644
index b105d2192d..0000000000
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/DispatchingHandler.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-package net.mullvad.mullvadvpn.ipc
-
-import android.os.Handler
-import android.os.Looper
-import android.os.Message
-import android.util.Log
-import java.util.concurrent.locks.ReentrantReadWriteLock
-import kotlin.concurrent.withLock
-import kotlin.reflect.KClass
-
-class DispatchingHandler<T : Any>(looper: Looper, private val extractor: (Message) -> T?) :
- Handler(looper), MessageDispatcher<T> {
- private val handlers = HashMap<KClass<out T>, (T) -> Unit>()
- private val lock = ReentrantReadWriteLock()
-
- override fun <V : T> registerHandler(variant: KClass<V>, handler: (V) -> Unit) {
- lock.writeLock().withLock {
- handlers.put(variant) { instance -> @Suppress("UNCHECKED_CAST") handler(instance as V) }
- }
- }
-
- override fun handleMessage(message: Message) {
- lock.readLock().withLock {
- val instance = extractor(message)
-
- if (instance != null) {
- val handler = handlers.get(instance::class)
-
- handler?.invoke(instance)
- } else {
- Log.e("mullvad", "Dispatching handler received an unexpected message")
- }
- }
- }
-
- fun onDestroy() {
- lock.writeLock().withLock { handlers.clear() }
-
- removeCallbacksAndMessages(null)
- }
-}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Event.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Event.kt
deleted file mode 100644
index 99267b3363..0000000000
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Event.kt
+++ /dev/null
@@ -1,72 +0,0 @@
-package net.mullvad.mullvadvpn.ipc
-
-import android.os.Message as RawMessage
-import android.os.Messenger
-import kotlinx.parcelize.Parcelize
-import net.mullvad.mullvadvpn.model.AccountCreationResult
-import net.mullvad.mullvadvpn.model.AccountExpiry
-import net.mullvad.mullvadvpn.model.AccountHistory
-import net.mullvad.mullvadvpn.model.AppVersionInfo as AppVersionInfoData
-import net.mullvad.mullvadvpn.model.DeviceListEvent
-import net.mullvad.mullvadvpn.model.DeviceState
-import net.mullvad.mullvadvpn.model.GeoIpLocation
-import net.mullvad.mullvadvpn.model.LoginResult
-import net.mullvad.mullvadvpn.model.RelayList
-import net.mullvad.mullvadvpn.model.RemoveDeviceResult
-import net.mullvad.mullvadvpn.model.Settings
-import net.mullvad.mullvadvpn.model.TunnelState
-import net.mullvad.mullvadvpn.model.VoucherSubmissionResult as VoucherSubmissionResultData
-
-// Events that can be sent from the service
-sealed class Event : Message.EventMessage() {
- protected override val messageKey = MESSAGE_KEY
-
- @Parcelize data class AccountCreationEvent(val result: AccountCreationResult) : Event()
-
- @Parcelize data class AccountExpiryEvent(val expiry: AccountExpiry) : Event()
-
- @Parcelize data class AccountHistoryEvent(val history: AccountHistory) : Event()
-
- @Parcelize data class AppVersionInfo(val versionInfo: AppVersionInfoData?) : Event()
-
- @Parcelize data class AuthToken(val token: String?) : Event()
-
- @Parcelize data class CurrentVersion(val version: String?) : Event()
-
- @Parcelize data class DeviceStateEvent(val newState: DeviceState) : Event()
-
- @Parcelize data class DeviceListUpdate(val event: DeviceListEvent) : Event()
-
- @Parcelize
- data class DeviceRemovalEvent(val deviceId: String, val result: RemoveDeviceResult) : Event()
-
- @Parcelize data class ListenerReady(val connection: Messenger, val listenerId: Int) : Event()
-
- @Parcelize data class LoginEvent(val result: LoginResult) : Event()
-
- @Parcelize data class NewLocation(val location: GeoIpLocation?) : Event()
-
- @Parcelize data class NewRelayList(val relayList: RelayList?) : Event()
-
- @Parcelize data class SettingsUpdate(val settings: Settings?) : Event()
-
- @Parcelize data class SplitTunnelingUpdate(val excludedApps: List<String>?) : Event()
-
- @Parcelize data class TunnelStateChange(val tunnelState: TunnelState) : Event()
-
- @Parcelize
- data class VoucherSubmissionResult(
- val voucher: String,
- val result: VoucherSubmissionResultData
- ) : Event()
-
- @Parcelize object VpnPermissionRequest : Event()
-
- companion object {
- private const val MESSAGE_KEY = "event"
-
- fun fromMessage(message: RawMessage): Event? = Message.fromMessage(message, MESSAGE_KEY)
- }
-}
-
-typealias EventDispatcher = MessageDispatcher<Event>
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/HandlerFlow.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/HandlerFlow.kt
deleted file mode 100644
index b16cfe9fbd..0000000000
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/HandlerFlow.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-package net.mullvad.mullvadvpn.ipc
-
-import android.os.Handler
-import android.os.Looper
-import android.os.Message
-import android.util.Log
-import kotlinx.coroutines.CancellationException
-import kotlinx.coroutines.InternalCoroutinesApi
-import kotlinx.coroutines.channels.Channel
-import kotlinx.coroutines.channels.ClosedSendChannelException
-import kotlinx.coroutines.channels.trySendBlocking
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.FlowCollector
-import kotlinx.coroutines.flow.consumeAsFlow
-import kotlinx.coroutines.flow.onCompletion
-
-class HandlerFlow<T>(looper: Looper, private val extractor: (Message) -> T) :
- Handler(looper), Flow<T> {
- private val channel = Channel<T>(Channel.UNLIMITED)
- private val flow = channel.consumeAsFlow().onCompletion { removeCallbacksAndMessages(null) }
-
- @InternalCoroutinesApi
- override suspend fun collect(collector: FlowCollector<T>) = flow.collect(collector)
-
- override fun handleMessage(message: Message) {
- val extractedData = extractor(message)
-
- try {
- channel.trySendBlocking(extractedData)
- } catch (exception: Exception) {
- when (exception) {
- is ClosedSendChannelException,
- is CancellationException -> {
- Log.w("mullvad", "Received a message after HandlerFlow was closed", exception)
- removeCallbacksAndMessages(null)
- }
- else -> throw exception
- }
- }
- }
-}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Message.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Message.kt
deleted file mode 100644
index cdad0a6b13..0000000000
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Message.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-package net.mullvad.mullvadvpn.ipc
-
-import android.os.Bundle
-import android.os.Message as RawMessage
-import android.os.Parcelable
-
-sealed class Message(private val messageId: Int) : Parcelable {
- abstract class EventMessage : Message(1)
- abstract class RequestMessage : Message(2)
-
- protected abstract val messageKey: String
-
- val message: RawMessage
- get() =
- RawMessage.obtain().also { message ->
- message.what = messageId
- message.data = Bundle()
- message.data.putParcelable(messageKey, this)
- }
-
- companion object {
- internal fun <T : Parcelable> fromMessage(message: RawMessage, key: String): T? {
- val data = message.data
-
- data.classLoader = Message::class.java.classLoader
-
- return data.getParcelable(key)
- }
- }
-}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/MessageDispatcher.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/MessageDispatcher.kt
deleted file mode 100644
index 8a681b2ce4..0000000000
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/MessageDispatcher.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package net.mullvad.mullvadvpn.ipc
-
-import kotlin.reflect.KClass
-
-interface MessageDispatcher<T : Any> {
- fun <V : T> registerHandler(variant: KClass<V>, handler: (V) -> Unit)
-}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt
deleted file mode 100644
index 3ab59000ae..0000000000
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt
+++ /dev/null
@@ -1,103 +0,0 @@
-package net.mullvad.mullvadvpn.ipc
-
-import android.os.Message as RawMessage
-import android.os.Messenger
-import java.net.InetAddress
-import kotlinx.parcelize.Parcelize
-import net.mullvad.mullvadvpn.model.DnsOptions
-import net.mullvad.mullvadvpn.model.GeographicLocationConstraint
-import net.mullvad.mullvadvpn.model.ObfuscationSettings
-import net.mullvad.mullvadvpn.model.QuantumResistantState
-import net.mullvad.mullvadvpn.model.WireguardConstraints
-
-// Requests that the service can handle
-sealed class Request : Message.RequestMessage() {
- protected override val messageKey = MESSAGE_KEY
-
- @Parcelize
- @Deprecated("Use SetDnsOptions")
- data class AddCustomDnsServer(val address: InetAddress) : Request()
-
- @Parcelize object Connect : Request()
-
- @Parcelize object CreateAccount : Request()
-
- @Parcelize object Disconnect : Request()
-
- @Parcelize data class ExcludeApp(val packageName: String) : Request()
-
- @Parcelize object FetchAccountExpiry : Request()
-
- @Parcelize object FetchAccountHistory : Request()
-
- @Parcelize object FetchAuthToken : Request()
-
- @Parcelize data class IncludeApp(val packageName: String) : Request()
-
- @Parcelize data class Login(val account: String?) : Request()
-
- @Parcelize object RefreshDeviceState : Request()
-
- @Parcelize object GetDevice : Request()
-
- @Parcelize data class GetDeviceList(val accountToken: String) : Request()
-
- @Parcelize data class RemoveDevice(val accountToken: String, val deviceId: String) : Request()
-
- @Parcelize object Logout : Request()
-
- @Parcelize object PersistExcludedApps : Request()
-
- @Parcelize object Reconnect : Request()
-
- @Parcelize data class RegisterListener(val listener: Messenger) : Request()
-
- @Parcelize object ClearAccountHistory : Request()
-
- @Parcelize
- @Deprecated("Use SetDnsOptions")
- data class RemoveCustomDnsServer(val address: InetAddress) : Request()
-
- @Parcelize
- @Deprecated("Use SetDnsOptions")
- data class ReplaceCustomDnsServer(val oldAddress: InetAddress, val newAddress: InetAddress) :
- Request()
-
- @Parcelize data class SetAllowLan(val allow: Boolean) : Request()
-
- @Parcelize data class SetAutoConnect(val autoConnect: Boolean) : Request()
-
- @Parcelize
- @Deprecated("Use SetDnsOptions")
- data class SetEnableCustomDns(val enable: Boolean) : Request()
-
- @Parcelize data class SetEnableSplitTunneling(val enable: Boolean) : Request()
-
- @Parcelize
- data class SetRelayLocation(val relayLocation: GeographicLocationConstraint?) : Request()
-
- @Parcelize data class SetWireGuardMtu(val mtu: Int?) : Request()
-
- @Parcelize data class SubmitVoucher(val voucher: String) : Request()
-
- @Parcelize data class UnregisterListener(val listenerId: Int) : Request()
-
- @Parcelize data class VpnPermissionResponse(val isGranted: Boolean) : Request()
-
- @Parcelize data class SetDnsOptions(val dnsOptions: DnsOptions) : Request()
-
- @Parcelize data class SetObfuscationSettings(val settings: ObfuscationSettings?) : Request()
-
- @Parcelize
- data class SetWireguardConstraints(val wireguardConstraints: WireguardConstraints?) : Request()
-
- @Parcelize
- data class SetWireGuardQuantumResistant(val quantumResistant: QuantumResistantState) :
- Request()
-
- companion object {
- private const val MESSAGE_KEY = "request"
-
- fun fromMessage(message: RawMessage): Request? = Message.fromMessage(message, MESSAGE_KEY)
- }
-}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/ServiceConnection.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/ServiceConnection.kt
index 6cd8baa133..17682911e3 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/ServiceConnection.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ipc/ServiceConnection.kt
@@ -26,6 +26,9 @@ import kotlinx.coroutines.launch
import net.mullvad.mullvadvpn.lib.common.util.DispatchingFlow
import net.mullvad.mullvadvpn.lib.common.util.bindServiceFlow
import net.mullvad.mullvadvpn.lib.common.util.dispatchTo
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.HandlerFlow
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.model.ServiceResult
import net.mullvad.mullvadvpn.model.TunnelState
import net.mullvad.mullvadvpn.service.MullvadVpnService
@@ -33,7 +36,7 @@ import net.mullvad.mullvadvpn.service.MullvadVpnService
@FlowPreview
class ServiceConnection(context: Context, scope: CoroutineScope) {
private val activeListeners = MutableStateFlow<Pair<Messenger, Int>?>(null)
- private val handler = HandlerFlow(Looper.getMainLooper(), Event::fromMessage)
+ private val handler = HandlerFlow(Looper.getMainLooper(), Event.Companion::fromMessage)
private val listener = Messenger(handler)
private val listenerId = MutableStateFlow<Int?>(null)
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/AccountRepository.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/AccountRepository.kt
index 106cf9a7d9..ddcde56407 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/AccountRepository.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/AccountRepository.kt
@@ -13,7 +13,7 @@ import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.onStart
import kotlinx.coroutines.flow.shareIn
import kotlinx.coroutines.flow.stateIn
-import net.mullvad.mullvadvpn.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Event
import net.mullvad.mullvadvpn.model.AccountCreationResult
import net.mullvad.mullvadvpn.model.AccountExpiry
import net.mullvad.mullvadvpn.model.AccountHistory
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/DeviceRepository.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/DeviceRepository.kt
index 2374f7dfe1..e2ca5029ce 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/DeviceRepository.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/DeviceRepository.kt
@@ -15,7 +15,7 @@ import kotlinx.coroutines.flow.onStart
import kotlinx.coroutines.flow.shareIn
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.withTimeoutOrNull
-import net.mullvad.mullvadvpn.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Event
import net.mullvad.mullvadvpn.model.DeviceList
import net.mullvad.mullvadvpn.model.DeviceListEvent
import net.mullvad.mullvadvpn.model.DeviceState
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt
index 7f5254c41b..01d8bcea83 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt
@@ -6,8 +6,8 @@ import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.ClosedReceiveChannelException
import kotlinx.coroutines.channels.actor
import kotlinx.coroutines.channels.trySendBlocking
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.model.AccountCreationResult
import net.mullvad.mullvadvpn.model.AccountExpiry
import net.mullvad.mullvadvpn.model.AccountHistory
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AppVersionInfoCache.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AppVersionInfoCache.kt
index 596ad21a3f..767ac3e251 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AppVersionInfoCache.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AppVersionInfoCache.kt
@@ -1,7 +1,7 @@
package net.mullvad.mullvadvpn.service.endpoint
import kotlin.properties.Delegates.observable
-import net.mullvad.mullvadvpn.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Event
import net.mullvad.mullvadvpn.model.AppVersionInfo
import net.mullvad.mullvadvpn.service.MullvadDaemon
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AuthTokenCache.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AuthTokenCache.kt
index 49c4d1faac..6506c0469d 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AuthTokenCache.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AuthTokenCache.kt
@@ -7,8 +7,8 @@ import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.ClosedReceiveChannelException
import kotlinx.coroutines.channels.actor
import kotlinx.coroutines.channels.trySendBlocking
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Request
class AuthTokenCache(endpoint: ServiceEndpoint) {
companion object {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ConnectionProxy.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ConnectionProxy.kt
index fcdcece119..a2c97a05bd 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ConnectionProxy.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ConnectionProxy.kt
@@ -6,8 +6,8 @@ import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.ClosedReceiveChannelException
import kotlinx.coroutines.channels.actor
import kotlinx.coroutines.channels.trySendBlocking
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.model.TunnelState
import net.mullvad.talpid.util.EventNotifier
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/CustomDns.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/CustomDns.kt
index 5a24bea643..fe8f55a66d 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/CustomDns.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/CustomDns.kt
@@ -7,7 +7,7 @@ import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.ClosedReceiveChannelException
import kotlinx.coroutines.channels.actor
import kotlinx.coroutines.channels.trySendBlocking
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.model.CustomDnsOptions
import net.mullvad.mullvadvpn.model.DefaultDnsOptions
import net.mullvad.mullvadvpn.model.DnsOptions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/DaemonDeviceDataSource.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/DaemonDeviceDataSource.kt
index 8f49ba2763..5a0efc82fd 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/DaemonDeviceDataSource.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/DaemonDeviceDataSource.kt
@@ -1,8 +1,8 @@
package net.mullvad.mullvadvpn.service.endpoint
import kotlinx.coroutines.flow.collect
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.service.MullvadDaemon
import net.mullvad.mullvadvpn.util.JobTracker
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/LocationInfoCache.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/LocationInfoCache.kt
index 54ffd654be..819ea10d77 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/LocationInfoCache.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/LocationInfoCache.kt
@@ -12,7 +12,7 @@ import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.receiveAsFlow
-import net.mullvad.mullvadvpn.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Event
import net.mullvad.mullvadvpn.model.Constraint
import net.mullvad.mullvadvpn.model.GeoIpLocation
import net.mullvad.mullvadvpn.model.RelaySettings
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt
index 7f4d274d6f..1abf64907c 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt
@@ -7,8 +7,8 @@ import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.ClosedReceiveChannelException
import kotlinx.coroutines.channels.actor
import kotlinx.coroutines.channels.trySendBlocking
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.model.Constraint
import net.mullvad.mullvadvpn.model.GeographicLocationConstraint
import net.mullvad.mullvadvpn.model.LocationConstraint
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt
index eb3bf3627a..cafb652014 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt
@@ -10,9 +10,9 @@ import kotlinx.coroutines.channels.ClosedReceiveChannelException
import kotlinx.coroutines.channels.SendChannel
import kotlinx.coroutines.channels.actor
import kotlinx.coroutines.channels.trySendBlocking
-import net.mullvad.mullvadvpn.ipc.DispatchingHandler
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.DispatchingHandler
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.service.MullvadDaemon
import net.mullvad.mullvadvpn.service.persistence.SplitTunnelingPersistence
import net.mullvad.mullvadvpn.util.Intermittent
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt
index fec7578a05..2863594cb9 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt
@@ -6,8 +6,8 @@ import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.ClosedReceiveChannelException
import kotlinx.coroutines.channels.actor
import kotlinx.coroutines.channels.trySendBlocking
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.model.*
import net.mullvad.mullvadvpn.service.MullvadDaemon
import net.mullvad.talpid.util.EventNotifier
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SplitTunneling.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SplitTunneling.kt
index 6ae5ce8ef4..a683b1e4bf 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SplitTunneling.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SplitTunneling.kt
@@ -1,8 +1,8 @@
package net.mullvad.mullvadvpn.service.endpoint
import kotlin.properties.Delegates.observable
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.service.persistence.SplitTunnelingPersistence
import net.mullvad.talpid.util.EventNotifier
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VoucherRedeemer.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VoucherRedeemer.kt
index 850afa6d90..a7003d6888 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VoucherRedeemer.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VoucherRedeemer.kt
@@ -6,8 +6,8 @@ import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.ClosedReceiveChannelException
import kotlinx.coroutines.channels.actor
import kotlinx.coroutines.channels.trySendBlocking
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Request
class VoucherRedeemer(private val endpoint: ServiceEndpoint) {
private val daemon
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt
index b5b4875e04..c86c471a3d 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt
@@ -3,8 +3,8 @@ package net.mullvad.mullvadvpn.service.endpoint
import android.content.Context
import android.content.Intent
import android.net.VpnService
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.ui.MainActivity
import net.mullvad.mullvadvpn.util.Intermittent
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoCache.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoCache.kt
index 5280ef472d..9210e5809b 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoCache.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoCache.kt
@@ -1,8 +1,8 @@
package net.mullvad.mullvadvpn.ui.serviceconnection
import kotlin.properties.Delegates.observable
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.EventDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher
import net.mullvad.mullvadvpn.model.AppVersionInfo
class AppVersionInfoCache(
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AuthTokenCache.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AuthTokenCache.kt
index 0bef217ca2..2c7ea5385c 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AuthTokenCache.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AuthTokenCache.kt
@@ -3,9 +3,9 @@ package net.mullvad.mullvadvpn.ui.serviceconnection
import android.os.Messenger
import java.util.LinkedList
import kotlinx.coroutines.CompletableDeferred
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.EventDispatcher
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Request
class AuthTokenCache(private val connection: Messenger, eventDispatcher: EventDispatcher) {
private val fetchQueue = LinkedList<CompletableDeferred<String>>()
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt
index 8cb33586d1..f31dfd7ce4 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt
@@ -6,9 +6,9 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.EventDispatcher
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.model.TunnelState
import net.mullvad.mullvadvpn.util.trySendRequest
import net.mullvad.talpid.tunnel.ActionAfterDisconnect
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt
index f87fea04d2..c9275429ca 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt
@@ -2,7 +2,7 @@ package net.mullvad.mullvadvpn.ui.serviceconnection
import android.os.Messenger
import java.net.InetAddress
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.model.DnsOptions
import net.mullvad.mullvadvpn.model.DnsState
import net.mullvad.mullvadvpn.util.trySendRequest
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/LocationInfoCache.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/LocationInfoCache.kt
index 198a61cd59..48f77d397d 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/LocationInfoCache.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/LocationInfoCache.kt
@@ -1,8 +1,8 @@
package net.mullvad.mullvadvpn.ui.serviceconnection
import kotlin.properties.Delegates.observable
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.EventDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher
import net.mullvad.mullvadvpn.model.GeoIpLocation
class LocationInfoCache(eventDispatcher: EventDispatcher) {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt
index 6db223530d..ed3ca5a618 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt
@@ -1,9 +1,9 @@
package net.mullvad.mullvadvpn.ui.serviceconnection
import android.os.Messenger
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.EventDispatcher
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.model.Constraint
import net.mullvad.mullvadvpn.model.GeographicLocationConstraint
import net.mullvad.mullvadvpn.model.PortRange
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionAccountDataSource.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionAccountDataSource.kt
index ff01f20eae..b8e6bc2ff9 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionAccountDataSource.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionAccountDataSource.kt
@@ -3,9 +3,9 @@ package net.mullvad.mullvadvpn.ui.serviceconnection
import android.os.Messenger
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.callbackFlow
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.EventDispatcher
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Request
class ServiceConnectionAccountDataSource(
private val connection: Messenger,
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionContainer.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionContainer.kt
index 4b7d989444..1ca0d6642c 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionContainer.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionContainer.kt
@@ -4,9 +4,9 @@ import android.os.Looper
import android.os.Messenger
import android.os.RemoteException
import android.util.Log
-import net.mullvad.mullvadvpn.ipc.DispatchingHandler
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.DispatchingHandler
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Request
import org.koin.core.component.KoinComponent
import org.koin.core.component.get
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionDeviceDataSource.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionDeviceDataSource.kt
index 2f4ee1613c..3c048f31be 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionDeviceDataSource.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionDeviceDataSource.kt
@@ -3,9 +3,9 @@ package net.mullvad.mullvadvpn.ui.serviceconnection
import android.os.Messenger
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.callbackFlow
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.EventDispatcher
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.util.trySendRequest
class ServiceConnectionDeviceDataSource(
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SettingsListener.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SettingsListener.kt
index 4146c66ce8..039b293d69 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SettingsListener.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SettingsListener.kt
@@ -1,9 +1,9 @@
package net.mullvad.mullvadvpn.ui.serviceconnection
import android.os.Messenger
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.EventDispatcher
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.model.DnsOptions
import net.mullvad.mullvadvpn.model.ObfuscationSettings
import net.mullvad.mullvadvpn.model.QuantumResistantState
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SplitTunneling.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SplitTunneling.kt
index de36ab9689..823d222443 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SplitTunneling.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SplitTunneling.kt
@@ -2,9 +2,9 @@ package net.mullvad.mullvadvpn.ui.serviceconnection
import android.os.Messenger
import kotlin.properties.Delegates.observable
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.EventDispatcher
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Request
class SplitTunneling(private val connection: Messenger, eventDispatcher: EventDispatcher) {
private var _excludedApps by
@@ -27,7 +27,7 @@ class SplitTunneling(private val connection: Messenger, eventDispatcher: EventDi
eventDispatcher.registerHandler(Event.SplitTunnelingUpdate::class) { event ->
if (event.excludedApps != null) {
enabled = true
- _excludedApps = event.excludedApps.toSet()
+ _excludedApps = event.excludedApps!!.toSet()
} else {
enabled = false
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/VoucherRedeemer.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/VoucherRedeemer.kt
index bb538f3f6b..fbf082ba3c 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/VoucherRedeemer.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/VoucherRedeemer.kt
@@ -2,9 +2,9 @@ package net.mullvad.mullvadvpn.ui.serviceconnection
import android.os.Messenger
import kotlinx.coroutines.CompletableDeferred
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.MessageDispatcher
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.MessageDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.model.VoucherSubmissionResult
class VoucherRedeemer(val connection: Messenger, eventDispatcher: MessageDispatcher<Event>) {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/VpnPermission.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/VpnPermission.kt
index 30b672364d..143a01d719 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/VpnPermission.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/VpnPermission.kt
@@ -1,9 +1,9 @@
package net.mullvad.mullvadvpn.ui.serviceconnection
import android.os.Messenger
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.MessageDispatcher
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.MessageDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Request
class VpnPermission(private val connection: Messenger, eventDispatcher: MessageDispatcher<Event>) {
var onRequest: (() -> Unit)? = null
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/MessengerExtensions.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/MessengerExtensions.kt
index 71ce51ad79..a2bd193b2f 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/MessengerExtensions.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/MessengerExtensions.kt
@@ -5,8 +5,8 @@ import android.os.Message
import android.os.Messenger
import android.os.RemoteException
import android.util.Log
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Request
fun Messenger.trySendEvent(event: Event, logErrors: Boolean): Boolean {
return trySend(event.message, logErrors, event::class.qualifiedName)
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxyTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxyTest.kt
index ff10770540..12b713838a 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxyTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxyTest.kt
@@ -16,9 +16,9 @@ import io.mockk.slot
import io.mockk.unmockkAll
import kotlin.reflect.KClass
import kotlin.test.assertEquals
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.EventDispatcher
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.ui.serviceconnection.ConnectionProxy
import org.junit.After
import org.junit.Before
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/service/ServiceConnectionDeviceDataSourceTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/service/ServiceConnectionDeviceDataSourceTest.kt
index 81633c89be..2b492ef5cd 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/service/ServiceConnectionDeviceDataSourceTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/service/ServiceConnectionDeviceDataSourceTest.kt
@@ -13,9 +13,9 @@ import io.mockk.mockkObject
import io.mockk.mockkStatic
import io.mockk.unmockkAll
import kotlin.reflect.KClass
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.EventDispatcher
-import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.lib.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.EventDispatcher
+import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionDeviceDataSource
import net.mullvad.mullvadvpn.util.JobTracker
import org.junit.After
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt
index 0531342cc4..6938c4092c 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt
@@ -14,7 +14,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.test.TestCoroutineDispatcher
import kotlinx.coroutines.test.runBlockingTest
import kotlinx.coroutines.test.setMain
-import net.mullvad.mullvadvpn.ipc.Event
+import net.mullvad.mullvadvpn.lib.ipc.Event
import net.mullvad.mullvadvpn.model.AccountCreationResult
import net.mullvad.mullvadvpn.model.AccountHistory
import net.mullvad.mullvadvpn.model.DeviceListEvent