Commit graph

760 commits

Author SHA1 Message Date
Jorge Martin Espinosa
b9e286d9d6
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
a06619780c
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
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
Benoit Marty
44b837a6bd
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
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
Benoit Marty
96683850ba Change LocalIsEnterpriseBuild to LocalBuildMeta 2025-03-10 11:08:50 +01:00
Benoit Marty
0a62d40d1d Fix gradient on GradientFloatingActionButton 2025-03-07 18:20:32 +01:00
Benoit Marty
61a6e8dcf4 GradientFloatingActionButton use textActionAccent for enterprise build. 2025-03-07 18:20:31 +01:00
Benoit Marty
f7df69e6b3 Let SuperButton use textActionAccent for enterprise build. 2025-03-07 18:20:31 +01:00
Benoit Marty
c865cf40d6 Provide isEnterpriseBuild value to the Composable. 2025-03-07 18:20:29 +01:00
Benoit Marty
f645a1b221 Fix issue in Modifier 2025-03-07 15:55:02 +01:00
Benoit Marty
6459e3cabd Rename ic_notification_small to ic_notification 2025-03-07 14:21:09 +01:00
Benoit Marty
9af7737302 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
b9b328d41d Remove unused ic_encryption_enabled drawable. 2025-03-07 12:19:36 +01:00
Benoit Marty
b0cd9905ce Remove PreferenceText, replace by ListItem. 2025-03-05 17:25:35 +01:00
Benoit Marty
be36b54fbd 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
79881ed004 Format file. 2025-03-03 16:28:56 +01:00
Benoit Marty
ae56fbc4da 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
a70249769d Migrate to coil3 2025-03-03 12:30:26 +01:00
Benoit Marty
fe1559425d Fix small regression on Preview. 2025-02-26 22:44:30 +01:00
Benoit Marty
eda18f8b78 Replace Material icons with Compound icons wherever it's possible 2025-02-26 22:19:19 +01:00
Benoit Marty
280287b023 Change CompoundIcons.Error to CompoundIcons.ErrorSolid 2025-02-26 18:52:31 +01:00
ganfra
25d39c285b feat(join by alias) : add TextFieldValidity.None instead of nullable 2025-02-25 20:27:54 +01:00
ganfra
6f8ca62261 feat(join by alias) : format code 2025-02-25 15:56:14 +01:00
ganfra
786c2adc97 design(text field) : allow setting validity (instead of just isError bool) 2025-02-25 15:45:43 +01:00
Jorge Martin Espinosa
5d8403b310
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
5e1bdbd5d9
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
cc9c7b1b03
Merge branch 'develop' into feature/valere/support_verification_violation_banner 2025-02-18 15:42:08 +01:00
Benoit Marty
5456f0e38e
Merge pull request #4226 from element-hq/feature/bma/themeOverride
Theme override
2025-02-06 16:48:16 +01:00
Jorge Martin Espinosa
3c87fb05b2
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
52c57d4d8e feature(crypto): verification violation handling and block sending 2025-02-06 16:27:19 +01:00
Benoit Marty
d173d67e77 Fix Text button color. 2025-02-06 15:10:15 +01:00
Benoit Marty
cc7fd55269 Use color from ElementTheme. 2025-02-06 15:10:15 +01:00
Benoit Marty
07d4778ae5 Use ElementTheme instead of MaterialTheme 2025-02-06 15:10:15 +01:00
Benoit Marty
4f5155c314 Color aliases now use ElementTheme 2025-02-06 15:10:14 +01:00
Benoit Marty
1654f569a0 Add ability to EnterpriseService to override theme colors 2025-02-06 15:10:14 +01:00
Benoit Marty
9a255c5e31 Display a confirmation dialog before creating a DM. 2025-02-05 09:32:33 +01:00
Benoit Marty
1f15573fef Fix minor warning. 2025-01-24 17:29:51 +01:00
Benoit Marty
1ecb704e24 Snackbar: SnackbarDispatcher.post does not need to be suspend. 2025-01-24 14:42:07 +01:00
Benoit Marty
d909bb0c3d Snackbar: ensure that 2 snackbar with the same message will be displayed in a row. 2025-01-24 14:39:01 +01:00
ganfra
fd3b99765d change(design) : introduce PreferenceDropdown component 2025-01-17 09:51:56 +01:00
ganfra
24a1b31df5 change(design) : Announcement clean up. 2025-01-15 11:17:25 +01:00
ganfra
b8c0e5257b change(design) : replace DialogLikeBannerMolecule by Announcement component 2025-01-14 16:35:37 +01:00
ganfra
dff29fa270 change(design) : introduce Announcement component 2025-01-14 16:12:43 +01:00
ganfra
a6a0cb083f change(design) : use ElementTheme.typography.fontBodyLgMedium for all button text. 2025-01-14 11:29:21 +01:00
Jorge Martin Espinosa
bb74fed493
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
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
cc530d7ebf design : introduce CounterAtom and ListItemContent.Counter 2025-01-03 15:30:28 +01:00
Benoit Marty
37cd9efc34 Fix DmAvatar rendering in RTL layout 2024-12-31 15:09:35 +01:00
Benoit Marty
896123979d Add preview for DmAvatars and Rtl layout. 2024-12-31 14:48:05 +01:00