Commit Graph

1439 Commits

Author SHA1 Message Date
renovate[bot]
a97d3d4ac3 fix(deps): update dependency net.java.dev.jna:jna to v5.17.0 2025-03-16 13:29:43 +00:00
Jorge Martin Espinosa
96e34cb8ee 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
b91933625c 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
ef185cb5ee change(read receipt): track read receipts for focused timeline 2025-03-07 09:57:29 +01:00
Benoit Marty
93f0598479 Fix test compilation 2025-03-05 21:54:10 +01:00
ganfra
056aa383a1 deps(rust sdk) : update to 25.03.05 and fix the breaking changes 2025-03-05 20:57:37 +01:00
ganfra
f820a210eb Merge pull request #4360 from element-hq/feature/fga/left_room_snackbar
change(left room snackbar) : manage cancel knock and decline invite
2025-03-05 10:19:10 +01:00
ganfra
4ae92bc83e change(left room snackbar) : manage cancel knock and decline invite 2025-03-04 21:52:33 +01:00
ganfra
bc8241f19c Merge pull request #4353 from element-hq/feature/fga/room_preview_invite_state
[Change] Invited state room preview
2025-03-04 16:45:50 +01:00
ganfra
8b933cf10d change(invites) : clean code 2025-03-04 10:51:22 +01:00
ganfra
abb0460bbb change(invites) : add some tests and update some fakes 2025-02-27 21:33:28 +01:00
ganfra
23d3054573 change(create room) : use history visibility "invited" when creating private room 2025-02-27 17:26:10 +01:00
Jorge Martin Espinosa
10557444dd 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
Benoit Marty
ec63866aa4 Merge pull request #4301 from element-hq/feature/bma/preloadAccountURL
Preload account urls
2025-02-26 15:54:20 +01:00
Jorge Martin Espinosa
274d9dc7c1 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
5b07a0acb1 Add tests. 2025-02-25 15:45:06 +01:00
Benoit Marty
bf62c51a97 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]
047e659719 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
18a41bcf24 Add blank lines for code readability. 2025-02-18 17:47:55 +01:00
Benoit Marty
3b8e8dcf7f Remove duplicated line 2025-02-18 17:44:38 +01:00
Benoit Marty
36d5528904 Merge branch 'develop' into feature/valere/support_verification_violation_banner 2025-02-18 15:42:08 +01:00
Benoit Marty
a807141a91 Cleanup code. 2025-02-18 13:42:56 +01:00
Benoit Marty
e35eda0c67 Improve MatrixRoom.createTimeline API. 2025-02-18 12:12:36 +01:00
Benoit Marty
c02436d3f0 Update Matrix Room API and allow media swipe on pinned event only. 2025-02-17 16:45:25 +01:00
Jorge Martín
02addf54dd 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
311fbb84f7 Make MatrixClient return a RoomPreview instance, not a RoomPreviewInfo one. 2025-02-10 19:13:02 +01:00
ganfra
3b0ac5420a feat(room preview) : use room summary joined members count 2025-02-10 19:13:02 +01:00
ganfra
ba07370dfa 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
0fb06a97b8 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
c040cec108 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
fe235de273 code review: renaming, comments, extract common code 2025-02-06 16:27:21 +01:00
Valere
1087b151a3 feature(crypto): verification violation handling and block sending 2025-02-06 16:27:19 +01:00
ganfra
17cab274db dependencies(matrix sdk) : expose ErrorKind 2025-02-06 15:50:46 +01:00
Benoit Marty
1d5e78496c Do not rely on RoomAlias constructor to validate the Room alias, since there is no validation in release mode.
This is fixing the test in release mode.
2025-02-05 18:05:10 +01:00
Benoit Marty
bfcc741312 Display a confirmation dialog before creating a DM. 2025-02-05 09:32:33 +01:00
Benoit Marty
c7a320d148 Create extension SyncService.isOnline() 2025-02-03 20:50:08 +01:00
Benoit Marty
f6f28e6523 Add test on isConnected() 2025-02-03 20:07:55 +01:00
Benoit Marty
0409ed84ed 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
03f5ac9a1c Fix API break 2025-02-03 16:48:15 +01:00
ganfra
c689809b55 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
e6549d725c feat(security&privacy) : improve and document code after PR review. 2025-01-29 14:16:57 +01:00
Benoit Marty
2150eaa504 Merge pull request #4205 from element-hq/feature/bma/mediaNavigation
Add ability to swipe between media when opened from the timeline.
2025-01-29 11:51:06 +01:00
ganfra
3c18c1f06a feat(security&privacy) : clean code 2025-01-28 14:39:27 +01:00
Benoit Marty
c7f035fea5 Merge pull request #4185 from element-hq/feature/bma/cleanupEventType
Remove unused types / code.
2025-01-28 14:03:47 +01:00
Benoit Marty
9b1d0aadbe Add tests on GroupedMediaItems.hasEvent 2025-01-28 12:47:05 +01:00
Benoit Marty
fdf40120a7 Add ability to swipe between media when opened from the timeline. 2025-01-28 09:58:44 +01:00
Benoit Marty
31a7d3f3bb Fix pagination restart issue and cover by unit test. 2025-01-23 17:49:42 +01:00
ganfra
9ee5927489 feat(security&privacy) : expose more methods from sdk 2025-01-23 14:18:17 +01:00
Benoit Marty
3d511db61d Remove unused types / code. 2025-01-23 10:59:18 +01:00
Benoit Marty
9d6994bc99 Fix API break 2025-01-22 15:42:08 +01:00