diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-12-17 13:51:26 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-02-15 18:47:22 +0000 |
| commit | f64612f57220ce8bc4ca82632eb1981444c3fc30 (patch) | |
| tree | 37f48c5af2d3f1488e2cf6d199f09b411fe3c5dd /android/src | |
| parent | 286eda9150acc29615ae1f22c8ed798110900f11 (diff) | |
| download | mullvadvpn-f64612f57220ce8bc4ca82632eb1981444c3fc30.tar.xz mullvadvpn-f64612f57220ce8bc4ca82632eb1981444c3fc30.zip | |
Allow registering event listener messengers
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt | 5 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt index 92e9617781..47b613816b 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt @@ -1,13 +1,18 @@ package net.mullvad.mullvadvpn.ipc import android.os.Message as RawMessage +import android.os.Messenger import android.os.Parcelable +import kotlinx.parcelize.Parcelize // Requests that the service can handle sealed class Request : Message(), Parcelable { protected override val messageId = 2 protected override val messageKey = MESSAGE_KEY + @Parcelize + class RegisterListener(val listener: Messenger) : Request(), Parcelable + companion object { private const val MESSAGE_KEY = "request" 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 3e289dcc6f..5fe38c9539 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 @@ -6,12 +6,20 @@ import net.mullvad.mullvadvpn.ipc.DispatchingHandler import net.mullvad.mullvadvpn.ipc.Request class ServiceEndpoint(looper: Looper) { + private val listeners = mutableSetOf<Messenger>() + internal val dispatcher = DispatchingHandler(looper) { message -> Request.fromMessage(message) } val messenger = Messenger(dispatcher) + init { + dispatcher.registerHandler(Request.RegisterListener::class) { request -> + listeners.add(request.listener) + } + } + fun onDestroy() { dispatcher.onDestroy() } |
