Commit Graph

1052 Commits

Author SHA1 Message Date
Benoit Marty dd3a6af3cf Clear SDK cache properly (#4396)
* Use close() instead of destroy, because close() is synchronized.

* Use new method to clear the SDK cache.

* Format file.

* Remove the legacy way to clear the SDK cache.

* Remove unused import

* revert name change
2025-03-20 13:33:59 +00:00
Jorge Martin Espinosa fccd881b1f Update SDK version to 25.03.13 and fix breaking changes (#4406)
Breaking changes addressed:
* Make `MatrixClient.getNotificationSettings()` async, cache its result.
* Use `RoomInfo` for accessing the updated room's info.
* Refactor `MatrixRoom` so it always receives an initial `MatrixRoomInfo` value: this value will be used to make `MatrixRoom.roomInfoFlow` a `StateFlow` so we can assume the initial updated Room data will be present.
* Fetch encryption state when loading a room if it's unknown
2025-03-19 12:52:57 +01:00
renovate[bot] cd5c6c611e fix(deps): update dependency net.java.dev.jna:jna to v5.17.0 2025-03-16 13:29:43 +00:00
Jorge Martin Espinosa fd50ce4daf Add user verification and verification state violation badges (#4392)
* Move `observeRoomMemberIdentityStateChange` and associated classes to `libs:matrixui` module so they can be reused

* Add `EncryptionService.getUserIdentity` method to retrieve not only if the user is verified or not, but in which state they are

* Fix `IdentityChangePresenter` after the previous changes

* Fix `withFakeLifecycleOwner` and add `testWithLifecycleOwner` helper

* Display verified badge in DM top app bar when possible

* Display a verification violation warning icon next to the 'People' item in room details screen

* Display either a verified badge or a verification violation warning icon next to the room members in the room member list screen

* Display either a verified badge or a verification violation warning and withdraw verification button in the room member profile.

Generic user profiles won't display verification state anymore since we can't easily track changes in it.

* Add preview for room member details screen with verification violation identity state

* Add verified and violation badge to the `Profile` list item in room details screen

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-12 12:22:53 +01:00
Jorge Martin Espinosa f73c0e42a4 Implement user verification (#4294)
* Add support for starting verification of a user

* Add support for replying to incoming user verification requests

* Add reset recovery key button and previews to `ChooseSelfVerificationModeView`

* Add 'Profile' item in room details screen

* Update screenshots

* Remove `showDeviceVerifiedScreen` parameter from `NavTarget.UseAnotherDevice`

* Allow exiting the FTUE flow, which will close the app. The previous state will be restored when the app is reopened.

* When outgoing verification fails, move to the `Canceled` state. Then, when resetting the state machine state also reset the verification service.

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-10 11:20:17 +01:00
ganfra 67af88d1f1 change(read receipt): track read receipts for focused timeline 2025-03-07 09:57:29 +01:00
Benoit Marty a1762ba178 Fix test compilation 2025-03-05 21:54:10 +01:00
ganfra 1b6f658eae deps(rust sdk) : update to 25.03.05 and fix the breaking changes 2025-03-05 20:57:37 +01:00
ganfra 18c5bf01d4 change(left room snackbar) : manage cancel knock and decline invite 2025-03-04 21:52:33 +01:00
ganfra 8e68490215 change(create room) : use history visibility "invited" when creating private room 2025-02-27 17:26:10 +01:00
Jorge Martin Espinosa 7aa6a434fb Restore manual Client cleanup on session logout (#4333)
This is done to fix an issue where the Nodes that contain these dependencies are leaked and the `Client` and other SDK-related components can keep working in background for a while, until the caches holding the Nodes are flushed or the app is restarted.
2025-02-27 16:04:28 +00:00
Jorge Martin Espinosa dbb1de146b Upgrade SDK version to 25.02.26 (#4305)
* Upgrade SDK version to 25.02.26

* Remove OIDC URL result from logout, the SDK no longer provides it

* Handle room creation and destruction in a better way

* Remove `onSuccessLogout`
2025-02-26 09:04:49 +00:00
Benoit Marty 86afffb4bc Merge pull request #4274 from element-hq/feature/bma/mediaTimelineImprovment
Update Matrix Room API and allow media swipe on pinned event only.
2025-02-19 09:41:27 +01:00
renovate[bot] beffba11b6 fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25 (#4273)
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25

* Adapt to SDK changes:

- Remove logic related to sliding sync proxy, leaving just the minimum needed to detect its usage on the current session data.
- Remove code associated with the opt-in migration to native sliding sync, since it's now mandatory.
- Remove toggle between proxy/native sliding sync.
- Some fixes to session verification API breaks.

* Update forced logout dialog message, remove `NativeSlidingSyncMigrationBanner`

* Update screenshots

* Update all strings

* Remove `SuccessfulLogoutPendingAction`

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <android@element.io>
2025-02-18 18:07:47 +01:00
Benoit Marty f36e341546 Add blank lines for code readability. 2025-02-18 17:47:55 +01:00
Benoit Marty faed1af4ab Remove duplicated line 2025-02-18 17:44:38 +01:00
Benoit Marty cc9c7b1b03 Merge branch 'develop' into feature/valere/support_verification_violation_banner 2025-02-18 15:42:08 +01:00
Benoit Marty cc11677cd9 Improve MatrixRoom.createTimeline API. 2025-02-18 12:12:36 +01:00
Benoit Marty 2e9a158fb0 Update Matrix Room API and allow media swipe on pinned event only. 2025-02-17 16:45:25 +01:00
Jorge Martín d87cf5c4df Add RoomMembershipDetails to get the room member info for the current user and the sender of its m.room.member state event in the room. 2025-02-10 19:13:02 +01:00
Jorge Martín fa5ee41867 Make MatrixClient return a RoomPreview instance, not a RoomPreviewInfo one. 2025-02-10 19:13:02 +01:00
ganfra a73bcb71d5 feature(room preview): Add option to forget room, improve the room preview screen for banned rooms.
Some internal refactoring was done too:
- Remove RoomInfo.isPublic to only use JoinRule.
- Also take into account restricted access rooms for previews.
2025-02-10 19:13:02 +01:00
ganfra 560290c81a Merge pull request #4234 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-0.x
Update dependency org.matrix.rustcomponents:sdk-android to v0.2.78
2025-02-06 16:40:18 +01:00
Jorge Martin Espinosa 3c87fb05b2 Create SyncOrchestrator (#4176)
* Create `SyncOrchestrator` to centralise the sync start/stop flow through the whole app: the decision is based on several inputs: sync state, network available, app in foreground, app in call, app needing to sync an event for a notification.

* Make network monitor return network connectivity status, not internet connectivity

* Don't stop the `SyncService` when network connection is lost, let it fail instead. This prevents an issue when using the offline mode of the SDK, which made the wrong UI states to be shown when the `SyncState` is `Idle` (that is, after the service being manually stopped).

* Rename `NetworkStatus.Online/Offline` to `Connected/Disconnected` so they're not easily mistaken with internet connectivity instead
2025-02-06 16:36:57 +01:00
Valere 3f1543eb51 code review: renaming, comments, extract common code 2025-02-06 16:27:21 +01:00
Valere 52c57d4d8e feature(crypto): verification violation handling and block sending 2025-02-06 16:27:19 +01:00
ganfra 08235a7a84 dependencies(matrix sdk) : expose ErrorKind 2025-02-06 15:50:46 +01:00
Benoit Marty f84aa03605 Enable Offline mode of the SyncService, so that the sync starts automatically when the network is back.
Also rely on the sync state to render the "Offline" banner.
2025-02-03 18:27:32 +01:00
Benoit Marty cfba424dc6 Fix API break 2025-02-03 16:48:15 +01:00
ganfra 346e3648e8 Merge pull request #4212 from element-hq/feature/fga/room_settings_security_privacy
Feature : room settings - security and privacy
2025-01-29 17:29:56 +01:00
ganfra d992f38fa5 feat(security&privacy) : clean code 2025-01-28 14:39:27 +01:00
Benoit Marty 1776d93a20 Add ability to swipe between media when opened from the timeline. 2025-01-28 09:58:44 +01:00
Benoit Marty da22758ce3 Fix pagination restart issue and cover by unit test. 2025-01-23 17:49:42 +01:00
ganfra 19d49a3c0b feat(security&privacy) : expose more methods from sdk 2025-01-23 14:18:17 +01:00
Benoit Marty 2bebb5ed0a Fix API break 2025-01-22 15:42:08 +01:00
ganfra b7831f44cc feat(security&privacy) : expose methods from sdk to update alias and rename alias to canonicalAlias 2025-01-22 15:13:09 +01:00
ganfra b549400011 feat(security&privacy) : expose new sdk methods 2025-01-21 11:49:56 +01:00
ganfra 7d27e6581b change(tracing) : change how tracing is configured (ui and logic) 2025-01-17 09:52:32 +01:00
ganfra 007555eb56 dependencies(sdk) : update to 0.2.75 2025-01-17 09:40:19 +01:00
ganfra 331f692881 fix(coroutine) : make sure to switch coroutine context as rust sdk is not safe to use on main thread. 2025-01-14 12:30:57 +01:00
Benoit Marty 97f3be3dc5 Apply dual licenses: AGPL + Element Commercial to file headers.
2 replace all actions have been performed:
- "SPDX-License-Identifier: AGPL-3.0-only" to "SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial"
- "Please see LICENSE in the repository root for full details." to "Please see LICENSE files in the repository root for full details."
2025-01-07 10:05:04 +01:00
renovate[bot] 40744b6827 Update dependency net.java.dev.jna:jna to v5.16.0 (#4087)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-23 07:56:32 +00:00
ganfra 96798ac1bf Merge pull request #4076 from element-hq/feature/fga/dispatch_timeline_creations
fix(timeline) : dispatch timeline creations trying to avoid ANRs
2024-12-20 11:50:30 +01:00
ganfra f2bc736c53 fix(timeline) : dispatch timeline creations trying to avoid ANRs 2024-12-20 10:22:41 +01:00
ganfra 7f372282dc knock requests : format and clean 2024-12-18 18:13:13 +01:00
ganfra 1345c4ea0f knock requests : fix breaking api 2024-12-18 18:04:30 +01:00
ganfra 5275a3e5d3 Merge branch 'develop' into feature/fga/knock_requests_sdk 2024-12-18 17:21:16 +01:00
ganfra ae03c4c718 deps(sdk) : update rust sdk to 0.2.72 and fix api breaks 2024-12-18 15:24:04 +01:00
Benoit Marty b12211d130 Fix formatting quality. 2024-12-17 09:23:29 +01:00
ganfra 5715f6054a knock request : expose JoinRule from sdk 2024-12-16 20:23:25 +01:00