Commit graph

536 commits

Author SHA1 Message Date
Benoit Marty
3bff64b92a
Add kick (remove) confirmation and reason (#4507)
* Add confirmation dialog when kicking someone, ith ability to provide a reason.

Also add the reason for banning people.

* Fix padding issue in dialogs.

* Improve TextField in dialog.

* Update screenshots

* Fix tests

* Format and import

* Add missing UI tests.

* Use `needsConfirmation` as it's already used in the code base.

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-01 11:38:46 +02:00
ganfra
97bd7b7479
Change (mention span) : rework and add more cases (#4476)
* change(mention span) : improve truncation logic

* change(mention span) : fix theme switching

* change(mention span) : start to pillify permalinks

* change(mention span) : use permalink directly

* change(mention span) : start improving mention type

* change(mention span) : use the appropriate MentionSpanProvider methods

* change(mention span) : introduce MentionSpanFormatter

* change(mention span) : introduce MentionSpanUpdater

* change(mention span) : Improve RoomNameCaches

* change(mention span) : remove useless param on HtmlConverterProvider

* change(mention span) : fix some remaining issues on the composer

* change(mention span) : remove pillifiedBody

* change(mention span) : fix some issues with pillification

* change(mention span) : fix getMentionsSpans

* change(mention span) : make sure all tests passes

* change(mention span) : remove the coroutine from the caches and a MentionSpanFormatterTest

* change(mention span) : add more tests on pillification

* change(mention span) : clean up

* Update screenshots

* change(mention span) : remove unexpected print

* change(mention span) : remove default values in constructor of TimelineTextBasedContent classes

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-28 11:20:32 +01:00
renovate[bot]
3597774dd2
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.3.24 (#4394)
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.3.24

* Fix SDK changes related to:
    - OIDC authentication.
    - Element Call widget URL generation.
    - Forced trace logging in the SDK.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-03-24 17:07:44 +01:00
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
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
9130f4acf5 change(invites) : clean code 2025-03-04 10:51:22 +01:00
ganfra
c4249bc589 change(invites) : add some tests and update some fakes 2025-02-27 21:33:28 +01:00
Benoit Marty
d746f59352
Merge pull request #4301 from element-hq/feature/bma/preloadAccountURL
Preload account urls
2025-02-26 15:54:20 +01: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
941dfa7d38 Add tests. 2025-02-25 15:45:06 +01: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
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
94be4d7060 feat(room preview) : use room summary joined members count 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
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
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
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
Benoit Marty
81d818041e Add tests on GroupedMediaItems.hasEvent 2025-01-28 12:47:05 +01:00
Benoit Marty
1776d93a20 Add ability to swipe between media when opened from the timeline. 2025-01-28 09:58:44 +01:00
ganfra
19d49a3c0b feat(security&privacy) : expose more methods from sdk 2025-01-23 14:18:17 +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
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
ganfra
7f372282dc knock requests : format and clean 2024-12-18 18:13:13 +01:00
ganfra
5275a3e5d3 Merge branch 'develop' into feature/fga/knock_requests_sdk 2024-12-18 17:21:16 +01:00
ganfra
e1f6c07ecd knock requests : add tests to the feature 2024-12-17 15:36:30 +01:00
ganfra
5715f6054a knock request : expose JoinRule from sdk 2024-12-16 20:23:25 +01:00
ganfra
dfb5362394 knock requests : branch the api in presenters 2024-12-13 20:00:00 +01:00
Benoit Marty
4f1c745fc8 Add a way to clear the cache for a specific room. 2024-12-12 11:58:46 +01:00
ganfra
e9a1c30462 knock requests : expose api through Room 2024-12-11 17:50:44 +01:00
Benoit Marty
6386645e0b Remove extra space. 2024-12-10 09:24:45 +01:00
Benoit Marty
3e1b1c29d1 Media Gallery 2024-12-09 16:48:48 +01:00
ganfra
0261739fff Merge branch 'develop' into feature/bma/fixSendQueueCrash 2024-11-22 10:51:41 +01:00
ganfra
3cb8d4f54f fix : protect some more calls to client and rework the concerned apis 2024-11-21 19:53:42 +01:00
Benoit Marty
fab9da2264 Edit / Add / Remove caption 2024-11-21 09:45:27 +01:00
Benoit Marty
042d079b0a Allow caption for audio and file.
Need to preview all the attachments now, to be able to type a caption.
2024-11-21 09:45:26 +01:00
Jorge Martin Espinosa
1be7993142
Update SDK bindings version to 0.2.62 and fix SendHandle usages (#3876) 2024-11-15 13:48:59 +00:00
ganfra
c9b35eff5c preview api : rename RoomPreview to RoomPreviewInfo to avoid confusion 2024-11-15 10:51:47 +01:00
ganfra
5c1a103818 create room : improve handling of room address 2024-11-13 17:55:45 +01:00
Jorge Martin Espinosa
2206e940bc
Fix verification failed issue, simplify verification logic (#3830)
* Simplify session verification:

- Reuse Rust `Client` instances created on the login process so we don't need to restore one right before the session verification.
- Remove unnecessary sources of verification state updates.
- Add an intermediate FTUE flow step which will display an indeterminate progress indicator instead of a blank screen.

* Remove unnecessary workaround: the SDK should already handle this

* Add regression tests for noop analytics service usage.

* Add `services.analytics.noop` module to the test dependencies

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2024-11-08 16:42:27 +01:00
ganfra
4620bb8704
Merge pull request #3809 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-0.x
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v0.2.59
2024-11-06 17:25:27 +01:00
ganfra
cc4a8d47eb rust sdk : handle api breaks for 0.2.59 2024-11-06 16:31:25 +01:00
Benoit Marty
223eae9602 Send caption with media 2024-11-04 14:24:39 +01:00