Commit Graph

1237 Commits

Author SHA1 Message Date
ganfra
ce0bac55c5 Merge pull request #4574 from element-hq/feature/fga/advanced_settings_moderation_and_safety
change (preferences) : new moderation and safety settings
2025-04-11 14:38:46 +02:00
ElementBot
883103d71d Update screenshots 2025-04-11 11:13:42 +00:00
Benoit Marty
a1d8322738 Introduce PushHistoryService to store data about the received push (#4573)
* Introduce PushHistoryService to store data about the received push

Add a push database.

* Update screenshots

* Improve preview.

* Update screenshots

* Add missing test.

* Add test for PushHistoryView

* Fix configuration issue.

Was: w: /libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryPresenterTest.kt:35:27 Cannot access class 'PushProvider' in the expression type. While it may work, this case indicates a configuration mistake and can lead to avoidable compilation errors, so it may be forbidden soon. Check your module classpath for missing or conflicting dependencies.

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-11 12:56:54 +02:00
ElementBot
034b68c930 Update screenshots 2025-04-11 09:13:28 +00:00
Benoit Marty
44f0c23149 Add a inderminate progress bar when loging out and in Waiting state. (#4538)
* Add a check network connection when the Waiting state last too long.

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-07 11:58:02 +02:00
Benoit Marty
f8fb9d0c05 Update app icon (#4534)
* Update application icon.

* Update icon preview code.

* Update screenshots

* Also update the icon on fastlane config.

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-07 11:48:40 +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
Benoit Marty
ef8eeb804e Remove the green badge on a pending invite after a first preview (#4532)
* Remove condition on displayType as I believe, that it has no effect.

* Remove the green badge on a pending invite after a first preview

* Update screenshots

* Fix test

* Improve DefaultSeenInvitesStore, clear it on logout, and on clear cache. Also create a store per session.

* Remember the returned flow.

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-04 16:51:31 +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
da414b625e Remove alias from room invite item (#4531)
* Remove the potential room alias from invitation cells

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-03 17:11:23 +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
Benoit Marty
f425965e2e Timeline header: ensure that the decoration is clickable (#4495)
* Timeline header: ensure that the decoration is clickable, and properly fix the icon rendering.

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-28 17:28:24 +01:00
Benoit Marty
37cdb9fb08 Update screenshots (#4497)
Co-authored-by: ElementBot <android@element.io>
2025-03-28 14:50:37 +01:00
ganfra
042c0c5a6b Change (mention span) : rework and add more cases (#4476)
* change(mention span) : improve truncation logic

* change(mention span) : fix theme switching

* change(mention span) : start to pillify permalinks

* change(mention span) : use permalink directly

* change(mention span) : start improving mention type

* change(mention span) : use the appropriate MentionSpanProvider methods

* change(mention span) : introduce MentionSpanFormatter

* change(mention span) : introduce MentionSpanUpdater

* change(mention span) : Improve RoomNameCaches

* change(mention span) : remove useless param on HtmlConverterProvider

* change(mention span) : fix some remaining issues on the composer

* change(mention span) : remove pillifiedBody

* change(mention span) : fix some issues with pillification

* change(mention span) : fix getMentionsSpans

* change(mention span) : make sure all tests passes

* change(mention span) : remove the coroutine from the caches and a MentionSpanFormatterTest

* change(mention span) : add more tests on pillification

* change(mention span) : clean up

* Update screenshots

* change(mention span) : remove unexpected print

* change(mention span) : remove default values in constructor of TimelineTextBasedContent classes

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-28 11:20:32 +01:00
Benoit Marty
87fd1372a9 Element config (#4471)
* Add handy extension "VariantDimension.buildConfigFieldStr"

* Update configuration for MapTiler.

* Update configuration for Sentry.

* Build AnalyticsConfig depending on analytics configuration.

* Configure analytics policy url.

* Add handy extension "VariantDimension.buildConfigFieldBoolean"

* Configure legal urls.

* Add a way to disable rageshake / reporting bugs.

* Update screenshots

* Quality

* Fix test

* Use `ifBlank` extension

* Add missing configuration for PostHog

* Update configuration for Rageshake.

* Add build log.

* Disable crash detection if rageshake feature is not available.
Disabled twice.

* Hide link to analytics policy if the link is missing.

* Fix test when run in enterprise context.

* Use RageshakeFeatureAvailability where appropriate.

* Rename file.

* Move some classes to their correct module.

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-27 11:25:04 +01:00
Benoit Marty
9ab6144001 Check link click (#4463)
* Warn when opening a suspicious link.

Upgrade RTE to 2.38.3

* Update screenshots

* Add tests on LinkPresenter and LinkView.

* Format file

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-25 18:17:20 +01: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
Andy Balaam
56683259d9 Use 'Dismiss' to close pinned identity changes, instead of 'Ok' (#4454) 2025-03-25 10:57:51 +01:00
ElementBot
2f8b40777d Sync Strings (#4461)
* Sync Strings from Localazy

* Fix UI tests

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-03-24 16:45:24 +00:00
Benoit Marty
f0a6a0037c Let element enterprise be able to configure id for mapTiler. (#4446)
* Let element enterprise configure the ids for maptiler service.

* Disable location sharing and location viewer is the service is not available.

* Fix compilation issue on connected test

* Do not allow to reload the map if the mapId is not available.

* Update screenshots

* Rename file.

* Better to inject a string provider here, so we can unit test DefaultLocationService.

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-21 17:06:52 +01: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
ElementBot
1803709d86 Update screenshots 2025-03-18 15:39:39 +00:00
Benoit Marty
4bf9d9d43f Merge pull request #4423 from element-hq/fix/display-user-verification-violation-on-top-app-bar-of-room-screen
Display user verification violation icon in DM rooms too
2025-03-18 14:24:19 +01:00
ElementBot
c88501046b Update screenshots 2025-03-18 10:57:59 +00:00
Benoit Marty
af866e3407 Fix issues reported by Konsist. 2025-03-18 11:35:11 +01:00
ElementBot
ce99aab301 Update screenshots 2025-03-17 09:30:42 +00:00
ElementBot
c12405cb18 Update screenshots 2025-03-14 16:05:05 +00: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
ElementBot
09ab8dd630 Update screenshots 2025-03-10 13:34:14 +00: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
8c65dee61f Add Konsist exception for FocusedEventPreview 2025-03-07 18:48:04 +01:00
ElementBot
237cd3eede Update screenshots 2025-03-07 17:33:54 +00:00
ElementBot
7f4c6303e4 Update screenshots 2025-03-07 13:32:17 +00:00
ElementBot
1ac85385f9 Update screenshots 2025-03-05 16:40:13 +00:00
ElementBot
1566403d7b Update screenshots 2025-03-05 10:54:46 +00:00
ganfra
bc8241f19c Merge pull request #4353 from element-hq/feature/fga/room_preview_invite_state
[Change] Invited state room preview
2025-03-04 16:45:50 +01:00
ElementBot
d72cbffecc Update screenshots 2025-03-04 10:07:14 +00:00
ganfra
fbbe1f2f8c change(room directory) : update screenshots. 2025-03-04 10:57:25 +01:00
ElementBot
f5ee783a00 Update screenshots 2025-02-26 21:55:56 +00:00
ElementBot
e95bf70ce4 Update screenshots 2025-02-26 21:31:26 +00:00
ElementBot
53ee15579b Update screenshots 2025-02-26 18:05:19 +00:00
ElementBot
d2934856a0 Update screenshots 2025-02-26 16:55:21 +00:00
ElementBot
02668ab66b Update screenshots 2025-02-26 10:06:54 +00:00
ElementBot
a290b7948d Update screenshots 2025-02-25 19:39:04 +00:00
Benoit Marty
76ef47e4af Avoid test from failing when the enterprise modules are not present. 2025-02-24 09:32:40 +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
Benoit Marty
d23efc3053 Fix Konsist test.
New enterprise module was not correctly detected.
Also ensure that the files are correctly found.
2025-02-20 18:41:11 +01:00