From b414016a008b420e29bf0ccefd84e6a2979c9a37 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 4 Feb 2021 10:27:38 +0100 Subject: [PATCH] Improved bubbles --- .../chat_bubble/ChatBubbleActivity.kt | 23 +++++++++++++++++++ .../chat/fragments/DetailChatRoomFragment.kt | 4 +++- .../notifications/NotificationsManager.kt | 17 +++++++------- .../main/res/layout/chat_bubble_activity.xml | 1 + 4 files changed, 35 insertions(+), 10 deletions(-) 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 67b2c4af9..aa83aea3e 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 @@ -23,8 +23,11 @@ import android.content.Intent import android.os.Bundle import androidx.databinding.DataBindingUtil import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.R import org.linphone.activities.GenericActivity @@ -135,6 +138,26 @@ class ChatBubbleActivity : GenericActivity() { } } + override fun onResume() { + super.onResume() + + val peerAddress = viewModel.chatRoom.peerAddress.asStringUriOnly() + coreContext.notificationsManager.currentlyDisplayedChatRoomAddress = peerAddress + coreContext.notificationsManager.resetChatNotificationCounterForSipUri(peerAddress) + + lifecycleScope.launch { + // Without the delay the scroll to bottom doesn't happen... + delay(100) + scrollToBottom() + } + } + + override fun onPause() { + coreContext.notificationsManager.currentlyDisplayedChatRoomAddress = null + + super.onPause() + } + private fun scrollToBottom() { if (adapter.itemCount > 0) { binding.chatMessagesList.scrollToPosition(adapter.itemCount - 1) diff --git a/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt b/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt index 8886c54eb..31beda79c 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt @@ -325,7 +325,9 @@ class DetailChatRoomFragment : MasterFragment