From cf7f614296ed6cff4753cb3642bc85d33aae5cfa Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 8 Aug 2023 16:35:12 -0300 Subject: [PATCH] Revert "Use local timestamps for in-chat unread counter." This reverts commit c501a417bb2c8185e3e299ee0b8abd1bbbd005ff. --- .../conversation/v2/ConversationFragment.kt | 2 +- .../conversation/v2/ConversationItemDecorations.kt | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index 57484a85fc..15bb7cfcf4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -830,7 +830,7 @@ class ConversationFragment : .doOnSuccess { state -> adapter.setMessageRequestIsAccepted(state.meta.messageRequestData.isMessageRequestAccepted) SignalLocalMetrics.ConversationOpen.onDataLoaded() - conversationItemDecorations.setFirstUnreadState(state.meta.unreadCount, state.meta.lastSeen) + conversationItemDecorations.setFirstUnreadState(state.meta.lastSeen) colorizer.onGroupMembershipChanged(state.meta.groupMemberAcis) } .observeOn(AndroidSchedulers.mainThread()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationItemDecorations.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationItemDecorations.kt index edfef61e93..a02d780588 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationItemDecorations.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationItemDecorations.kt @@ -94,9 +94,9 @@ class ConversationItemDecorations(hasWallpaper: Boolean = false, private val sch } /** Must be called before first setting of [currentItems] */ - fun setFirstUnreadState(unreadCount: Int, lastSeenTimestamp: Long) { + fun setFirstUnreadState(lastSeenTimestamp: Long) { if (unreadState == UnreadState.None && lastSeenTimestamp > 0) { - unreadState = UnreadState.InitialUnreadState(unreadCount = unreadCount, lastSeenTimestamp = lastSeenTimestamp) + unreadState = UnreadState.InitialUnreadState(lastSeenTimestamp = lastSeenTimestamp) } } @@ -114,12 +114,11 @@ class ConversationItemDecorations(hasWallpaper: Boolean = false, private val sch if (state is UnreadState.InitialUnreadState) { val firstUnread = items .filterIsInstance() - .takeWhile { it.timestamp() > state.lastSeenTimestamp } - .lastOrNull() + .lastOrNull { it.timestamp() > state.lastSeenTimestamp } if (firstUnread != null) { unreadState = UnreadState.CompleteUnreadState( - unreadCount = state.unreadCount, + unreadCount = items.indexOf(firstUnread as ConversationElement?) + 1, firstUnreadTimestamp = firstUnread.timestamp() ) } @@ -205,7 +204,7 @@ class ConversationItemDecorations(hasWallpaper: Boolean = false, private val sch return if (scheduleMessageMode) { (conversationMessage.messageRecord as MediaMmsMessageRecord).scheduledDate } else { - conversationMessage.messageRecord.dateReceived + conversationMessage.conversationTimestamp } } @@ -276,7 +275,7 @@ class ConversationItemDecorations(hasWallpaper: Boolean = false, private val sch object None : UnreadState() /** On first load of data, there is at least 1 unread message but we don't know the 'position' in the list yet */ - data class InitialUnreadState(val unreadCount: Int, val lastSeenTimestamp: Long) : UnreadState() + data class InitialUnreadState(val lastSeenTimestamp: Long) : UnreadState() /** We have at least one unread and know the timestamp of the first unread message and thus 'position' for the header */ data class CompleteUnreadState(val unreadCount: Int, val firstUnreadTimestamp: Long? = null) : UnreadState()