From f61de0ad2e75de04f04e6dbacfc0be42daf78cb8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Thu, 23 Nov 2023 15:29:06 -0500
Subject: [PATCH] ConnectionService: handle exceptions in observeConversation

Change-Id: If28bd076ef96e54c2db3d66a3beb8476194a5211
---
 .../main/java/cx/ring/service/ConnectionService.kt  | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/jami-android/app/src/main/java/cx/ring/service/ConnectionService.kt b/jami-android/app/src/main/java/cx/ring/service/ConnectionService.kt
index 3c479bd7c..4983ce07d 100644
--- a/jami-android/app/src/main/java/cx/ring/service/ConnectionService.kt
+++ b/jami-android/app/src/main/java/cx/ring/service/ConnectionService.kt
@@ -55,10 +55,15 @@ class ConnectionService : ConnectionService() {
             val account = request.extras.getString(ConversationPath.KEY_ACCOUNT_ID)
             val contactId = request.extras.getString(ConversationPath.KEY_CONVERSATION_URI)
             if (account != null && contactId != null) {
-                val profile = conversationFacade.observeConversation(account, Uri.fromString(contactId), false).blockingFirst()
-                Log.w(TAG, "Set connection metadata ${profile.title} ${android.net.Uri.parse(profile.uriTitle)}")
-                setCallerDisplayName(profile.title, TelecomManager.PRESENTATION_ALLOWED)
-                setAddress(android.net.Uri.parse(profile.uriTitle), TelecomManager.PRESENTATION_UNKNOWN)
+                try {
+                    val profile = conversationFacade.observeConversation(account, Uri.fromString(contactId), false).blockingFirst()
+                    Log.w(TAG, "Set connection metadata ${profile.title} ${android.net.Uri.parse(profile.uriTitle)}")
+                    setCallerDisplayName(profile.title, TelecomManager.PRESENTATION_ALLOWED)
+                    setAddress(android.net.Uri.parse(profile.uriTitle), TelecomManager.PRESENTATION_UNKNOWN)
+                } catch (e: Exception) {
+                    Log.e(TAG, "Error setting connection metadata", e)
+                    setAddress(request.address, TelecomManager.PRESENTATION_UNKNOWN)
+                }
             } else
                 setAddress(request.address, TelecomManager.PRESENTATION_UNKNOWN)
 
-- 
GitLab