diff options
Diffstat (limited to 'android/src')
3 files changed, 11 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt index 052f65ebd3..63d7e0ecb4 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt @@ -6,6 +6,7 @@ import android.content.Intent import android.net.VpnService import android.os.Binder import android.os.IBinder +import android.os.Looper import android.util.Log import kotlin.properties.Delegates.observable import kotlinx.coroutines.CompletableDeferred @@ -14,6 +15,7 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.Job import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.model.Settings +import net.mullvad.mullvadvpn.service.endpoint.ServiceEndpoint import net.mullvad.mullvadvpn.service.notifications.AccountExpiryNotification import net.mullvad.mullvadvpn.service.tunnelstate.TunnelStateUpdater import net.mullvad.mullvadvpn.ui.MainActivity @@ -69,6 +71,7 @@ class MullvadVpnService : TalpidVpnService() { } private lateinit var daemonInstance: DaemonInstance + private lateinit var endpoint: ServiceEndpoint private lateinit var keyguardManager: KeyguardManager private lateinit var notificationManager: ForegroundNotificationManager private lateinit var tunnelStateUpdater: TunnelStateUpdater @@ -102,6 +105,8 @@ class MullvadVpnService : TalpidVpnService() { notificationManager = ForegroundNotificationManager(this, serviceNotifier, keyguardManager) tunnelStateUpdater = TunnelStateUpdater(this, serviceNotifier) + endpoint = ServiceEndpoint(Looper.getMainLooper()) + notificationManager.acknowledgeStartForegroundService() daemonInstance = DaemonInstance(this).apply { @@ -241,6 +246,7 @@ class MullvadVpnService : TalpidVpnService() { if (state == State.Running) { instance = ServiceInstance( + endpoint.messenger, daemon, connectionProxy, connectivityListener, diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt index 135ea9ef28..19d4443162 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt @@ -1,8 +1,10 @@ package net.mullvad.mullvadvpn.service +import android.os.Messenger import net.mullvad.talpid.ConnectivityListener class ServiceInstance( + val messenger: Messenger, val daemon: MullvadDaemon, val connectionProxy: ConnectionProxy, val connectivityListener: ConnectivityListener, diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt index d115958979..3e289dcc6f 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt @@ -1,6 +1,7 @@ package net.mullvad.mullvadvpn.service.endpoint import android.os.Looper +import android.os.Messenger import net.mullvad.mullvadvpn.ipc.DispatchingHandler import net.mullvad.mullvadvpn.ipc.Request @@ -9,6 +10,8 @@ class ServiceEndpoint(looper: Looper) { Request.fromMessage(message) } + val messenger = Messenger(dispatcher) + fun onDestroy() { dispatcher.onDestroy() } |
