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(