Commit Graph

1325 Commits

Author SHA1 Message Date
Jorge Martín
7e3acd6b58 Add Sentry transaction so we can check how long it takes to vacuum and if there were any errors when doing it 2025-12-10 15:22:16 +01:00
Jorge Martín
09cab10abc Fix dependency injection 2025-12-10 15:22:16 +01:00
Jorge Martín
d78e28be5e Make sure we schedule the vacuum task only if there isn't an existing one 2025-12-10 15:22:16 +01:00
Jorge Martín
482d7e0648 Add a periodic DB vacuuming task 2025-12-10 15:22:16 +01:00
Jorge Martín
9c72310cb4 Add developer option to optimize the SDK DBs 2025-12-10 15:22:16 +01:00
Benoit Marty
4cfd8907dd Merge pull request #5852 from element-hq/renovate/io.nlopez.compose.rules-detekt-0.x
fix(deps): update dependency io.nlopez.compose.rules:detekt to v0.5.1
2025-12-08 15:05:12 +01:00
Benoit Marty
ad366c63ec Merge pull request #5855 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-25.x
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.12.4
2025-12-08 14:24:24 +01:00
Jorge Martín
f745f2ca1e Add SessionRestorationException, make sure ClientException can expose it through the cause property 2025-12-05 17:42:57 +01:00
Benoit Marty
096b8768ea Fix warning "Throwable should be first argument" 2025-12-05 09:48:26 +01:00
Benoit Marty
72b3decf4c Detekt: enable rule exceptions.SwallowedException and fix existing issue. 2025-12-05 09:45:23 +01:00
Jorge Martín
5d88a04ab0 Add missing abstractions and fakes 2025-12-04 18:02:59 +01:00
Jorge Martín
e814906ba1 Restore disabled tests with FFI fakes 2025-12-04 16:55:22 +01:00
ganfra
07d02fd076 Merge branch 'develop' into feature/fga/space_invite_notification 2025-12-04 15:53:49 +01:00
ganfra
a27e31b01b change(notification): handle invite notification for spaces 2025-12-04 12:25:30 +01:00
Jorge Martín
739f12d603 Replace AnalyticsSdkSpanFactory with AnalyticsSdkManager.
`AnalyticsSdkManager` also enables and disables Sentry logging in the SDK based on analytics user content.
2025-12-04 12:17:52 +01:00
Jorge Martín
11f41629c1 Allow bridging Sentry spans to the SDK ones.
Add distributed tracing for `Room.timelineWithConfiguration`, so we can inspect the associated Rust trace.
2025-12-04 12:17:52 +01:00
Jorge Martín
53ab38d990 Enable Sentry in the SDK: add SDK Sentry DSN value
This is provided to the SDK in `PlatformInitializer`.
2025-12-04 12:17:52 +01:00
Jorge Martin Espinosa
33694f0ff0 Upgrade the Rust SDK to v25.12.2 (#5838)
* Upgrade the Rust SDK to `v25.12.2`
2025-12-02 17:12:56 +00:00
Jorge Martin Espinosa
77be19bf3b 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
Jorge Martín
29117ce93d Add AnalyticsService.cancelLongRunningTransaction and AnalyticsService.finishLongRunningTransaction 2025-11-28 14:15:54 +01:00
Jorge Martín
93feed38bf 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
766c23721e Have long running analytic transactions return actual transactions.
Also add `AnalyticsService.getLongRunningTransaction` and change `AnalyticsService.stopLongRunningTransaction` to `removeLongRunningTransaction`.
2025-11-28 14:15:54 +01:00
Benoit Marty
74b04f47ed Room list: enable latest event sorter. 2025-11-27 14:55:19 +01:00
ganfra
c432a3080e deps: fix api break 2025-11-26 17:03:27 +01:00
ganfra
ca526580fd misc : use new_latest_event api (+ some renaming) 2025-11-26 10:58:16 +01:00
ganfra
8a599a1e51 deps(sdk) : add fallbackToServer on userIdentity api. 2025-11-24 20:22:11 +01:00
ganfra
f4f129f420 Merge branch 'develop' into renovate/org.matrix.rustcomponents-sdk-android-25.x 2025-11-19 13:10:18 +01:00
ganfra
f5d450e68b deps(sdk): fix api usages 2025-11-19 13:07:59 +01:00
Jorge Martin Espinosa
c6c2f4a267 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
d8cacba43a Improve API: use RoomId instead of String. 2025-11-19 10:14:03 +01:00
Benoit Marty
b54b077125 Merge pull request #5755 from element-hq/feature/bma/cleanupDb
Remove unused `slidingSyncProxy` from DB.
2025-11-18 17:42:09 +01:00
Benoit Marty
7cbc616bef Remove unused import. 2025-11-18 16:42:34 +01:00
Benoit Marty
de2ab5a557 Merge pull request #5722 from element-hq/feature/bma/moduleCleanup
Module cleanup
2025-11-18 16:14:10 +01:00
Benoit Marty
5728452e68 Remove unused slidingSyncProxy from DB. 2025-11-18 15:58:22 +01:00
Jorge Martin Espinosa
5a5c0b16ca Revert "Stop overriding the homeserver when restoring a Client (#5753)" (#5754)
This reverts commit a0a3a30aa3.
2025-11-18 15:16:34 +01:00
Jorge Martin Espinosa
a0a3a30aa3 Stop overriding the homeserver when restoring a Client (#5753)
This isn't necessary and overrides the existing data previously saved by the SDK, resulting in losing data such as the `Client::server` (the discovery server URL).

In turn, this caused the app to be unable to refresh the server info in some homeservers.
2025-11-18 11:48:42 +01:00
Jorge Martin Espinosa
2b5c94cf9a Add media retention policy (#5749)
* Add media retention policy.

Add `ByteSize` class to help with conversions between byte units.

* Use bit shifting instead of multiplication

Improve the tests too
2025-11-18 07:53:45 +00:00
Benoit Marty
42e91a3395 @Inject is not necessary here. 2025-11-17 21:35:56 +01:00
ganfra
24851f2e32 change(room members): address PR reviews 2025-11-14 12:27:45 +01:00
ganfra
3086d1e8e3 quality : format code 2025-11-13 16:00:07 +01:00
ganfra
fbb906fd64 Merge branch 'develop' into feature/fga/members_improvements 2025-11-13 14:30:29 +01:00
Benoit Marty
b3ec256dfa API modules do not need to setup dependency injection.
Move the implementation to the impl modules.
2025-11-12 19:05:39 +01:00
ganfra
a3c81d5f25 change(room members): makes sure to subscribe to timeline items changes 2025-11-12 17:53:52 +01:00
renovate[bot]
dda1ef7df8 Update dependency org.matrix.rustcomponents:sdk-android to v25.11.11 (#5716)
* Update dependency org.matrix.rustcomponents:sdk-android to v25.11.11

* Fix API breaks:
  - `Client.loginWithQrCode` is now `Client.newLoginWithQrCodeHandler`.
  - Rust's `OtherState` can now have `RoomCreate` and `RoomHistoryVisibility` values.
  - Fix fixtures

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-11-11 15:29:37 +00:00
SpiritCroc
4074556b6f Fix rendering notifications if event ID is duplicated (#5711) 2025-11-10 21:54:09 +01:00
Benoit Marty
1292da2a72 Copyright: Add Element Creations Ltd. copyright 2025-11-10 11:05:05 +01:00
Benoit Marty
b748fcc631 Copyright: Add final period 2025-11-10 10:13:41 +01:00
Benoit Marty
0a0224b586 Copyright: run command uv run license-editor --repository ../element-x-android 2025-11-10 10:09:26 +01:00
Benoit Marty
3e567d9b5a Merge pull request #5692 from element-hq/feature/bma/loginFlow
Improve account provider selection during the login flow
2025-11-07 16:48:03 +01:00
Benoit Marty
3e60c71701 Use isNull() 2025-11-07 11:05:13 +01:00