From 34338842b62e4da31fa4da89017ddd8d2307e249 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 3 Feb 2021 13:37:59 +0100 Subject: [PATCH] Prevents Core from shutting down when closing chat message notification bubble --- .../activities/chat_bubble/ChatBubbleActivity.kt | 3 +-- .../main/java/org/linphone/core/CoreService.kt | 8 ++++++-- .../notifications/NotificationsManager.kt | 12 ++++-------- .../main/res/drawable-xhdpi/collapse_default.png | Bin 0 -> 4007 bytes .../res/drawable-xhdpi/fullscreen_default.png | Bin 0 -> 2839 bytes app/src/main/res/layout/chat_bubble_activity.xml | 14 +++++--------- 6 files changed, 16 insertions(+), 21 deletions(-) create mode 100644 app/src/main/res/drawable-xhdpi/collapse_default.png create mode 100644 app/src/main/res/drawable-xhdpi/fullscreen_default.png diff --git a/app/src/main/java/org/linphone/activities/chat_bubble/ChatBubbleActivity.kt b/app/src/main/java/org/linphone/activities/chat_bubble/ChatBubbleActivity.kt index c0a124dcf..67b2c4af9 100644 --- a/app/src/main/java/org/linphone/activities/chat_bubble/ChatBubbleActivity.kt +++ b/app/src/main/java/org/linphone/activities/chat_bubble/ChatBubbleActivity.kt @@ -126,8 +126,7 @@ class ChatBubbleActivity : GenericActivity() { } binding.setCloseBubbleClickListener { - val notificationId = coreContext.notificationsManager.getChatNotificationIdForSipUri(viewModel.chatRoom.peerAddress.asStringUriOnly()) - coreContext.notificationsManager.cancel(notificationId) + coreContext.notificationsManager.cancelChatNotificationIdForSipUri(viewModel.chatRoom.peerAddress.asStringUriOnly()) } binding.setSendMessageClickListener { diff --git a/app/src/main/java/org/linphone/core/CoreService.kt b/app/src/main/java/org/linphone/core/CoreService.kt index f5c50aaa8..2e6af44e6 100644 --- a/app/src/main/java/org/linphone/core/CoreService.kt +++ b/app/src/main/java/org/linphone/core/CoreService.kt @@ -60,8 +60,12 @@ class CoreService : CoreService() { override fun onTaskRemoved(rootIntent: Intent?) { if (!corePreferences.keepServiceAlive) { - Log.i("[Service] Task removed, stopping Core") - coreContext.stop() + if (coreContext.core.isInBackground()) { + Log.i("[Service] Task removed, stopping Core") + coreContext.stop() + } else { + Log.w("[Service] Task removed but Core in not in background, skipping") + } } super.onTaskRemoved(rootIntent) diff --git a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt index ed526bf4d..01ede0691 100644 --- a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt +++ b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt @@ -93,11 +93,7 @@ class NotificationsManager(private val context: Context) { field = value if (value != null) { // When a chat room becomes visible, cancel unread chat notification if any - val notifiable: Notifiable? = chatNotificationsMap[value] - if (notifiable != null) { - cancel(notifiable.notificationId) - notifiable.messages.clear() - } + cancelChatNotificationIdForSipUri(value) } } @@ -246,12 +242,12 @@ class NotificationsManager(private val context: Context) { return null } - fun getChatNotificationIdForSipUri(sipUri: String): Int { + fun cancelChatNotificationIdForSipUri(sipUri: String) { val notifiable: Notifiable? = chatNotificationsMap[sipUri] if (notifiable != null) { - return notifiable.notificationId + notifiable.messages.clear() + cancel(notifiable.notificationId) } - return 0 } /* Service related */ diff --git a/app/src/main/res/drawable-xhdpi/collapse_default.png b/app/src/main/res/drawable-xhdpi/collapse_default.png new file mode 100644 index 0000000000000000000000000000000000000000..c6895edc8ef7acb0e9433ad1e17168777b54875b GIT binary patch literal 4007 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 N002ovPDHLkV1m!IhkpP7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/fullscreen_default.png b/app/src/main/res/drawable-xhdpi/fullscreen_default.png new file mode 100644 index 0000000000000000000000000000000000000000..afbb2de2e97664b0983d8ded2f09d3d501a31570 GIT binary patch literal 2839 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/chat_bubble_activity.xml b/app/src/main/res/layout/chat_bubble_activity.xml index cb072b4e2..f6eefb782 100644 --- a/app/src/main/res/layout/chat_bubble_activity.xml +++ b/app/src/main/res/layout/chat_bubble_activity.xml @@ -32,17 +32,15 @@ android:background="?attr/lightToolbarBackgroundColor" android:orientation="horizontal"> - - + app:tint="?attr/drawableTintColor" + android:src="@drawable/fullscreen_default"/>