Conversation performances improvements

This commit is contained in:
Sylvain Berfini 2024-05-10 16:50:20 +02:00
parent 889b98db1e
commit 655cc8c291
2 changed files with 12 additions and 5 deletions

View file

@ -346,13 +346,16 @@ class ConversationFragment : SlidingPaneChildFragment() {
binding.lifecycleOwner = viewLifecycleOwner
viewModel = ViewModelProvider(this)[ConversationViewModel::class.java]
sendMessageViewModel = ViewModelProvider(this)[SendMessageInConversationViewModel::class.java]
// The following prevents re-computing conversation history
// when going back from a sub-fragment such as media grid or info
if (!::viewModel.isInitialized) {
viewModel = ViewModelProvider(this)[ConversationViewModel::class.java]
}
binding.viewModel = viewModel
binding.sendMessageViewModel = sendMessageViewModel
observeToastEvents(viewModel)
sendMessageViewModel = ViewModelProvider(this)[SendMessageInConversationViewModel::class.java]
binding.sendMessageViewModel = sendMessageViewModel
observeToastEvents(sendMessageViewModel)
binding.setBackClickListener {

View file

@ -333,6 +333,10 @@ class ConversationViewModel @UiThread constructor() : AbstractConversationViewMo
Log.i("$TAG Conversation found and not the same as before, configuring it...")
chatRoom.addListener(chatRoomListener)
configureChatRoom()
} else {
// This is required to have events displayed when fragment is recreated
// due to a rotation or theme switching between light & dark for example
updateEvents.postValue(Event(true))
}
}