Commit Graph

786 Commits

Author SHA1 Message Date
ganfra
50f666169a Merge branch 'develop' into feature/fga/room-version-upgrade 2025-06-16 20:46:28 +02:00
ganfra
254e36de9a feature (room upgrade) : revert ComposerAlertMolecule preview 2025-06-12 11:09:17 +02:00
Benoit Marty
a7eb623e06 Remove ExperimentalComposeUiApi. Not necessary anymore. 2025-06-11 17:49:11 +02:00
ganfra
fad622b018 Merge branch 'develop' into feature/fga/room-version-upgrade 2025-06-11 16:30:21 +02:00
Benoit Marty
cfa48d1df7 Annotate Composable function with ReadOnlyComposable where it's possible. (#4859) 2025-06-11 14:12:54 +02:00
ganfra
d92d1ad3c3 feature (room upgrade) : manage navigation and clean code. 2025-06-11 13:32:12 +02:00
ganfra
aff8dd8522 feature (room upgrade) : start rendering SuccessorRoom and PredecessorRoom banners in timeline 2025-06-11 10:46:39 +02:00
renovate[bot]
96063373b7 fix(deps): update coil to v3.2.0 (#4712)
* fix(deps): update coil to v3.2.0

* Fix compilation issue. Need to provide an image for preview.

https://coil-kt.github.io/coil/compose/#previews

* Improve preview for images.

* Update screenshots

* More cleanup

* Update screenshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: ElementBot <android@element.io>
2025-06-05 09:49:27 +02:00
renovate[bot]
9d5e8aa308 fix(deps): update dependency androidx.compose:compose-bom to v2025.04.01 (#4631)
* fix(deps): update dependency androidx.compose:compose-bom to v2025.04.01

* Fix autofill deprecations

* Adapt our custom BottomSheetState and scaffold to the new APIs

* Get rid of all the custom bottom sheet implementation

It doesn't seem to be needed anymore 🎉

* Replace `semantics { invisibleToUser() }`  with `hideFromAccessibility()`

* Update screenshots

* Add commit and cancel callbacks for autofill on the login view

* Fix broken tests caused mainly by https://issuetracker.google.com/issues/366255137

Add `LocalUiTestMode` composition local and helper functions.

* Remove dependency that caused a new license to need to be approved

* Let setSafeContent handle setting the value for LocalUiTestMode

* Fix broken test

* Apply fix to RoomMemberModerationViewTest and RoomListDeclineInviteMenuTest

---------

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>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-06-03 21:05:43 +00:00
Jorge Martin Espinosa
9dbaa2ed40 Make sure HeaderFooterPage can contents be scrolled (#4704)
Co-authored-by: ElementBot <android@element.io>
2025-06-02 14:28:46 +02:00
renovate[bot]
54fea47cba fix(deps): update lifecycle to v2.9.0 (#4693)
* fix(deps): update lifecycle to v2.9.0

* Remove unused code.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-05-09 09:55:35 +00:00
renovate[bot]
62a1d1bcb9 fix(deps): update android.gradle.plugin to v8.10.0 (#4687)
* fix(deps): update android.gradle.plugin to v8.10.0

* Update lint version to 8.11.0-alpha09

* Fix lint false positive.

Error: Modifier factory functions must use the receiver Modifier instance [ModifierFactoryUnreferencedReceiver from androidx.compose.ui]

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-05-07 11:07:20 +02:00
Benoit Marty
8c64b842a5 Cleanup element call and UI (#4641)
* Use ElementTheme.colors.bgCanvasDefault instead of MaterialTheme.colorScheme.background

Even if the value is the same, we should use color from ElementTheme.

* Remove background management of ElementCallActivity. It does not work as expected and also changing theme during a call would require to load the url again with the new theme.

* Do not use isSystemInDarkTheme() directly.

* Use bgSubtleSecondary for background color of Preview.

* Use default colors for Preview.

* Fix copy paste issue.

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-25 17:30:54 +02:00
Benoit Marty
19f2e0e8c9 Render caller avatar on Incoming call screen (#4635)
* Ensure that the image loader is set, else the IncomingCallActivity will not be able to render the avatar.

Fixes #4633

* Add background color to OnboardingBackground

Fixes #4629

* Trigger CI
2025-04-24 21:32:46 +00:00
Benoit Marty
fc59df878f Accessibility: improve behavior of list items (#4626)
* a11y: add Modifier to improve accessibility of ListItems.

Remove duplication of onChange. As per the documentation, it has to be used only if the behavior is different than the onClick listener of the list item.
It also has the effect to read twice the action when the screen reader is one. See https://github.com/element-hq/element-x-android/pull/4047#discussion_r1888136571 for more details

a11y: remove contentDescription on List item icon, else the text is read twice.

* Ensure that if the ListItem is not enabled, the trailing/leading content is also not enabled.

* Update screenshots

* Fix lint crash.

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-24 21:53:21 +02:00
Benoit Marty
e2e58749f5 [a11y] Make more items focusable (#4605)
* Fix settings entry point not available when there is no avatar on the account. Fixes #4599.

* Use Ktx extension `String.toUri()`

* Allow screen reader to focus on the user avatar to allow editing it.

* Fix import order
2025-04-22 08:50:50 +02:00
Jorge Martin Espinosa
a346faba08 Improve accessibility of the timeline (#4579)
* Make whole messages selectable and readable as a single unit when possible.
* Make most UI components not clickable when talkback is enabled.
* Make voice messages work with talkback too.
* Read grouped state events even if the events are collapsed.
* Move image and video item actions to the timeline item.
* Improve accessibility in the message context menu too
* Fix a11y issue on add attachment button.
* Add `contentDescription` to file icon so it's read aloud

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-04-15 15:28:29 +00:00
ganfra
dffdb15cf0 change (preferences) : use PreferenceDropdown for appearance (and add some tests) 2025-04-11 17:09:31 +02:00
ganfra
497022291b Merge branch 'develop' into feature/fga/advanced_settings_moderation_and_safety 2025-04-10 18:32:04 +02:00
ganfra
e231ef7a0e change (preferences) : hide invite avatars (room and sender) 2025-04-09 21:26:24 +02:00
Benoit Marty
2f0eb9f068 Click on userId / room alias to copy value to clipboard. (#4549) 2025-04-08 09:23:02 +02:00
Benoit Marty
607d98940d Use colors from compound for badges (#4545)
* Use badge color from Compound and remove temporary aliases

* Use color instead of a copy of it.

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-07 11:32:35 +02:00
Jorge Martin Espinosa
dac0eb6762 Fix bullet points not having leading margin on timeline items (#4536)
* Fix bullet points not having leading margin on timeline items

* Remove other usages of `SpannableString` constructor, use either `valueOf` to reuse the existing value or `SpannedString` instead if the spans don't have to change
2025-04-07 10:50:45 +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
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
d27a61a588 Make verification screens scrollable and emoji labels multiline (#4449)
* Make self verification screens scrollable

* Remove unused fields from `VerificationEmoji`

* Make only the header and content scroll in `HeaderFooterPage`.

* Use the right 'emoji' icon in both flows (`ReactionSolid`)

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-21 12:18:38 +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
Benoit Marty
a31af8dcd6 Merge pull request #4378 from element-hq/feature/bma/customSuperButton
Be able to correctly render the UI with other colors.
2025-03-11 09:26:54 +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
Benoit Marty
ea5fde99a5 Change LocalIsEnterpriseBuild to LocalBuildMeta 2025-03-10 11:08:50 +01:00
Benoit Marty
5c6c211bd0 Fix gradient on GradientFloatingActionButton 2025-03-07 18:20:32 +01:00
Benoit Marty
5dcc13236b GradientFloatingActionButton use textActionAccent for enterprise build. 2025-03-07 18:20:31 +01:00
Benoit Marty
846201df78 Let SuperButton use textActionAccent for enterprise build. 2025-03-07 18:20:31 +01:00
Benoit Marty
00507fa309 Provide isEnterpriseBuild value to the Composable. 2025-03-07 18:20:29 +01:00
Benoit Marty
d3a6b107af Fix issue in Modifier 2025-03-07 15:55:02 +01:00
Benoit Marty
7258b05a3c Rename ic_notification_small to ic_notification 2025-03-07 14:21:09 +01:00
Benoit Marty
8d14ac67e9 Add IconColorButton (CloseButton)
Figma: https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=1956-37586
2025-03-07 13:14:51 +01:00
Benoit Marty
99b3e6b547 Remove unused ic_encryption_enabled drawable. 2025-03-07 12:19:36 +01:00
Benoit Marty
9ca6b188f1 Remove PreferenceText, replace by ListItem. 2025-03-05 17:25:35 +01:00
Benoit Marty
7d85c0bfa3 Fix icon color.
Leading icon should be iconSecondary
Trailing icon should be iconPrimary
See Figma https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=628-25757
2025-03-05 11:42:05 +01:00
Benoit Marty
209600270a Format file. 2025-03-03 16:28:56 +01:00
Benoit Marty
42fcf31080 Need to provide a LocalAsyncImagePreviewHandler for previews to work correctly with coil3
https://coil-kt.github.io/coil/compose/#previews
2025-03-03 14:56:20 +01:00
Benoit Marty
3a09d1c4ca Migrate to coil3 2025-03-03 12:30:26 +01:00
Benoit Marty
101e453569 Fix small regression on Preview. 2025-02-26 22:44:30 +01:00
Benoit Marty
d44f5e563f Replace Material icons with Compound icons wherever it's possible 2025-02-26 22:19:19 +01:00
Benoit Marty
d1d130af75 Change CompoundIcons.Error to CompoundIcons.ErrorSolid 2025-02-26 18:52:31 +01:00
ganfra
30fbb124a5 feat(join by alias) : add TextFieldValidity.None instead of nullable 2025-02-25 20:27:54 +01:00
ganfra
3bb61757ca feat(join by alias) : format code 2025-02-25 15:56:14 +01:00