Scroll to bottom upon chat message reception

This commit is contained in:
Sylvain Berfini 2020-05-26 17:00:12 +02:00
parent fe1fef5209
commit af2105e193
2 changed files with 11 additions and 0 deletions

View file

@ -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)

View file

@ -54,6 +54,10 @@ class ChatMessagesListViewModel(private val chatRoom: ChatRoom) : ViewModel() {
MutableLiveData<Event<Boolean>>()
}
val scrollToBottomOnMessageReceivedEvent: MutableLiveData<Event<Boolean>> by lazy {
MutableLiveData<Event<Boolean>>()
}
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)