From e4c64a2b5b003500fc792fee31bd73e782f6895a Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 14 Sep 2022 15:04:24 +0200 Subject: [PATCH] Fixed crash observed on Samsung Z Fold 2 while forwarding a message to a new chat room --- .../chat/fragments/DetailChatRoomFragment.kt | 63 ++++++++++--------- 1 file changed, 33 insertions(+), 30 deletions(-) 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 10761d406..bad228877 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 @@ -89,6 +89,35 @@ class DetailChatRoomFragment : MasterFragment 0) { + Log.i("[Chat Room] Messages have been displayed, scrolling to first unread") + val notAllMessagesDisplayed = scrollToFirstUnreadMessageOrBottom(false) + if (notAllMessagesDisplayed) { + Log.w("[Chat Room] More unread messages than the screen can display, do not mark chat room as read now, wait for user to scroll to bottom") + } else { + // Consider user as scrolled to the end when marking chat room as read + viewModel.isUserScrollingUp.value = false + Log.i("[Chat Room] Marking chat room as read") + viewModel.chatRoom.markAsRead() + } + } + } else { + Log.e("[Chat Room] Binding not available in onGlobalLayout callback!") + } + } + } + private lateinit var chatScrollListener: ChatScrollListener override fun getLayoutId(): Int { @@ -731,36 +760,7 @@ class DetailChatRoomFragment : MasterFragment 0) { - Log.i("[Chat Room] Messages have been displayed, scrolling to first unread") - val notAllMessagesDisplayed = scrollToFirstUnreadMessageOrBottom(false) - if (notAllMessagesDisplayed) { - Log.w("[Chat Room] More unread messages than the screen can display, do not mark chat room as read now, wait for user to scroll to bottom") - } else { - // Consider user as scrolled to the end when marking chat room as read - viewModel.isUserScrollingUp.value = false - Log.i("[Chat Room] Marking chat room as read") - viewModel.chatRoom.markAsRead() - } - } - } else { - Log.e("[Chat Room] Binding not available in onGlobalLayout callback!") - } - } - } - ) + .addOnGlobalLayoutListener(globalLayoutLayout) } else { Log.e("[Chat Room] Fragment resuming but viewModel lateinit property isn't initialized!") } @@ -771,6 +771,9 @@ class DetailChatRoomFragment : MasterFragment