Commit Graph

818 Commits

Author SHA1 Message Date
Jorge Martin Espinosa
407c7ed70a Simplify message composer layout (#4884)
Co-authored-by: ElementBot <android@element.io>
2025-06-24 14:05:28 +02:00
Benoit Marty
5a5195351d Merge pull request #4923 from element-hq/feature/bma/spaceAvatar2
Iterate on avatar to be able to render Space avatar Part2
2025-06-24 12:05:59 +02:00
renovate[bot]
3cebec9a91 fix(deps): update dependency org.robolectric:robolectric to v4.15.1 (#4911)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-06-24 11:06:45 +02:00
Benoit Marty
475b8543de Space avatar rounded corner has radius of 25% of the width. 2025-06-24 11:00:53 +02:00
Benoit Marty
8e104b7ae5 Move internal elements to internal package. 2025-06-24 09:12:12 +02:00
Benoit Marty
0e982d4435 Replace values() by entries 2025-06-24 09:08:15 +02:00
Benoit Marty
7d7e368bd0 Quality 2025-06-24 09:06:39 +02:00
Benoit Marty
71186c9dd7 Fix regression on preview. 2025-06-24 09:06:29 +02:00
Benoit Marty
341dff7f03 Improve preview of AvatarCluster to show all types. 2025-06-23 22:16:06 +02:00
Benoit Marty
e1bde435f5 Avoid potential infinite loop. 2025-06-23 21:56:20 +02:00
Benoit Marty
ddca92a353 Provide avatarShape: Shape instead of AvatarType to sub composable functions 2025-06-23 21:51:56 +02:00
Benoit Marty
db98e3c146 Extract subcomposable InitialOrImageAvatar 2025-06-23 21:45:59 +02:00
Benoit Marty
7f60fde9dc Remove default param for Avatar.avatarType 2025-06-23 21:36:53 +02:00
Benoit Marty
b532f6e60b Remove default param for AvatarCluster.avatarType 2025-06-23 21:27:40 +02:00
Benoit Marty
f3a885e535 SpaceAvatar can be internal 2025-06-23 21:25:23 +02:00
Benoit Marty
390ecdaedc Cleanup code rework by IDE. 2025-06-23 21:24:40 +02:00
Benoit Marty
041eb88aee Extract UserAvatar to its own file. 2025-06-23 21:24:03 +02:00
Benoit Marty
688fbdd1bd Let AvatarType be the receiver of avatarShape() 2025-06-23 18:34:52 +02:00
Benoit Marty
0f6dd82b97 Move isTombstoned to AvatarType.Space 2025-06-23 18:33:42 +02:00
Benoit Marty
a76730c365 AvatarType is Immutable. 2025-06-23 18:03:53 +02:00
Benoit Marty
290e4be82d Extract ImageAvatar and InitialLetterAvatar to their own files. 2025-06-23 18:02:34 +02:00
Benoit Marty
2bc2cd5472 Cleanup 2025-06-23 17:57:44 +02:00
Benoit Marty
8df920a3ac Introduce AvatarType to be able to render space avatars 2025-06-23 17:08:14 +02:00
ganfra
438a22bcec change (room avatar) : replace modifier.requiredSize by modifier.size 2025-06-18 13:39:46 +02:00
ganfra
21129d0c0b change (room avatar) : fix AvatarClusterPreview 2025-06-18 12:53:27 +02:00
ganfra
da371797d3 change (room avatar) : add preview for TombstonedRoomAvatar 2025-06-18 12:29:47 +02:00
ganfra
f3614ab67e change (room avatar) : clean code related to room name/avatar 2025-06-17 20:37:41 +02:00
ganfra
935a715cf6 change (room avatar) : delete CompositeAvatar 2025-06-17 10:37:07 +02:00
ganfra
1080417dd8 change (room avatar) : introduce RoomAvatar and AvatarCluster to replace CompositeAvatar 2025-06-17 10:37:07 +02:00
ganfra
4517403038 change (room avatar) : use TextAvatar from TombstonedRoomAvatar 2025-06-17 10:37:06 +02:00
ganfra
f6dc8da6ad change (room avatar) : use TextAvatar from InitialLetterAvatar 2025-06-17 10:37:06 +02:00
ganfra
08bbd7219c change (room avatar) : introduce TextAvatar component 2025-06-17 10:37:06 +02:00
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