From 645706bf8fa31c92474bd9a51a3b1525c52aa503 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Thu, 1 Jun 2023 13:07:51 -0400
Subject: [PATCH] JamiPushReceiver.kt: avoid crash if non json received

`curl -d "Hi" ${topic}` is crashing Jami because data is not a JSON
object

Change-Id: I7e077d8adafcaa2b836254df66cac9a70346d553
---
 .../java/cx/ring/services/JamPushReceiver.kt       | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/jami-android/app/src/withUnifiedPush/java/cx/ring/services/JamPushReceiver.kt b/jami-android/app/src/withUnifiedPush/java/cx/ring/services/JamPushReceiver.kt
index 605aac185..c49a3cab7 100644
--- a/jami-android/app/src/withUnifiedPush/java/cx/ring/services/JamPushReceiver.kt
+++ b/jami-android/app/src/withUnifiedPush/java/cx/ring/services/JamPushReceiver.kt
@@ -29,11 +29,15 @@ import java.net.URI
 class JamiPushReceiver : MessagingReceiver() {
     override fun onMessage(context: Context, message: ByteArray, instance: String) {
         Log.w("JamiPushReceiver", "onMessage ${String(message)} $instance")
-        val obj = JSONObject(String(message))
-        val msg = HashMap<String, String>()
-        obj.keys().forEach { msg[it] = obj.getString(it) }
-        val app = JamiApplication.instance as JamiApplicationUnifiedPush?
-        app?.onMessage(msg)
+        try {
+            val obj = JSONObject(String(message))
+            val msg = HashMap<String, String>()
+            obj.keys().forEach { msg[it] = obj.getString(it) }
+            val app = JamiApplication.instance as JamiApplicationUnifiedPush?
+            app?.onMessage(msg)
+        } catch(e: Exception) {
+            Log.e("JamiPushReceiver", "onMessage", e)
+        }
     }
 
     override fun onNewEndpoint(context: Context, endpoint: String, instance: String) {
-- 
GitLab