Keep scroll position in conversation when going back after leaving

This commit is contained in:
Sylvain Berfini 2023-11-04 11:25:57 +01:00
parent ad1625dbb3
commit 1723525077
2 changed files with 9 additions and 0 deletions

View file

@ -283,11 +283,18 @@ class ConversationFragment : GenericFragment() {
val id = LinphoneUtils.getChatRoomId(args.localSipUri, args.remoteSipUri)
Log.i("$TAG Asking notifications manager not to notify chat messages for chat room [$id]")
coreContext.notificationsManager.setCurrentlyDisplayedChatRoomId(id)
if (viewModel.scrollingPosition != -1) {
binding.eventsList.scrollToPosition(viewModel.scrollingPosition)
}
}
override fun onPause() {
coreContext.notificationsManager.resetCurrentlyDisplayedChatRoomId()
val layoutManager = binding.eventsList.layoutManager as LinearLayoutManager
viewModel.scrollingPosition = layoutManager.findFirstVisibleItemPosition()
super.onPause()
}

View file

@ -75,6 +75,8 @@ class ConversationViewModel @UiThread constructor() : ViewModel() {
val isReplyingToMessage = MutableLiveData<String>()
var scrollingPosition: Int = -1
val requestKeyboardHidingEvent: MutableLiveData<Event<Boolean>> by lazy {
MutableLiveData<Event<Boolean>>()
}