From f42b1c6a96f9794a51fe99ea0e28ede0cf09e55b Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 20 Jul 2020 17:18:35 +0200 Subject: [PATCH] Remove chat message notification when deleting chat room --- .../main/chat/viewmodels/ChatRoomsListViewModel.kt | 2 ++ .../org/linphone/notifications/NotificationsManager.kt | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomsListViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomsListViewModel.kt index 867676ad1..91fd3881f 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomsListViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomsListViewModel.kt @@ -118,6 +118,7 @@ class ChatRoomsListViewModel : ErrorReportingViewModel() { chatRoomsToDeleteCount = 1 if (chatRoom != null) { + coreContext.notificationsManager.dismissChatNotification(chatRoom) Compatibility.removeChatRoomShortcut(chatRoom) chatRoom.addListener(chatRoomListener) coreContext.core.deleteChatRoom(chatRoom) @@ -131,6 +132,7 @@ class ChatRoomsListViewModel : ErrorReportingViewModel() { LinphoneUtils.deleteFilesAttachedToEventLog(eventLog) } + coreContext.notificationsManager.dismissChatNotification(chatRoom) Compatibility.removeChatRoomShortcut(chatRoom) chatRoom.addListener(chatRoomListener) chatRoom.core.deleteChatRoom(chatRoom) diff --git a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt index 238cee3e1..84408a3aa 100644 --- a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt +++ b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt @@ -602,6 +602,15 @@ class NotificationsManager(private val context: Context) { displayChatNotifiable(message.chatRoom, notifiable) } + fun dismissChatNotification(room: ChatRoom) { + val address = room.peerAddress.asStringUriOnly() + val notifiable: Notifiable? = chatNotificationsMap[address] + if (notifiable != null) { + Log.i("[Notifications Manager] Dismissing notification for chat room $room with id ${notifiable.notificationId}") + cancel(notifiable.notificationId) + } + } + /* Notifications */ private fun createMessageNotification(