Commit graph

526 commits

Author SHA1 Message Date
Jorge Martin Espinosa
f78c80803b
Add some performance metrics for Sentry (#5760)
- Add `AnalyticsService.startTransaction(...)` to start a logging transaction that can be uploaded to Sentry if the user enabled the analytics upload.
- Add `AnalyticsTransaction` wrapper to abstract the Sentry ones.
- Added several helper methods to improve the UX around these transactions.
- Then measure:
  - Time until the first sync, and how it ended.
  - Time until the first rooms are displayed.
  - Time to load a room or a preview.
  - Time to load a timeline.
2025-11-19 11:42:55 +00:00
Benoit Marty
310848ee38
Merge pull request #5722 from element-hq/feature/bma/moduleCleanup
Module cleanup
2025-11-18 16:14:10 +01:00
Benoit Marty
d3339872ff Ensure that disabling (resp. enabling) notification unregisters (resp. registers) the pusher 2025-11-13 17:50:21 +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
573767aca1 Let notifications use avatar fallback.
Extract code which handles Matrix image to its own api / impl / test modules.
2025-11-12 11:28:42 +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
7ad9c8f687 Rename handleEvents to handleEvent 2025-11-07 12:21:43 +01:00
ganfra
bd14e74080
Merge pull request #5668 from element-hq/feature/fga/space_settings
Space : prepare Space Settings screen
2025-11-05 16:18:09 +01:00
Benoit Marty
785ae3c1ad Session database: use the new count API. 2025-11-04 15:30:29 +01:00
Benoit Marty
32b1856dbd
Merge pull request #5669 from element-hq/fix/forward-events-from-pinned-media-timeline
Fix forward events from media viewer from pinned media timeline
2025-11-04 09:52:01 +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
ganfra
7d980d5521
Merge branch 'develop' into feature/fga/space_settings 2025-11-03 15:02:28 +01:00
Jorge Martín
540123a578 Use the new fromPinnedEvents parameter in JoinedRoomLoadedFlowNode through TimelineBindings 2025-11-03 14:44:29 +01:00
Jorge Martín
4df7841452 Create PinnedEventsTimelineProvider, expose it in TimelineBindings 2025-11-03 14:43:18 +01:00
Benoit Marty
2089d49e58 Fix navigation issue. 2025-11-03 13:46:14 +01:00
ganfra
9beed3aeba feature(space) : plumb up space settings screen 2025-10-31 15:01:03 +01:00
ganfra
f86a1c62a5 feature(space) : remove dead code
# Conflicts:
#	appnav/src/main/kotlin/io/element/android/appnav/room/RoomFlowNode.kt
2025-10-31 14:56:14 +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
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
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
Benoit Marty
f75a2cc12c Merge branch 'develop' into feature/bma/mediaForward
# Conflicts:
#	appnav/src/main/kotlin/io/element/android/appnav/room/joined/JoinedRoomLoadedFlowNode.kt
2025-10-29 12:41:58 +01:00
Benoit Marty
bf26a8b93c Rename fun. 2025-10-29 09:04:58 +01:00
Benoit Marty
70cbf3c090 Improve code on ShareNode 2025-10-29 09:03:37 +01:00
Benoit Marty
95c735a90e Add Forward action to MediaDetailsBottomSheet. Closes #5454
Improve API of Callback when forwarding Event.
2025-10-28 18:13:53 +01:00
ganfra
52f48268b1 feature(space): add view members entry 2025-10-28 11:21:10 +01:00
ganfra
81161c4c5a misc(navigation) : fix and add test on JoinedRoomLoadedFlowNode 2025-10-27 13:54:33 +01:00
ganfra
7f04a9fcf7 misc(navigation) : add onDetailsClick on SpaceView 2025-10-27 10:11:57 +01:00
ganfra
6c42250145 misc(navigation) : use JoinedRoomLoadedFlowNode as parent of SpaceFlowNode 2025-10-24 16:26:54 +02:00
Benoit Marty
705b1b08f2 Remove dependency on AppNavigationStateService from DefaultGetCurrentPushProvider 2025-10-23 15:03:04 +02:00
Benoit Marty
263e761907 Remove @Inject, not necessary anymore when class is annotated with @ContributesBinding 2025-10-22 18:52:37 +02:00
Benoit Marty
24fc74caf4 Merge remote-tracking branch 'origin/develop' into bma/brandColorFix 2025-10-22 12:27:00 +02:00
Benoit Marty
07b9a8456b Move SemanticColorsLightDark to compound module 2025-10-22 09:35:55 +02:00
Benoit Marty
49c23a922e Improve API and fix theme glitch when switching between accounts. 2025-10-22 09:32:15 +02:00
ganfra
7849c84bb2 misc: display offline banner directly in LoggedInFlowNode (and fix window insets) 2025-10-21 16:05:20 +02:00
Benoit Marty
f16847a8fc Bug reporter: ensure the log are store in the correct folder. 2025-10-20 16:33:49 +02:00
Benoit Marty
3fb110d991
Merge pull request #5503 from element-hq/feature/bma/immutableCleanup
Do some cleanup on our immutable annotation usage
2025-10-10 17:42:26 +02:00
Benoit Marty
271ae19436 Remove useless Immutable annotation 2025-10-09 18:22:33 +02:00
ganfra
d09841dfb0 fix(image loader): makes sure SingletonImageLoader.setUnsafe is called when we resume 2025-10-09 18:06:55 +02:00
Benoit Marty
77647a3f11 Let MatrixClient exposes val instead of fun for the services. 2025-10-06 15:12:35 +02:00
Benoit Marty
555beb1d37 Improve code. 2025-10-03 12:09:43 +02:00
Benoit Marty
93c273468e Do not expose AnnouncementState in the api module 2025-10-03 11:57:06 +02:00
Benoit Marty
2907f762f6 Announcement for Spaces 2025-10-03 00:15:27 +02:00