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 117943efb..6b16a4f3b 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 @@ -1029,9 +1029,12 @@ class DetailChatRoomFragment : MasterFragment 0) { - // Scroll to first unread message if any + val recyclerView = binding.chatMessagesList + + // Scroll to first unread message if any, unless we are already on it val firstUnreadMessagePosition = adapter.getFirstUnreadMessagePosition() - val indexToScrollTo = if (firstUnreadMessagePosition != -1) { + val currentPosition = (recyclerView.layoutManager as LinearLayoutManager).findFirstCompletelyVisibleItemPosition() + val indexToScrollTo = if (firstUnreadMessagePosition != -1 && firstUnreadMessagePosition != currentPosition) { firstUnreadMessagePosition } else { adapter.itemCount - 1 @@ -1039,11 +1042,15 @@ class DetailChatRoomFragment : MasterFragment recyclerView.height } - return firstUnreadMessagePosition == 0 } return false }