* Timeline: add a Jump to Unread button and a new-message badge on the scroll-to-bottom button.
* Rename scrollToFirstUnread to scrollToReadMarker for consistency with isReadMarkerVisible.
* Cache readMarkerUniqueID and unreadMessageCount as stored properties on TimelineState.
* TimelineViewModel: rename newTimelineItems and drop redundant ordering comment.
* Use Compound chevron icons in TimelineScrollButton.
* Fix TimelineScrollButton layout at large dynamic type sizes.
* Add a trailingAccessory slot to topBanners and use it to dodge banners with the jump-to-read-marker button.
* Put jump-to-read-marker behind a developer-options feature flag.
* Fine-tune TimelineScrollButton sizing and badge colour.
* Remove TimelineScrollButton chevron offset that was compensating for SF Symbol centering.
* Drop the new-messages count, replace with a presence dot.
* Move both timeline scroll buttons to bottom-right and revert topBanners trailingAccessory slot.
* Position TimelineScrollButton badge above for up direction and below for down direction.
* Add long-press mark-as-read pill to the timeline scroll buttons
* Read isSwitchingTimelines from state in updateHasNewMessagesAtBottom.
* Use assertionFailure when scrollToReadMarker is called with no read marker.
* Add TimelineScrollButton preview snapshots.
* (fix) design and various self-review issues
* (fix) suppress scroll button tap after long-press
* (feat) fall back to RoomInfo.fullyReadEventID for jump-to-unread
* (fix) hide jump-to-unread immediately after mark-as-read
* (fix) align with newer matrix-rust-sdk surface
* Bump the RustSDK to v26.05.20
---------
Signed-off-by: Daniel Anderson <daniel.anderson@toptal.com>
Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
* Rename PaginationState.timelineEndReached to PaginationState.endReached.
* Rename PaginationState to TimelinePaginationState.
Also renames PaginationStatus to PaginationState so that a TimelinePaginationState consists of the forward and backward pagination states.
* Add the empty state to SpaceScreen.
Only has 1 of the 2 buttons for now.
* implemented grouping
* implemented presenting the thread
* improved the implementation by reusing the presentation action
* add Thread group to DMs to differentiate from non threaded messages of the same DM
* name for a threaded notification in group room
* focus event when tapping on a notification
* pr suggestions
* document
* Adopt new reaction toggling API introduced in matrix-org/matrix-rust-sdk/pull/4127
* Adopt the changes introduced in matrix-org/matrix-rust-sdk/pull/4111: use the new `TimelineUniqueId` type instead of `String` for unique timeline identifiers.
* Bump the RustSDK to v1.0.58.
* Fix unit tests