diff options
| author | Albin <albin@mullvad.net> | 2023-07-28 11:17:05 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2023-07-28 11:17:05 +0200 |
| commit | 6ea45204b49571fea6e8cbbf2a3f49b2818278fd (patch) | |
| tree | 606b8625cbf4454f7ecbf659d77ec7a26c14a113 /android/lib/ipc | |
| parent | 7a1c9dba446651f06b00c80178407b34120cede9 (diff) | |
| parent | 463fca04ab97e09daa9d1de7ee7ffdebf93ad023 (diff) | |
| download | mullvadvpn-6ea45204b49571fea6e8cbbf2a3f49b2818278fd.tar.xz mullvadvpn-6ea45204b49571fea6e8cbbf2a3f49b2818278fd.zip | |
Merge branch 'move-vpn-service-to-its-own-module'
Diffstat (limited to 'android/lib/ipc')
| -rw-r--r-- | android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/extensions/MessengerExtensions.kt | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/extensions/MessengerExtensions.kt b/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/extensions/MessengerExtensions.kt new file mode 100644 index 0000000000..26cade5cb4 --- /dev/null +++ b/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/extensions/MessengerExtensions.kt @@ -0,0 +1,40 @@ +package net.mullvad.mullvadvpn.lib.ipc.extensions + +import android.os.DeadObjectException +import android.os.Message +import android.os.Messenger +import android.os.RemoteException +import android.util.Log +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) +} + +fun Messenger.trySendRequest(request: Request, logErrors: Boolean): Boolean { + return trySend(request.message, logErrors, request::class.qualifiedName) +} + +private fun Messenger.trySend(message: Message, logErrors: Boolean, messageName: String?): Boolean { + return try { + this.send(message) + true + } catch (deadObjectException: DeadObjectException) { + if (logErrors) { + Log.e( + "mullvad", + "Failed to send message ${messageName ?: "<missing>"} due to DeadObjectException" + ) + } + false + } catch (remoteException: RemoteException) { + if (logErrors) { + Log.e( + "mullvad", + "Failed to send message ${messageName ?: "<missing>"} due to RemoteException" + ) + } + false + } +} |
