* Create `:libraries:recentemojis` and move `AddRecentEmoji` and `GetRecentEmojis` there
- Make sure `GetRecentEmojis` won't return duplicate or invalid emojis.
- `ActionListPresenter` now handles merging suggested and recent emojis, not `ActionListView`.
* Separate thread notifications into their own notifications when the feature flag is enabled.
Otherwise, set the `threadId` to null so it'll behave as usual. It's done this way to avoid having to inject `FeatureFlagService` in several places.
* Add permalink navigation to threads from notifications, focusing on the latest event in the list of messages of the notification tapped
* Fix redactions in threads
* Clear notifications for a thread when visiting it
* Fix opening a thread happening twice, first because of the `openThreadId` value, then because of the `focusedEventId` one
* Make opening a room through a notification also focus on the latest event
* Add helper `NotificationCreator.messageTag` function
* Remove unused `ROOM_CALL_NOTIFICATION_ID`: `FOREGROUND_SERVICE_NOTIFICATION_ID`+ `ForegroundServiceType` is used instead
* Simplify `DefaultDeepLinkCreator`
* Make sure the main timeline focuses on the thread root id too when navigating to a thread
* Handle "Mark as read" action for thread notification, using `timeline.markAsRead`
* Log failures to mark rooms as read using the notification action
---------
Co-authored-by: Benoit Marty <benoit@matrix.org>
* Add `Timeline.markAsRead` to avoid reinstantiating the timeline using `Room.markAsRead`
* Mark as read when exiting the room screen, destroy the timeline when fully closed
* Ensure `MarkAsFullyReadAndExit` event can only be processed once
* Fix `DelayedVisibility` not being displayed in previews
* Implement navigation to event inside a thread when a permalink is used
* Fix permalink navigation in threads to rooms
* Fix navigating to a different thread from a permalink in an existing thread
* Fix tests
* Add missing tests for thread navigation
* Reduce number of diff between ThreadedMessagesNode.kt and MessagesNode.kt
* Navigate back to the room when a link to the current room is clicked in a thread.
---------
Co-authored-by: Benoit Marty <benoitm@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
* Use shared recent emoji reactions from account data
- Add `AddRecentEmoji` and `GetRecentEmojis` use cases to avoid injecting the whole `MatrixClient` for just one of these operations.
- Update the UI and logic of the emoji picker and message context menu to include the recent emojis.
- Add `CoroutineDispatchers.Default` with the defaults coroutines to use in the app for ease of use.
* Instead of replacing suggested emojis, concatenate recent ones removing duplicates
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Update metro to v0.6.7
* Replace `@Inject` with `@AssistedInject` where needed
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
* Update dependency org.matrix.rustcomponents:sdk-android to v25.9.25
* Adapt to SDK changes:
`MessageLikeEventType` is now a sealed interface and has a new `data class Other(val v1: String)` case.
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>