Commit Graph

1489 Commits

Author SHA1 Message Date
Jorge Martín b38b5a924f Remove Room.clearEventCacheStorage since it's not supported by the SDK anymore 2026-06-24 13:29:28 +02:00
Jorge Martín 3586824a0d Remove UserCertificatesProvider:
`rustls-platform-verifier` automatically checks the user certs too, so there's no need to provide them separately.

This should also improve start times since we don't need to load the user certs when starting the app, which was a really slow operation.
2026-06-24 13:29:28 +02:00
Benoit Marty c430877d87 Ensure Robolectric test are run using API 36 until the library support API 37. 2026-06-18 12:18:32 +02:00
Benoit Marty 355894cc74 Merge pull request #6944 from element-hq/feature/custom-recovery-key-wellknown
Add well-known parsing and extension seam for custom recovery passphrase
2026-06-17 13:58:22 +02:00
Benoit Marty 568e137cd4 Merge branch 'develop' into feature/bma/multipleForward 2026-06-17 10:31:44 +02:00
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 66c7c35785 Ensure event is sent only once per room. 2026-06-11 16:47:25 +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
Jenna Vassar 0cb9d2911d Allow enableRecovery to derive the key from a passphrase
enableRecovery now takes an optional passphrase and returns the recovery
key as the suspend result (like resetRecoveryKey), avoiding the
flow/return-value race. For the passphrase path the SDK-derived base58
key is kept out of the session-scoped progress flow so it is never
surfaced to the user; the caller receives it as the return value and is
responsible for scrubbing it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 13:52:08 -07: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 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