Commit graph

1822 commits

Author SHA1 Message Date
Jorge Martín
7421e6545c Pass around fromPinnedEvents so we can use it to decide whether to forward the event from the main timeline or the pinned events one 2025-11-03 14:43:57 +01:00
Jorge Martín
d373cbe8a7 Create PinnedEventsTimelineProvider, expose it in TimelineBindings 2025-11-03 14:43:18 +01:00
Benoit Marty
e70d767183 Remove context(parentNode: Node) and provide the parent Node as a parameter. 2025-10-31 12:04:57 +01:00
Benoit Marty
187479849d Create Fake classes in test modules 2025-10-30 18:32:31 +01:00
Benoit Marty
0303ac502a More renaming 2025-10-30 16:32:54 +01:00
Benoit Marty
05c5f3c914 Use context parameter for the parentNode 2025-10-30 16:32:53 +01:00
Benoit Marty
566515ca88 Remove NodeBuilder to ensure that Params and Callback are always provided. 2025-10-30 16:32:52 +01:00
Benoit Marty
5197154f54 Ensure a Callback and only one is provided in the Plugin. Also reduce boilerplate code in Nodes. 2025-10-30 16:32:51 +01:00
Benoit Marty
09a18ad7ca Rename fun in Callback for clarity. 2025-10-30 16:32:48 +01:00
Jorge Martin Espinosa
45b5783b23 Display only valid emojis in recent emoji list (#5612)
* 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`.
2025-10-30 15:27:51 +00:00
Jorge Martin Espinosa
7facc40771 Split notifications for messages in threads (#5595)
* 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>
2025-10-30 15:15:00 +00:00
Jorge Martin Espinosa
1f5f6896c6 Fix marking a room as read re-instantiates its timeline (#5628)
* 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
2025-10-30 08:39:06 +01:00
Benoit Marty
725e6c9855 Rename fun. 2025-10-29 09:04:58 +01:00
Benoit Marty
21bae4aee2 Add Forward action to MediaDetailsBottomSheet. Closes #5454
Improve API of Callback when forwarding Event.
2025-10-28 18:13:53 +01:00
Benoit Marty
e9cfce915a Extract code for forwarding Event to its own modules. 2025-10-28 15:42:39 +01:00
ElementBot
b2aa6b1622 Sync Strings from Localazy (#5610)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-10-27 13:53:07 +01:00
Benoit Marty
826cacf209 Remove @Inject, not necessary anymore when class is annotated with @ContributesBinding 2025-10-22 18:52:37 +02:00
Benoit Marty
acdef75949 Merge remote-tracking branch 'origin/develop' into bma/brandColorFix 2025-10-22 12:27:00 +02:00
Benoit Marty
9af694b4a2 Use right colors on ForcedDarkElementTheme 2025-10-22 09:48:07 +02:00
ganfra
68daf8d2cf misc: display offline banner directly in LoggedInFlowNode (and fix window insets) 2025-10-21 16:05:20 +02:00
Jorge Martin Espinosa
cbeb58f00e Keep the cursor position in room list search when going back (#5570)
Also, make sure disposing a `MessagesView` doesn't accidentally hide the keyboard once the transition animation is done
2025-10-21 11:25:46 +02:00
ElementBot
5f6a93cd1a Sync Strings (#5562)
* Sync Strings from Localazy

* Sync strings again

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-10-20 10:04:46 +00:00
Benoit Marty
370300f810 Remove custom color for enterprise build. 2025-10-15 14:10:42 +02:00
Benoit Marty
8b703ed046 Let the enterprise build be able to update the colors. 2025-10-15 11:25:58 +02:00
ElementBot
57e8b47683 Sync Strings from Localazy (#5515)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-10-13 08:01:58 +02:00
renovate[bot]
84774cdc90 fix(deps): update wysiwyg to v2.40.0 (#5400)
* fix(deps): update wysiwyg to v2.40.0

* Fix API mismatches

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-10-10 21:55:28 +02:00
Benoit Marty
e57bf354c3 Remove unused import 2025-10-10 10:48:29 +02:00
Benoit Marty
2b21e12f97 Only timestamp is usefull, no need to build a Date. 2025-10-10 10:02:47 +02:00
Benoit Marty
d932e068d4 Make AggregatedReactionSender stable 2025-10-09 18:22:39 +02:00
Benoit Marty
47e664e5d1 Make TimelineRoomInfo stable 2025-10-09 18:22:37 +02:00
Benoit Marty
e6cd8d5fb5 Remove useless Immutable annotation 2025-10-09 18:22:33 +02:00
Benoit Marty
1e6f873477 Make EmojiPickerState stable 2025-10-09 18:22:21 +02:00
Benoit Marty
f9ba0819f2 Add Konsist test on Immutable annotation 2025-10-09 15:36:06 +02:00
Benoit Marty
7ce2c08f6e Merge pull request #5490 from element-hq/feature/bma/improveImmutables
Ensure that we are using Immutable instead of Persistent
2025-10-09 11:48:32 +02:00
Benoit Marty
da78386d25 Add Konsist test to check that toPersistentList() is not used.
Same for `toPersistentSet()` and `toPersistentMap()`.
Fix existing issues.
2025-10-08 15:51:18 +02:00
Benoit Marty
764952468c Remove dead code. 2025-10-08 14:04:32 +02:00
bmarty
03ae925f2a Sync Strings from Localazy 2025-10-08 10:23:22 +00:00
Benoit Marty
67c6a1bd5f Let MatrixClient exposes val instead of fun for the services. 2025-10-06 15:12:35 +02:00
ElementBot
a9912e4a1e Sync Strings from Localazy (#5460)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-10-06 12:38:51 +02:00
Benoit Marty
0f94ebc56e We do not need CurrentSessionIdHolder anymore.
The SessionId can be provided by SessionMatrixModule and injected in constructors directly.
2025-10-01 17:57:13 +02:00
Jorge Martin Espinosa
80e869c93e Follow permalinks to and from threads (#5414)
* 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>
2025-09-30 09:18:13 +00:00
ElementBot
c6d4a367d3 Sync Strings from Localazy (#5427)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-09-29 15:10:21 +00:00
Jorge Martin Espinosa
f1cd80ede8 Use shared recent emoji reactions from account data (#5402)
* 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>
2025-09-26 11:04:34 +00:00
renovate[bot]
4dc65d9c08 Update dependency app.cash.molecule:molecule-runtime to v2.2.0 (#5413)
* Update dependency app.cash.molecule:molecule-runtime to v2.2.0

* Fix compilation warnings

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-09-26 11:21:35 +02:00
renovate[bot]
c1cd259ce7 Update metro to v0.6.7 (#5416)
* 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>
2025-09-26 08:16:36 +00:00
renovate[bot]
644c8284e4 Update dependency org.matrix.rustcomponents:sdk-android to v25.9.25 (#5412)
* 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>
2025-09-25 14:33:15 +00:00
Benoit Marty
13706a4dc0 Merge pull request #5401 from element-hq/feature/bma/messagesViewTopBars
Rework on messages view top bars
2025-09-24 14:15:22 +02:00
Jorge Martin Espinosa
e6b7ab8204 Ensure the thread summary sender display name won't wrap to the next line (#5403) 2025-09-24 10:16:42 +02:00
Benoit Marty
e5cc4938ad More cleanup 2025-09-23 21:56:03 +02:00
Benoit Marty
f1a9a2200b More cleanup 2025-09-23 21:51:26 +02:00