diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineStateProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineStateProvider.kt index e30eb1be97..08ddf56c8c 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineStateProvider.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineStateProvider.kt @@ -23,7 +23,6 @@ import io.element.android.features.messages.impl.timeline.model.anAggregatedReac import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEventContent import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemStateEventContent import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemTextContent -import io.element.android.features.messages.impl.timeline.model.virtual.TimelineItemReadMarkerModel import io.element.android.features.messages.impl.timeline.model.virtual.aTimelineItemDaySeparatorModel import io.element.android.features.messages.impl.typing.TypingNotificationState import io.element.android.features.messages.impl.typing.aTypingNotificationState @@ -90,13 +89,6 @@ fun aTimelineState( ) } -internal fun aTimelineItemReadMarker(): TimelineItem.Virtual { - return TimelineItem.Virtual( - id = UniqueId(UUID.randomUUID().toString()), - model = TimelineItemReadMarkerModel, - ) -} - internal fun aTimelineItemList(content: TimelineItemEventContent): ImmutableList { return persistentListOf( // 3 items (First Middle Last) with isMine = false diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt index cef9af5dd5..51bd67a382 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt @@ -546,12 +546,11 @@ private fun TimelineViewWithReadMarker( unreadMessagesCount: Int, newMessagesCount: Int, ) { - val readMarker = aTimelineItemReadMarker() val timelineItems = persistentListOf( aTimelineItemEvent(isMine = false), aTimelineItemEvent(isMine = false), aTimelineItemEvent(isMine = true), - readMarker, + aTimelineItemEvent(isMine = false), aTimelineItemEvent(isMine = false), aTimelineItemEvent(isMine = false), ) @@ -561,7 +560,10 @@ private fun TimelineViewWithReadMarker( TimelineView( state = aTimelineState( timelineItems = timelineItems, - readMarkerIndex = timelineItems.indexOf(readMarker), + // Index points past the loaded items, mirroring the real-world state the FAB + // represents: the user has scrolled past the read marker, so it's no longer in + // view. The actual scroll target doesn't matter for a static preview. + readMarkerIndex = timelineItems.size, unreadMessagesCount = unreadMessagesCount, newMessagesCount = newMessagesCount, ), @@ -590,7 +592,7 @@ internal fun TimelineViewWithReadMarkerNoBadgesPreview() = ElementPreview { @PreviewsDayNight @Composable internal fun TimelineViewWithReadMarkerPreview() = ElementPreview { - TimelineViewWithReadMarker(unreadMessagesCount = 3, newMessagesCount = 12) + TimelineViewWithReadMarker(unreadMessagesCount = 3, newMessagesCount = 0) } @PreviewsDayNight