From af2105e1936f0bba10761aa015fed8af83a8866e Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 26 May 2020 17:00:12 +0200 Subject: [PATCH] Scroll to bottom upon chat message reception --- .../main/chat/fragments/DetailChatRoomFragment.kt | 6 ++++++ .../main/chat/viewmodels/ChatMessagesListViewModel.kt | 5 +++++ 2 files changed, 11 insertions(+) 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 b52722860..cc040e9a2 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 @@ -145,6 +145,12 @@ class DetailChatRoomFragment : MasterFragment() { } }) + listViewModel.scrollToBottomOnMessageReceivedEvent.observe(viewLifecycleOwner, Observer { + it.consume { + scrollToBottom() + } + }) + listViewModel.requestWriteExternalStoragePermissionEvent.observe(viewLifecycleOwner, Observer { it.consume { requestPermissions(arrayOf(android.Manifest.permission.WRITE_EXTERNAL_STORAGE), 1) diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessagesListViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessagesListViewModel.kt index 0951ed904..e7383ea21 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessagesListViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessagesListViewModel.kt @@ -54,6 +54,10 @@ class ChatMessagesListViewModel(private val chatRoom: ChatRoom) : ViewModel() { MutableLiveData>() } + val scrollToBottomOnMessageReceivedEvent: MutableLiveData> by lazy { + MutableLiveData>() + } + private val chatMessageListener: ChatMessageListenerStub = object : ChatMessageListenerStub() { override fun onMsgStateChanged(message: ChatMessage, state: ChatMessage.State) { if (state == ChatMessage.State.Displayed) { @@ -86,6 +90,7 @@ class ChatMessagesListViewModel(private val chatRoom: ChatRoom) : ViewModel() { } } } + scrollToBottomOnMessageReceivedEvent.value = Event(true) } addEvent(eventLog)