From 29362fab4b778a55ca3ecb61deaa252b5c9a2d56 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Fri, 3 Jan 2025 10:50:18 +0100 Subject: [PATCH] add logging for unread messages popup bug Signed-off-by: Marcel Hibbe --- .../com/nextcloud/talk/chat/ChatActivity.kt | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt index 9378ab457..5f3dbbd32 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt @@ -1042,8 +1042,10 @@ class ChatActivity : is ChatViewModel.OutOfOfficeUIState.Error -> { Log.e(TAG, "Error fetching/ no user absence data", uiState.exception) } + ChatViewModel.OutOfOfficeUIState.None -> { } + is ChatViewModel.OutOfOfficeUIState.Success -> { binding.outOfOfficeContainer.visibility = View.VISIBLE @@ -2922,7 +2924,23 @@ class ChatActivity : } } - private fun isScrolledToBottom() = layoutManager?.findFirstVisibleItemPosition() == 0 + private fun isScrolledToBottom(): Boolean { + val position = layoutManager?.findFirstVisibleItemPosition() + Log.d(TAG, "first visible item position is :" + position) + + if (position == -1) { + Log.d(TAG, "position is -1") + } else if (position != null) { + val item = adapter?.items?.get(position)?.item + if (item is ChatMessage) { + Log.d(TAG, "first visible item message is :" + item.message) + } else if (item is Date) { + Log.d(TAG, "first visible item time is :" + item.time) + } + } + + return layoutManager?.findFirstVisibleItemPosition() == 0 + } private fun setUnreadMessageMarker(chatMessageList: List) { if (chatMessageList.isNotEmpty()) { @@ -3272,7 +3290,7 @@ class ChatActivity : private fun isInfoMessageAboutDeletion(currentMessage: MutableMap.MutableEntry): Boolean = currentMessage.value.parentMessageId != null && currentMessage.value.systemMessageType == ChatMessage - .SystemMessageType.MESSAGE_DELETED + .SystemMessageType.MESSAGE_DELETED private fun isReactionsMessage(currentMessage: MutableMap.MutableEntry): Boolean = currentMessage.value.systemMessageType == ChatMessage.SystemMessageType.REACTION || @@ -3282,7 +3300,7 @@ class ChatActivity : private fun isEditMessage(currentMessage: MutableMap.MutableEntry): Boolean = currentMessage.value.parentMessageId != null && currentMessage.value.systemMessageType == ChatMessage - .SystemMessageType.MESSAGE_EDITED + .SystemMessageType.MESSAGE_EDITED private fun isPollVotedMessage(currentMessage: MutableMap.MutableEntry): Boolean = currentMessage.value.systemMessageType == ChatMessage.SystemMessageType.POLL_VOTED @@ -3592,7 +3610,7 @@ class ChatActivity : val lon = data["longitude"]!! metaData = "{\"type\":\"geo-location\",\"id\":\"geo:$lat,$lon\",\"latitude\":\"$lat\"," + - "\"longitude\":\"$lon\",\"name\":\"$name\"}" + "\"longitude\":\"$lon\",\"name\":\"$name\"}" } shareToNotes(shareUri, roomToken, message, objectId, metaData)