Commit Graph

1516 Commits

Author SHA1 Message Date
Jorge Martin Espinosa ac93044f49 Fix ANRs when calculating DB sizes for Sentry (#7017)
* Fix ANRs when calculating DB sizes for Sentry

Instead of using the SDK's `Client.getStoreSizes()` method, manually check the sizes using the file system.

For this, the `SessionPaths` need to be synchronously accessible from a `MatrixClient`. I removed `SessionPathsProvider` too since it's not needed anymore.
2026-06-16 16:49:09 +02:00
Jorge Martin Espinosa 19ee0ae0cd Refactor: replace client-side event filtering for public rooms with SDK (#7025)
* Refactor: replace client-side event filtering for public rooms with an SDK-based one

---------

Co-authored-by: Benoit Marty <benoitm@element.io>
2026-06-16 12:48:11 +00:00
renovate[bot] a3a0fdad32 Update dependency org.matrix.rustcomponents:sdk-android to v26.06.11 (#7014)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.06.11

* Fix broken API changes: add new `ContentScanner` error type.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-06-12 10:08:12 +02:00
Benoit Marty b1b468d6a6 Ensure that the application rotate the QrCode if one day the SDK emits the .Expired error. 2026-06-08 15:29:35 +02:00
Benoit Marty 0bcf8e3a6b Merge pull request #6865 from bxdxnn/feat/myroomnick
Add `/myroomnick` slash command to change your display name in the current room
2026-06-05 14:24:50 +02:00
Jorge Martin Espinosa 1df94a563c Use reverse ordering for FilterEmptyDayPostProcessor (#6927)
It turns out the previous ordering was right: timestamp ordering is ascending, not descending
2026-06-01 15:25:33 +00:00
Jorge Martin Espinosa 1e00353f29 Avoid SQLCipher key derivation (#6774)
* Avoid SQLCipher key derivation by manually providing the generated as a raw key: this needs a series of DB re-key operations, performed as part of a 'dummy' DB migration

* Set key generation length to 32 bytes in `RandomSecretPassphraseProvider`.

* Use `ClientSecret` for handling the keys for SQLCipher. Move `ClientSecret` to `:libraries:androidutils` so it's shared.
2026-05-27 17:25:51 +02:00
ganfra 4cafdae22d Merge pull request #6890 from element-hq/feature/beacon_events_permissions
change(permissions) : allow to change ShareLiveLocation permission
2026-05-27 14:46:33 +02:00
Benoit Marty c94d36d05d Merge branch 'develop' into feature/bma/customMapStyle 2026-05-27 12:16:52 +02:00
renovate[bot] 2e42e78307 Update dependency org.matrix.rustcomponents:sdk-android to v26.05.26 (#6885)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.05.26

* Fix API break

* Fix test compilation

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2026-05-27 12:16:17 +02:00
Benoit Marty f36916e5e7 Fix test compilation 2026-05-27 11:03:45 +02:00
ganfra f37222e2d8 change(permissions) : allow to change ShareLiveLocation permission 2026-05-27 10:55:07 +02:00
Jorge Martin Espinosa d7af6c0d0a Use a raw key for the SDK stores for new sessions (#6835)
* Use a raw key for the SDK stores for new sessions

- Add `ClientSecret` to tell apart the legacy passphrases from the raw keys and centralise parsing/formatting.
- Use the `ClientSecret` to set the passphrase/key in the `SqliteStoreBuilder`.
2026-05-26 19:28:23 +02:00
Benoit Marty 4a90768893 Read map tiler custom style from matrix .well-known file
Closes #6844
2026-05-26 16:14:09 +02:00
Jorge Martin Espinosa 87b3a5d2f0 Add better logs to track token update failures (#6859)
1. Make some logs use `info` log level instead of `debug`, so they appear in most user's bug reports.
2. Make the anonymized tokens even harder to reverse.
3. Detect when the tokens we should be saving match the current ones, as that's an error.
2026-05-26 12:19:26 +02:00
Jorge Martin Espinosa 1e67c2f77b Move empty day separator filtering to a timeline post-processor (#6866)
* Move empty day separator filtering to a timeline post-processor

* Split `FilterPublicMembershipChangesPostProcessor` from `RoomBeginningPostProcessor`
2026-05-26 08:28:32 +00:00
Jorge Martin Espinosa 7b93bfbba9 Use runBlocking for the token refresh logic (#6863)
* Use `runBlocking` for the token refresh logic

The `RustClientSessionDelegate` callbacks always run in a separate thread, so they don't block the main thread.

This ensures the token refresh is fully done (data saved/failed to) before the SDK continues sending the pending previously failed requests
2026-05-26 09:40:07 +02:00
bxdxnn 51aa8208e0 Add /myroomnick slash command 2026-05-26 07:36:57 +00:00
bxdxnn b31dad4b26 Do not show membership/profile events in public rooms (#6360)
* Filter some membership/profile/topic events in public rooms: don't display join and leave membership events in publicly joinable rooms, and hide display name and avatar url changes in non encrypted and publicly joinable rooms.

* Add empty day post-processing to the timeline based on bxdxnn's code, tweaked.

---------

Co-authored-by: Jorge Martín <jorgem@element.io>
2026-05-25 10:31:53 +02:00
renovate[bot] 7e42dd1529 Update dependency org.matrix.rustcomponents:sdk-android to v26.05.20 (#6831)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.05.20

* Fix API breaks:

- Handle new `ClientBuildException.InvalidRawKey` variant.
- `RoomInfo` now has a `fullyReadEventId` .

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-05-21 12:27:29 +02:00
Benoit Marty 1473f5e806 [Link new device] and add tests. 2026-05-19 18:43:48 +02:00
Benoit Marty 33c7c75550 Fix detekt issue 2026-05-19 18:43:47 +02:00
Benoit Marty c59b96de66 [Link new device] Automatically rotate the QR Code 2026-05-19 18:43:45 +02:00
renovate[bot] 2f406eaf41 Update dependency org.matrix.rustcomponents:sdk-android to v26.05.18 (#6805)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.05.18

* Fix breaking API changes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-05-19 09:20:06 +02:00
Hugh Nimmo-Smith 2771ce9442 Merge branch 'qr-other-device-not-signed-in' of https://github.com/hughns/element-x-android into qr-other-device-not-signed-in 2026-05-18 11:53:02 +01:00
Hugh Nimmo-Smith fb17fc7e8a Iterate 2026-05-18 11:52:51 +01:00
Hugh Nimmo-Smith efa61f1d24 Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-18 11:51:23 +01:00
Hugh Nimmo-Smith 458405b29f Iterate 2026-05-18 11:44:47 +01:00
Hugh Nimmo-Smith 668edbc679 Fix scanning code from signed out device when using "Sign in with QR code" 2026-05-18 09:50:54 +01:00
Jenna Vassar cbc677b80d Fix room list duplicate-detection telemetry crashing before it can report (#6791)
* Add room dupe regression tests

* Fix telemetry path for dedupe discovery
2026-05-15 10:43:21 +02:00
Valere Fedronic 9ca0b9e898 Merge pull request #6649 from element-hq/feature/valere/call/decline_timeline_rendering
feat: Update call started timeline item + declined support
2026-05-12 16:32:51 +02:00
Jorge Martin Espinosa 11476c73cf Adapt to new DM definition changes in the SDK (#6748)
* Set `DmRoomDefinition.TwoPeople` in `ClientBuilder`. This applies the 'direct and with at most 2 non-service members' rule to what the SDK should consider a DM.

* Map `RoomInfo.isDm` from the SDK

* Map `NotificationData.isDm` from `NotificationInfo.roomInfo.isDm`

* Remove `RoomIsDmCheck` file as its extension functions are now redundant. Move `Room.isDm` helper function to `BaseRoom`.

* Map `isDm` in `SpaceRoom` from the SDK too

* Replace `isDirect` with `isDm` where possible

* Map `RoomMember.isServiceMember` from the SDK and use it to tell apart normal members of a room from service members (i.e. `RoomMembersState.getDirectRoomMember`)
2026-05-11 17:22:16 +02:00
Valere a478d87fc3 Merge branch 'develop' into feature/valere/call/decline_timeline_rendering 2026-05-11 11:21:02 +02:00
ganfra e49e183178 Feature : share live location (#6741)
* First live location sharing sending implementation

* Simplify logic around canStop sharing

* Add some debug logs around LiveLocationSharingService

* Add LiveLocationException

* Expose beaconId to identify the current share

* Throttle live location instead of debouncing

* Keep sync alive when sharing live location

* Improve LiveLocation sharing

* Show LiveLocationDisclaimer

* Read minDistanceUpdate in LiveLocationSharingService

* Set minDistanceUpdate in AdvancedSettings

* Display banner in room when sharing live location

* Fix tests around LiveLocationSharing

* Ensure shares are properly restarted/stopped when app is re-launched

* Ensure LLS data is cleared when session is removed

* Update and fix LLS tests

* Handle Start LLS in ui

* Add check LLS permissions

* Remove hardcoded strings

* Fix quality and format

* Create DeviceLocationProvider so we can share location data between sources (presenter/live location service)

* Update screenshots

* Fix warning

* Do not try to stop if it was not sharing

* Revert "Create DeviceLocationProvider so we can share location data between sources (presenter/live location service)"

This reverts commit ba12bd968e82941cc231bdbb449310b24c97c5b8.

* Tweak location provider config values

* Address PR review remarks

* Fix ktlint

* Update screenshots

* Fix some tests after merging develop

* Adjust TimelineItemLocationView ui to match figma

* Update screenshots

* Documentation and cleanup

* Remove temporary resource

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: Benoit Marty <benoitm@matrix.org>
2026-05-11 08:19:28 +00:00
Jorge Martín 7e3acc03b9 Fix API breaks 2026-05-07 15:13:51 +02:00
Benoit Marty 2f45ca8835 Merge pull request #6682 from element-hq/feature/bma/customMasScheme
Add a way to tweak MAS url.
2026-05-07 10:51:32 +02:00
Benoit Marty 15162e4e32 Merge pull request #6726 from element-hq/feature/bma/renameVerificationMethod
Rename verification methods
2026-05-06 17:50:11 +02:00
renovate[bot] f4cf704335 Update dependency org.matrix.rustcomponents:sdk-android to v26.05.6 (#6734)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.05.6

* Fix API breaks:

- Add `RoomMember.isServiceMember`.
- Add `beacon` and `beaconInfo` power levels.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-05-06 15:31:52 +02:00
Benoit Marty 51bcaca9db Rename methods around verification, to match SDK naming. 2026-05-05 12:17:51 +02:00
renovate[bot] 54525d855e Update dependency org.matrix.rustcomponents:sdk-android to v26.05.4 (#6718)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.05.4

* Fix `RoomInfo` fixture

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-05-04 10:04:20 +00:00
Valere 18fbe91fc7 Merge branch 'develop' into feature/valere/call/decline_timeline_rendering 2026-05-04 09:00:00 +02:00
Benoit Marty 4d0be69b4c In the module :libraries:matrix.api, change the dependencies to:
- libraries.sessionStorage.api
- projects.libraries.architecture
from `api` to `implementation`.

Modules who need `:libraries:matrix.api` do not necessarily need to use the session storage api.
2026-04-30 09:52:10 +02:00
Benoit Marty c1e908a8e6 Fix tests. 2026-04-29 22:29:41 +02:00
Benoit Marty a76b55e580 Add a way to tweak MAS url. 2026-04-29 22:29:40 +02:00
Valere f0dc4eeace feat: Update call started timeline item + declined support 2026-04-29 15:43:58 +02:00
Hugh Nimmo-Smith 026c448e48 Merge branch 'develop' into hughns/link-new-device-done 2026-04-29 12:06:40 +01:00
Hugh Nimmo-Smith 3b21d698ee Fix tests
Co-Authored-By: Benoit Marty <3940906+bmarty@users.noreply.github.com>
2026-04-29 12:05:16 +01:00
Jorge Martin Espinosa 367995303d Rename OIDC components and variables to OAuth (#6686)
* Rename `OIDC` components and variables to `OAuth`. This matches the new behavior in the SDK.
2026-04-29 11:41:47 +02:00
Hugh Nimmo-Smith 723b7486bc Improve detection of completion for Link new device flow
The SDK emits a Done progress once complete, but our listener might have been deallocated before receiving the done.
2026-04-28 15:19:03 +01:00
renovate[bot] 997227b020 Update dependency org.matrix.rustcomponents:sdk-android to v26.04.27 (#6666)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.04.27

* Fix breaking API changes:

- OIDC components are now prefixed `OAuth`.
- `Room.startLiveLocationShare` now returns the event id of the beacon state event if it succeeds.
- `RoomInfo` now contains an `activeServiceMembersCount` property.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-04-28 14:49:37 +02:00