Commit Graph

758 Commits

Author SHA1 Message Date
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
ganfra
f6b4ee945b design(text field) : allow setting validity (instead of just isError bool) 2025-02-25 15:45:43 +01:00
Jorge Martin Espinosa
247071b196 Try avoiding trailing punctuation inside linkified URLs. (#4214)
Create `LinkfierHelper` and post-process URLSpans added to make sure they honor the actual URLs in text by removing unnecessarily added trailing punctuation.
2025-02-21 16:58:59 +00:00
Jorge Martin Espinosa
717a15bea5 When an emoji is used as the 'initial' for an avatar, use the whole emoji (#4277)
* When an emoji is used as the 'initial' for an avatar, use the whole emoji

Use `BreakIterator.getCharacterInstance()` for a simpler solution.
2025-02-18 20:15:11 +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
98f793b02e Merge pull request #4226 from element-hq/feature/bma/themeOverride
Theme override
2025-02-06 16:48:16 +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
1087b151a3 feature(crypto): verification violation handling and block sending 2025-02-06 16:27:19 +01:00
Benoit Marty
b8db5ebe16 Fix Text button color. 2025-02-06 15:10:15 +01:00
Benoit Marty
39cb6e03f0 Use color from ElementTheme. 2025-02-06 15:10:15 +01:00
Benoit Marty
0d6d74512f Use ElementTheme instead of MaterialTheme 2025-02-06 15:10:15 +01:00
Benoit Marty
484ecb5f6c Color aliases now use ElementTheme 2025-02-06 15:10:14 +01:00
Benoit Marty
468ef0f7fc Add ability to EnterpriseService to override theme colors 2025-02-06 15:10:14 +01:00
Benoit Marty
bfcc741312 Display a confirmation dialog before creating a DM. 2025-02-05 09:32:33 +01:00
Benoit Marty
84eed48b7d Fix minor warning. 2025-01-24 17:29:51 +01:00
Benoit Marty
9b0df915a6 Snackbar: SnackbarDispatcher.post does not need to be suspend. 2025-01-24 14:42:07 +01:00
Benoit Marty
0dc87cdf84 Snackbar: ensure that 2 snackbar with the same message will be displayed in a row. 2025-01-24 14:39:01 +01:00
ganfra
6111f68517 change(design) : introduce PreferenceDropdown component 2025-01-17 09:51:56 +01:00
ganfra
91753514c5 change(design) : Announcement clean up. 2025-01-15 11:17:25 +01:00
ganfra
19c61331ec change(design) : replace DialogLikeBannerMolecule by Announcement component 2025-01-14 16:35:37 +01:00
ganfra
69c555ae55 change(design) : introduce Announcement component 2025-01-14 16:12:43 +01:00
ganfra
818de2a134 change(design) : use ElementTheme.typography.fontBodyLgMedium for all button text. 2025-01-14 11:29:21 +01:00
Jorge Martin Espinosa
dfc2ade84e Replace the InfoListOrganism default bg color (#4091)
* Replace the `InfoListOrganism` default bg color

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-01-07 14:01:42 +01:00
Benoit Marty
05fc76822a 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
d6f95fd47d design : introduce CounterAtom and ListItemContent.Counter 2025-01-03 15:30:28 +01:00
Benoit Marty
6609c93181 Fix DmAvatar rendering in RTL layout 2024-12-31 15:09:35 +01:00
Benoit Marty
9d70e459b8 Add preview for DmAvatars and Rtl layout. 2024-12-31 14:48:05 +01:00
Benoit Marty
654e7b14fa Remove unused ic_groups.xml 2024-12-17 14:35:19 +01:00
Benoit Marty
5bdd8bbb30 Replace ic_developer_options.xml by the icon from Compound. 2024-12-17 14:35:19 +01:00