summaryrefslogtreecommitdiffhomepage
path: root/android/lib/ipc/src
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2023-07-28 11:17:05 +0200
committerAlbin <albin@mullvad.net>2023-07-28 11:17:05 +0200
commit6ea45204b49571fea6e8cbbf2a3f49b2818278fd (patch)
tree606b8625cbf4454f7ecbf659d77ec7a26c14a113 /android/lib/ipc/src
parent7a1c9dba446651f06b00c80178407b34120cede9 (diff)
parent463fca04ab97e09daa9d1de7ee7ffdebf93ad023 (diff)
downloadmullvadvpn-6ea45204b49571fea6e8cbbf2a3f49b2818278fd.tar.xz
mullvadvpn-6ea45204b49571fea6e8cbbf2a3f49b2818278fd.zip
Merge branch 'move-vpn-service-to-its-own-module'
Diffstat (limited to 'android/lib/ipc/src')
-rw-r--r--android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/extensions/MessengerExtensions.kt40
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
+ }
+}