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 000000000..c6895edc8 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/collapse_default.png differ 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 000000000..afbb2de2e Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/fullscreen_default.png differ 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"/>