diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-01-29 11:51:32 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-02-15 18:47:22 +0000 |
| commit | b6b2fa30e5f76a4ecfb13cc2323d147a5a7edf80 (patch) | |
| tree | 4802e142d22029c82c360b13a2a98cb89a781756 /android | |
| parent | edc042a583aa914a7d8197dc7ee9fc4efd84e923 (diff) | |
| download | mullvadvpn-b6b2fa30e5f76a4ecfb13cc2323d147a5a7edf80.tar.xz mullvadvpn-b6b2fa30e5f76a4ecfb13cc2323d147a5a7edf80.zip | |
Add method to send an event to all listeners
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt | 17 |
1 files changed, 17 insertions, 0 deletions
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 239e701ae3..e401a116a8 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,5 +1,6 @@ package net.mullvad.mullvadvpn.service.endpoint +import android.os.DeadObjectException import android.os.Looper import android.os.Messenger import net.mullvad.mullvadvpn.ipc.DispatchingHandler @@ -25,6 +26,22 @@ class ServiceEndpoint(looper: Looper) { dispatcher.onDestroy() } + internal fun sendEvent(event: Event) { + synchronized(this) { + val deadListeners = mutableSetOf<Messenger>() + + for (listener in listeners) { + try { + listener.send(event.message) + } catch (_: DeadObjectException) { + deadListeners.add(listener) + } + } + + deadListeners.forEach { listeners.remove(it) } + } + } + private fun registerListener(listener: Messenger) { synchronized(this) { listeners.add(listener) |
