Commit graph

1841 commits

Author SHA1 Message Date
Benoit Marty
2d3a7f9745
Merge pull request #5821 from element-hq/feature/bma/fixLongVoiceRecording
Fix long voice recording
2025-12-03 10:27:46 +01:00
ganfra
a23bdfb1d4
Merge pull request #5830 from element-hq/sync-localazy
Sync Strings
2025-12-02 20:58:45 +01:00
Jorge Martin Espinosa
2e2d68ba83
Load JoinedRoom in home screen, pass it to the room flow (#5817)
* Load `JoinedRoom` in `HomeFlowNode.navigateToRoom`, then pass it to the next navigation nodes

* Add delayed loading indicator for cases when loading the room takes too long

* Avoid an extra FFI call in `RustRoomFactory`.

Use `RoomInfo.membership` instead.

Also use `computation` dispatcher, since it should reduce the delay when switching contexts.

* Remove the dispatcher usage when loading the room in `HomeFlowNode`, we immediately call a method that changes the dispatcher used

* Make sure only a single room is opened at a time
2025-12-02 15:22:55 +00:00
bmarty
32d56ea92d Sync Strings from Localazy 2025-12-01 00:23:54 +00:00
Jorge Martín
f265a47243 Make sure we don't finish NotificationTapOpensTimeline until we've actually rendered the timeline event we need to focus on 2025-11-28 14:15:54 +01:00
Jorge Martín
1c576fd42d Add AnalyticsService.cancelLongRunningTransaction and AnalyticsService.finishLongRunningTransaction 2025-11-28 14:15:54 +01:00
Jorge Martín
4b3796844f Add transaction trees for opening a room so we can have a nice trace view 2025-11-28 14:15:54 +01:00
Jorge Martín
10b31e3e72 Add OpenRoom long running analytic transaction 2025-11-28 14:15:54 +01:00
Jorge Martín
e1bd189ba0 Add a performance check for notification tap -> populated timeline time 2025-11-28 14:15:54 +01:00
Benoit Marty
d94e8e7a2c Rename VoiceMessageComposerEvents to VoiceMessageComposerEvent 2025-11-27 09:41:29 +01:00
Benoit Marty
b25b99c890 Add unit test to ensure that number of levels is limited. 2025-11-27 09:30:22 +01:00
Benoit Marty
0fbf156262 Use test extension 2025-11-27 09:02:31 +01:00
Benoit Marty
a344b11eaa Rename test class 2025-11-27 07:16:13 +01:00
Benoit Marty
f3d7b16463 Fix crash when recording long voice message. 2025-11-26 17:14:33 +01:00
ganfra
da57eaadf2
Merge pull request #5809 from element-hq/feature/fga/new_latest_event
misc : use newLatestEvent api from sdk
2025-11-26 12:30:34 +01:00
ganfra
b04524e566 misc : use new_latest_event api (+ some renaming) 2025-11-26 10:58:16 +01:00
Benoit Marty
672a6fe6b0 hasSize(0) -> isEmpty() 2025-11-25 17:03:00 +01:00
ElementBot
703496e059
Sync Strings from Localazy (#5782)
Co-authored-by: jmartinesp <480955+jmartinesp@users.noreply.github.com>
2025-11-20 15:25:19 +00:00
Benoit Marty
f8ce408679 Ensure that htmlConverterProvider is initialized when viewing Pinned events. Fixes #5763 2025-11-19 14:37:19 +01:00
Benoit Marty
310848ee38
Merge pull request #5722 from element-hq/feature/bma/moduleCleanup
Module cleanup
2025-11-18 16:14:10 +01:00
Jorge Martin Espinosa
0cb9d86157
Send read receipts using the current timeline, not the live timeline (#5731)
This fixes sending read receipts in threaded timelines.
2025-11-17 13:33:17 +01:00
Benoit Marty
8285478688 API modules do not need to setup dependency injection.
Move the implementation to the impl modules.
2025-11-12 19:05:39 +01:00
Benoit Marty
30cc45c089 Ensure bottom sheet is collapsed when leaving RTE mode. Closes #5635 2025-11-10 16:59:36 +01:00
Benoit Marty
8149cc06f1 Format - no other change. 2025-11-10 16:59:00 +01:00
Benoit Marty
24c213901e Rename MessageComposerEvents to MessageComposerEvent 2025-11-10 16:29:30 +01:00
Benoit Marty
eb31505dc7 Copyright: Add Element Creations Ltd. copyright 2025-11-10 11:05:05 +01:00
Benoit Marty
f86431e663 Copyright: Add final period 2025-11-10 10:13:41 +01:00
Benoit Marty
c4e0370f41 Copyright: run command uv run license-editor --repository ../element-x-android 2025-11-10 10:09:26 +01:00
Benoit Marty
8769b98862
Merge pull request #5698 from element-hq/feature/bma/handleEvent
Code consistency around view event handling
2025-11-10 09:36:04 +01:00
Benoit Marty
b732ee29a3 Fix compilation issue 2025-11-07 13:35:23 +01:00
Benoit Marty
2d80e9c40d Rename parameter to event for code consistency 2025-11-07 12:28:16 +01:00
Benoit Marty
7ad9c8f687 Rename handleEvents to handleEvent 2025-11-07 12:21:43 +01:00
Benoit Marty
6acd0ed687 Update how eventSink is used in DefaultVoiceMessageComposerPresenter 2025-11-07 12:18:47 +01:00
Skye Elliot
5fe2c86e1d
feat: Convert ComposerAlertMolecule to use alert levels. 2025-11-06 12:44:02 +00:00
Benoit Marty
2b08cb77ee
Merge pull request #5672 from element-hq/feature/bma/handleEvents
Always use the handleEvent(s) function the same way.
2025-11-04 11:20:22 +01:00
Benoit Marty
fdd4e2115c Always use the handleEvent(s) function the same way. 2025-11-03 18:49:00 +01:00
Benoit Marty
44f2b2f6df Code cleanup 2025-11-03 15:53:31 +01:00
Benoit Marty
d08fd79025 Rename MessagesEntryPointNode to MessagesEntryPoint.NodeProxy for consistency. We already have a NodeProxy. 2025-11-03 15:17:27 +01:00
Jorge Martín
753322d50e 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
4df7841452 Create PinnedEventsTimelineProvider, expose it in TimelineBindings 2025-11-03 14:43:18 +01:00
Benoit Marty
07b6148035 Remove context(parentNode: Node) and provide the parent Node as a parameter. 2025-10-31 12:04:57 +01:00
Benoit Marty
6298209ad9 Create Fake classes in test modules 2025-10-30 18:32:31 +01:00
Benoit Marty
fd6493bf4e More renaming 2025-10-30 16:32:54 +01:00
Benoit Marty
f174084942 Use context parameter for the parentNode 2025-10-30 16:32:53 +01:00
Benoit Marty
02dc71c4c3 Remove NodeBuilder to ensure that Params and Callback are always provided. 2025-10-30 16:32:52 +01:00
Benoit Marty
be03c50aaf 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
43972dba68 Rename fun in Callback for clarity. 2025-10-30 16:32:48 +01:00
Jorge Martin Espinosa
353c00e032
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
eb08639776
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
6c3b280ecd
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