diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt index 1573b5dbf..485496a12 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt @@ -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() } diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationViewModel.kt index 64f7fcd48..5d33ba86e 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationViewModel.kt @@ -75,6 +75,8 @@ class ConversationViewModel @UiThread constructor() : ViewModel() { val isReplyingToMessage = MutableLiveData() + var scrollingPosition: Int = -1 + val requestKeyboardHidingEvent: MutableLiveData> by lazy { MutableLiveData>() }