Commit Graph

602 Commits

Author SHA1 Message Date
ElementBot
270b420575 Sync Strings (#4590)
* Sync Strings from Localazy

* Fix strings usage after some were moved

* Fix Norwegian string that was causing lint to fail

* Update screenshots

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-04-14 11:24:28 +02:00
Benoit Marty
2f0eb9f068 Click on userId / room alias to copy value to clipboard. (#4549) 2025-04-08 09:23:02 +02:00
ElementBot
3ded30e8fd Sync Strings from Localazy (#4543)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-04-07 09:20:32 +02:00
Benoit Marty
77a7c0b2e5 Remember flows (#4533)
* Add Konsist test to ensure that the result of a function returning a flow is remembered.

* Remember flows before they are collected by state.

* Fix compilation issue

* Make isOnline a val.

* Make selectedUsers() a val.

* Make flow() a val.

* Make getUserConsent(), didAskUserConsent() and getAnalyticsId() some val.

* Remove Timeline.paginationStatus() and replace by direct access to the underlined flow.

* Simplify test

* userConsentFlow must be initialized before because it's used in observeUserConsent

* Fix test compilation
2025-04-04 16:50:43 +02:00
Benoit Marty
a3ce1d484d Replace OutlinedTextField by our TextField (#4521)
* Let TextFieldListItem take the entire width.

* Add unit test to detect usage of OutlinedTextField.

* Use TextField instead of OutlinedTextField

* Remove unnecessary opt in to ExperimentalFoundationApi

* Use TextField instead of OutlinedTextField

* Fix compilation issue.

* Update screenshots

* ListDialog: add space between items.

* Update screenshots

* Set applyPaddingToContents to true by default.

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-02 14:04:07 +00:00
Benoit Marty
c65b54d3b7 Improve TextFieldDialog (#4512)
* Extract TextFieldDialog to its own file (no other change).

* Add TextFieldDialogPreview

Enhance TextFieldDialog

* Let RoomMembersModerationView use TextFieldDialog

* Update screenshots

* Konsist.

* Add modifier parameter.

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-02 10:05:56 +02:00
Benoit Marty
0545c56486 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
ElementBot
2c62c44c11 Sync Strings from Localazy (#4506)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-03-31 10:58:46 +02:00
Jorge Martin Espinosa
bb97015e59 Add 'unencrypted room' badges and labels (#4445)
* Add 'unencrypted room' icon and label to composer

* Modify colors for room details screen info labels

* Add exception to Konsist's preview check

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-25 11:26:25 +00:00
Jorge Martin Espinosa
1659572950 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 Martín
ea13730601 Adjust the size of the verification icon in the room member list too
It was 24dp, it should be 20dp.
2025-03-17 10:14:40 +01:00
ElementBot
6dbb371ca2 Sync Strings from Localazy (#4421)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-03-17 09:54:03 +01: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
bmarty
9456ee921d Sync Strings from Localazy 2025-03-10 00:28:38 +00:00
Benoit Marty
9ca6b188f1 Remove PreferenceText, replace by ListItem. 2025-03-05 17:25:35 +01:00
bmarty
7fca7d2b12 Sync Strings from Localazy 2025-03-03 00:29:16 +00:00
Benoit Marty
d44f5e563f Replace Material icons with Compound icons wherever it's possible 2025-02-26 22:19:19 +01:00
ElementBot
9733e79b60 Sync Strings from Localazy (#4298)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-02-24 09:14:29 +01:00
Benoit Marty
83ede0f774 Sync strings again.
Revert wrong change on Hungarian plurals.
2025-02-17 11:29:49 +01:00
bmarty
3dddd90d97 Sync Strings from Localazy 2025-02-17 00:30:17 +00: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
Benoit Marty
0d6d74512f Use ElementTheme instead of MaterialTheme 2025-02-06 15:10:15 +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
247148df6b Move test class to package impl 2025-02-05 17:27:44 +01:00
bmarty
5a4cac7d2d Sync Strings from Localazy 2025-02-03 00:29:01 +00:00
Benoit Marty
f5f66e6c60 Always render either "Not encrypted" or "Encrypted" badge in the room detail screen. 2025-01-30 11:01:05 +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
d4aed1ddbe feat(security&privacy) : add more previews 2025-01-29 16:47:39 +01:00
ganfra
e6549d725c feat(security&privacy) : improve and document code after PR review. 2025-01-29 14:16:57 +01:00
ganfra
a8b3c7c5a7 feat(security&privacy) : fix tests after some rework landed 2025-01-28 21:08:14 +01:00
ganfra
82bbf2c83f feat(security&privacy) : some more clean up 2025-01-28 20:09:58 +01:00
ganfra
627ce7de3f feat(security&privacy) : update canShowSecurityAndPrivacy check 2025-01-28 20:09:45 +01:00
ganfra
3c18c1f06a feat(security&privacy) : clean code 2025-01-28 14:39:27 +01:00
ganfra
76bc87275c feat(security&privacy) : add all tests for EditRoomAddress classes 2025-01-27 22:43:10 +01:00
ganfra
73281be1af feat(security&privacy) : write View tests 2025-01-27 21:39:25 +01:00
ganfra
ee4fba327c feat(security&privacy) : start writing tests 2025-01-27 16:36:53 +01:00
bmarty
d419f2fdff Sync Strings from Localazy 2025-01-27 00:25:38 +00:00
ganfra
5c1bd6ddb7 feat(security&privacy) : make the whole RoomDirectoryVisibility item clickable 2025-01-24 16:27:24 +01:00
ganfra
9c2f8d39e4 feat(security&privacy) : update strings 2025-01-24 15:55:30 +01:00
ganfra
63db14293a feat(security&privacy) : use permissions and improve save 2025-01-23 23:29:35 +01:00
ganfra
19d273ddc4 feat(security&privacy) : introduce permissions and use in RoomDetails 2025-01-23 21:51:25 +01:00
ganfra
be199e25ff feat(security&privacy) : manage save action and some edge cases. 2025-01-23 14:19:23 +01:00
ganfra
968db70e94 feat(security&privacy) : manage encryption settings 2025-01-22 17:55:37 +01:00
ganfra
8a90770072 feat(security&privacy) : update the save address algorithm 2025-01-22 17:07:11 +01:00
ganfra
755ddcbf47 feat(privacy&security) : extract some code for address management 2025-01-22 16:34:03 +01:00
ganfra
873b6558cc feat(security&privacy) : manage save action for edit room address 2025-01-22 15:14:22 +01:00
ganfra
70f39c4f7c feat(security&privacy) : expose methods from sdk to update alias and rename alias to canonicalAlias 2025-01-22 15:13:09 +01:00
ganfra
e56fe4fb38 feat(security&privacy) : start handling edition of room address 2025-01-21 21:55:55 +01:00
ganfra
5a37a2eeef feat(security&privacy) : introduce navigator 2025-01-21 20:38:43 +01:00