Skip to content

Commit 99aa949

Browse files
authored
Update read marker when we go back in live (#8306)
1 parent 7f42eb3 commit 99aa949

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1325,13 +1325,17 @@ class TimelineViewModel @AssistedInject constructor(
13251325
computeUnreadState(timelineEvents, roomSummary)
13261326
}
13271327
// We don't want live update of unread so we skip when we already had a HasUnread or HasNoUnread
1328-
// However, we want to update an existing HasUnread, if the readMarkerId hasn't changed,
1328+
// However, we want to update an existing HasUnread, if the readMarkerId hasn't changed or when we go back in live,
13291329
// as we might be loading new events to fill gaps in the timeline.
13301330
.distinctUntilChanged { previous, current ->
13311331
when {
13321332
previous is UnreadState.Unknown || previous is UnreadState.ReadMarkerNotLoaded -> false
13331333
previous is UnreadState.HasUnread && current is UnreadState.HasUnread &&
13341334
previous.readMarkerId == current.readMarkerId -> false
1335+
previous is UnreadState.HasUnread && (
1336+
current is UnreadState.HasUnread && previous.firstUnreadEventId != current.firstUnreadEventId ||
1337+
current is UnreadState.HasNoUnread
1338+
) && timeline?.isLive.orFalse() -> false
13351339
current is UnreadState.HasUnread || current is UnreadState.HasNoUnread -> true
13361340
else -> false
13371341
}

0 commit comments

Comments
 (0)