Fix another case of read markers not updating: Ensure proper double linking of TimelineChunks #5564
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We need both directions so
getOffsetIndex()
produces correct results inall cases.
Signed-off-by: Tobias Büttner dev@spiritcroc.de
Type of change
Content
Ensure that links in both directions are properly set up, so
getOffsetIndex()
produces correct results.Motivation and context
I was running in a case where the read marker would not properly update to the most recent of my scrolled-to messages. It turned out that the tracker was thinking of a previously read event to be the most recent scrolled-to one, as
LoadTimelineStrategy.getBuiltEventIndex()
was returning a lower index than the others. Turned out that the chunk of that event had not linked nextChunk, even though there were more chunks being displayed. This resulted in a wrong result ofgetOffsetIndex() = 0
.Tests
Scroll around in a room affected by the bug and observe what happens in
TimelineViewModel.observeEventDisplayedActions()
. Close and re-open the room to see if read marker updated.Tested devices
Checklist