Commit Graph

215 Commits

Author SHA1 Message Date
Jorge Martin Espinosa 84a907d906 Fix regex for invalid placeholders (#7738)
This issue added some false positives to the list and broke the string synchronization.
2026-09-21 14:35:33 +02:00
Benoit Marty a7ff96c1c3 Update wording of the remove message confirmation dialog.
And get strings from Localazy
2026-09-09 16:26:51 +02:00
Benoit Marty 5c0c330bbd Import string from Localazy. (#7645) 2026-09-04 14:38:37 +02:00
Jorge Martin Espinosa f2cd0bf888 Improve detection of invalid placeholders in localazy strings (#7624) 2026-09-02 13:02:40 +02:00
Jorge Martin Espinosa e5065d9baa Fix invalid placeholders in translations (#7612)
* Add logic to find invalid string placeholders in `checkForbiddenTerms.py`

* Fix found invalid placeholder in Chinese translations
2026-09-01 12:40:05 +02:00
Benoit Marty 441c88244f Merge pull request #7490 from element-hq/feature/bma/sendingMessageFailedReason
Show dialog with reason when user clicks on a message with a failure
2026-08-21 15:59:01 +02:00
Benoit Marty 25989135a8 Add error content to Localazy 2026-08-21 09:54:47 +02:00
Benoit Marty 42f9e15641 Move strings to the login module 2026-08-19 17:18:16 +02:00
Jorge Martin Espinosa bbb83c2ff0 Localazy: improve search, parallelize checks (#7261)
* Remove no longer temporary string

These are now in localazy and the sync strings CI flow was failing because we have 2 conflicting values in `temporary.xml` and `localazy.xml`

* Use the right placeholder value in `screen_local_network_opt_in_subtitle`

* Localazy: improve search, parallelize checks

The search for XML files has been narrowed down and it's several times faster now, and processing the files is now done in parallel

* Improve script to also find and delete previous files

Also add the option of having a `-v|--verbose` flag to print which files we're modifying

* Use `LocalBuildMeta` to get the app name inside `LocalNetworkPermissionDialogView`

* Allow finding all the forbidden terms in the strings and translations and then return an error exit code instead of a success one

---------

Co-authored-by: ElementBot <android@element.io>
2026-07-27 15:12:53 +02:00
ganfra 907579d59f Merge pull request #7232 from element-hq/feature/fga/display_user_status
WIP : display user status
2026-07-23 15:10:19 +02:00
ganfra e4f8139791 Sync emoji picker translations from Localazy 2026-07-22 21:00:16 +02:00
ganfra 2a86c69b9d Sync user status strings with Localazy and tidy formatting
# Conflicts:
#	libraries/ui-strings/src/main/res/values/temporary.xml
2026-07-22 17:28:29 +02:00
Jorge Martin Espinosa f9112cc583 Collapse runs of deleted messages in the timeline (#7195)
* Collapse runs of deleted messages in the timeline (#7111)

* Collapse runs of deleted messages in the timeline

Collapse a run of three or more consecutive deleted messages into a single
expandable group, reusing the existing state-change grouping (the same way
element-web does it) instead of showing one "Message removed" placeholder per
deletion. The header shows the count only ("N deleted messages"); the Rust SDK
does not expose who performed the redaction, so we don't attribute it.

On by default. Runs shorter than three are left as individual placeholders, and
day dividers and read receipts are preserved (a run is broken by any
non-redacted item, so a day is never emptied).

Run the collapse as the final step of TimelineItemGrouper.group() instead of
a separate pass in the presenter, as suggested in review. Kept as its own
finalization step rather than via canBeGrouped() so the group stays all
redacted and the count-only header is preserved.
The group id is resolved through the grouper's existing id registry, like the
other groups, so it stays stable however the run grows and the user's
expand/collapse state is kept across timeline updates.

* Replace temporary strings with final ones

* Update screenshots

---------

Co-authored-by: Hi Dude! <klarkmonty@tuta.io>
Co-authored-by: manfrommedan <manfrommedan@users.noreply.github.com>
Co-authored-by: ElementBot <android@element.io>
2026-07-13 15:57:55 +02:00
Benoit Marty 355894cc74 Merge pull request #6944 from element-hq/feature/custom-recovery-key-wellknown
Add well-known parsing and extension seam for custom recovery passphrase
2026-06-17 13:58:22 +02:00
Benoit Marty 72e9371fa3 Custom recovery key: import strings from Localazy 2026-06-17 10:04:24 +02:00
Benoit Marty c88edc9621 Notification settings: pick custom sounds for messages and call ringtones (#6897)
* Notification settings: pick custom sounds for messages and call ringtones (#6702)

* Feature: add notification sound settings for messages and calls

* Add sound not available banner, accessibility checks

* Fix build and Konsist convention violations

- libraries:preferences:api now uses io.element.android-compose-library
  so NotificationSound's @Immutable annotation can resolve, matching the
  pattern in libraries:matrix:api.
- Rename SoundUnavailableBannerStateProvider to
  NotificationSoundUnavailableStateProvider so the class name contains
  the parameter type as required by KonsistClassNameTest.

* Suppress LargeClass on RoomListPresenterTest

The three new sound-unavailable tests pushed the class past Detekt's
default LargeClass threshold. Matches the suppression pattern already
used on five presenter test classes under features/messages/impl/test.

* NotificationSettingsView: guard ringtone-picker launchers in inspection mode

rememberLauncherForActivityResult requires a LocalActivityResultRegistryOwner,
which Paparazzi-driven preview snapshot tests don't provide, causing
NotificationSettingsViewPreview to throw IllegalStateException for every
preview parameter. Extract the click handlers into a helper that returns a
no-op when LocalInspectionMode.current is true; the runtime path is unchanged.

* Handle unresolved notification sounds mid session

* Quality checks, refactor mid session error ui

* Suppress detekt LargeClass on NotificationSettingsPresenterTest

* Remove notification sound resilience layer, replace with file copy

* Reselect element sound option, code cleanup

* Add element fade notification sound option

* Fix new file headers

* Revert to flowOf(Unit) for announcement service

* Add ringtone picker dialog to match message selector

* Update strings in conjunction with ios

* Update test to reflect new string

* Sync strings.

* Update screenshots

* Fix test

* Remove not properly located translations.
This will be fixed in the next String sync.

* Fix test on CI

---------

Co-authored-by: Jenna Vassar <jenna.vassar@toptal.com>
Co-authored-by: ElementBot <android@element.io>
2026-05-28 16:54:12 +02:00
Benoit Marty bb2779549e Update design and UX
Update and add tests
Improve preview
2026-05-22 10:29:36 +02:00
Benoit Marty 882d5577a7 Add "Mark as read", "Mark as unread" in room settings.
#6398
2026-05-19 18:06:11 +02:00
Benoit Marty 3ca06d71ef Rename keys on Localazy and add Black theme. 2026-05-12 17:57:55 +02:00
Benoit Marty 5508442222 [Link new device] Implement code confirmation screen. 2026-04-28 12:04:57 +02:00
Benoit Marty 8c5caabed4 Sign in with Classic 2026-04-13 11:16:05 +02:00
ganfra 1c5037f6e2 Add localazy config for location sharing 2026-03-24 11:13:40 +01:00
Benoit Marty faa97ff2f1 Update wording from "Enter recovery key" to "Use recovery key" 2026-03-16 17:19:49 +01:00
Skye Elliot 1e268b0709 Add history sharing badges to room details (#6132)
* feat: Add history sharing badges to room details view

* tests: Add snapshots for history sharing room details badges

* fix: Disable soft-wrapping in badges, use FlowRow

* tests: Add unit test for `RoomDetailsState` and history sharing badges.

* tests: Add `MatrixBadgeAtomNeutralWrappingPreview` to exceptions

* chore: Re-order `MatrixBadgeAtom` previews

* fix: Add `Immutable` annotation to `RoomHistoryVisibility`.

* fix: Correct translation for shared badge
2026-02-06 19:03:52 +00:00
Benoit Marty e8b14e62cf Sync all strings and fix compilation issue. 2026-01-26 14:13:06 +01:00
ganfra e9a55ea79a Sync strings 2026-01-21 19:49:47 +01:00
ganfra 57b89d241f Add proper localization for space room removal UI 2026-01-15 12:14:08 +01:00
ganfra 7645588b0f localazy : sync strings
# Conflicts:
#	features/roomdetails/impl/src/main/res/values/localazy.xml
#	features/securityandprivacy/impl/src/main/res/values/localazy.xml
#	libraries/ui-strings/src/main/res/values/localazy.xml
2025-12-23 15:23:45 +01:00
Benoit Marty 3ea10c2c62 Merge pull request #5909 from element-hq/feature/bma/qrCodeLogin
Link new device using QrCode - First version
2025-12-18 16:08:21 +01:00
Benoit Marty a073117d62 Link new device using QrCode. 2025-12-16 16:14:04 +01:00
ganfra c4a542dbf1 localazy: download strings to match module 2025-12-10 15:14:35 +01:00
ganfra c08de1f904 change(room details edit): move to his own module 2025-12-03 14:30:05 +01:00
ganfra c6ba2f5d10 change(security and privacy) : extract code to a separate module 2025-11-26 12:32:06 +01:00
ElementBot eff221645e Sync Strings (#5792)
* Sync Strings from Localazy

* Update localazy config and sync strings.

* Use the new localazy key.

* Sync strings again

* Sync strings again and fix compilation issue.

* Update screenshots

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-11-24 17:28:49 +01:00
Jorge Martin Espinosa 95c9e768f4 Use regex to check forbidden terms. (#5784)
We were returning and `Elementul` as a match for the forbidden term `Element`. It now checks for the full word.
2025-11-21 17:01:01 +01:00
Benoit Marty 017a259f1c Update notification content 2025-11-14 15:40:31 +01:00
Benoit Marty eb31505dc7 Copyright: Add Element Creations Ltd. copyright 2025-11-10 11:05:05 +01:00
Benoit Marty f86431e663 Copyright: Add final period 2025-11-10 10:13:41 +01:00
Benoit Marty c4e0370f41 Copyright: run command uv run license-editor --repository ../element-x-android 2025-11-10 10:09:26 +01:00
ganfra d9695ae6a0 change(roles and permissions): change title for space 2025-11-05 21:42:51 +01:00
ganfra 83a4457d6e Merge branch 'develop' into feature/fga/role_and_permissions_rework 2025-11-05 20:29:04 +01:00
ganfra ec207a548b change(roles and permissions): fix localazy strings 2025-11-03 18:35:18 +01:00
ganfra 4a56b13ecc feature(space) : update some strings 2025-10-31 15:01:03 +01:00
Benoit Marty a584a5c1c6 Update Localazy config and sync all the strings. 2025-10-07 15:53:53 +02:00
Jorge Martin Espinosa 9714abe032 Add Labs screen for beta testing of public features (#5465)
* Add Labs screen:

- Make `Feature` have an `isInLabs` boolean to distinguish private feature flags from public ones.
- Have `FeatureFlagsService` provide the list of available flags.
- Display the labs item in the settings screen only if there are available public features.
- Remove public feature toggles from developer options.
- Implement the labs screen with the public features.
- Add a clear cache step to the threads feature toggle
- Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-10-07 10:02:54 +00:00
Benoit Marty 2907f762f6 Announcement for Spaces 2025-10-03 00:15:27 +02:00
Benoit Marty 74c2ee46d8 Leave space - Add screen to leave a space. 2025-09-26 14:14:00 +02:00
Benoit Marty fa14e4c106 Add notification troubleshoot test about blocked users. 2025-09-23 08:59:40 +02:00
Benoit Marty 003249faa6 Use string from Localazy. 2025-08-14 11:46:28 +02:00
Benoit Marty 186d06c73e Cleanup Localazy config and do a sync. 2025-08-13 17:41:44 +02:00