Commit Graph

6112 Commits

Author SHA1 Message Date
ganfra 2a0e41652a Match row heights: add vertical padding to plain text rows to align with TextField row 2026-06-25 12:32:32 +02:00
ganfra 078b63fd7c Move preview cases to UserStatusStateProvider, use @PreviewParameter in view 2026-06-25 12:32:32 +02:00
ganfra 889fd08b5c Fix button width jitter using rememberTextMeasurer to derive stable min-width 2026-06-25 12:32:32 +02:00
ganfra 167c1ced80 Add clear button in custom status text field, toggle Cancel/Save on text presence 2026-06-25 12:32:32 +02:00
ganfra 57617a362a Add TextFieldState overload to design system TextField, use it in UserStatusView 2026-06-25 12:32:32 +02:00
ganfra 73a8a3d5d8 Use TextFieldState in CustomInput state for proper MVI text handling 2026-06-25 12:32:32 +02:00
ganfra eeaaac2969 Move custom status emoji/text into CustomInput state (MVI) 2026-06-25 12:32:32 +02:00
ganfra 7309e49286 Wire UserStatusPresenter and UserStatusRow into PreferencesRoot 2026-06-25 12:32:32 +02:00
ganfra 6c34d647ca Wire UserStatusPresenter and UserStatusRow into PreferencesRoot 2026-06-25 12:32:32 +02:00
ganfra af5a237b4a Add UserStatusView composables with previews 2026-06-25 12:32:32 +02:00
ganfra 0528b787c9 Add UserStatusPresenter with full test coverage 2026-06-25 12:32:31 +02:00
ganfra eca45b574e Add UserStatusState and UserStatusEvent 2026-06-25 12:32:31 +02:00
ganfra 42966b393f Add user status string resources and PredefinedUserStatus enum 2026-06-25 12:32:31 +02:00
Jorge Martín b38b5a924f Remove Room.clearEventCacheStorage since it's not supported by the SDK anymore 2026-06-24 13:29:28 +02:00
ElementBot 932fdaeb2c Sync Strings (#7071)
* Sync Strings from Localazy

* Sync strings again.
Restore `screen_notification_settings_sound_system_default`

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2026-06-22 15:37:33 +02:00
Benoit Marty 1d33c1faed Merge pull request #6992 from element-hq/feature/bma/protectLinkNewDevice
Protect link new device
2026-06-22 10:40:17 +02:00
Benoit Marty d4aa49f3d3 Fix small code smell (#7058)
* RolesAndPermissionsNode does not need to implement RolesAndPermissionsNavigator and simplify the code.

* Remove default implementation in `RoomMemberListNavigator`

* Remove dead code.

* Fix test compilation issue
2026-06-19 15:33:01 +02:00
Benoit Marty 34d17f4903 Merge pull request #7041 from element-hq/feature/bma/compileWithSdk37
Compile with sdk37 and target API 37
2026-06-18 16:15:47 +02:00
Jorge Martin Espinosa 9dc3dec72e Replace ContentResolver.delete usage with a backwards-compatible version (#7053)
The previous signature needed API 30, the new one is available since API 1
2026-06-18 15:48:21 +02:00
Benoit Marty c430877d87 Ensure Robolectric test are run using API 36 until the library support API 37. 2026-06-18 12:18:32 +02:00
Benoit Marty e54d93cd50 Compile with SDK 37 2026-06-18 12:18:31 +02:00
Benoit Marty 5a7015c566 screen_custom_recovery_key_input_notice is now a plurals. 2026-06-17 18:36:10 +02:00
Benoit Marty 70433b283e call: Remove deprecated web<->EX api calls, use the new ones (#6628)
* call: Remove deprecated web<->EX api calls, use the new ones

* ktlint format
2026-06-17 16:01:25 +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 985faa5fa5 Merge remote-tracking branch 'origin/develop' into feature/bma/protectLinkNewDevice 2026-06-17 11:12:36 +02:00
Benoit Marty 2836bccfce Handle PR reviews. 2026-06-17 11:12:21 +02:00
Benoit Marty 568e137cd4 Merge branch 'develop' into feature/bma/multipleForward 2026-06-17 10:31:44 +02:00
Benoit Marty 72e9371fa3 Custom recovery key: import strings from Localazy 2026-06-17 10:04:24 +02:00
bxdxnn 351acec58d Fix thread list not loading older threads (#7034)
* Fix thread list pagination
2026-06-16 20:52:52 +02:00
Jorge Martin Espinosa 8e9c0bedf2 Fix sharing media inside the app (#7016)
When a `MediaSource` is disposed, the local temp file associated to it will be deleted from disk.

When we try sharing a media from the media viewer screen to another room, this will dismiss the screen, which in turn will dispose of the media source and remove the file, which then fails to be shared.

If we copy it first and then make sure we delete it after trying to send it, it works fine.
2026-06-16 16:42:59 +02:00
Jorge Martin Espinosa 710f501689 ScanQrCodeViewTest: try fixing broken test in CI (#7027)
Add `LocalInspectionMode.current = true` in case the failure is related to rendering the `QrCodeCameraView`
2026-06-16 16:42:32 +02:00
Benoit Marty 8e12acf62c Fix Konsist tests. 2026-06-16 14:04:46 +02:00
ElementBot d39b208099 Sync Strings from Localazy (#7021)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-06-16 12:59:45 +02:00
Benoit Marty 969880e35a [Link new device] Unlock with device credentials or application PIN code 2026-06-16 12:23:46 +02:00
bxdxnn 260639cde9 Fix invites not being sent during the room creation (#7018)
* Proceed to the room only from the 'Trust (user) On First Use' confirmation screen
2026-06-15 12:16:05 +02:00
Benoit Marty d33852d32f Room selection: add a limitation of 10 rooms for Share and Forward actions. 2026-06-12 09:22:29 +02:00
Jenna Vassar e90c91d446 Add a node-builder test for DefaultSecureBackupSetupEntryPoint
The new entry point had no test, leaving its createNode body (and the api
Inputs data class) uncovered and failing codecov/patch. Mirror the existing
Default*EntryPointTest convention to exercise the builder.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 16:04:25 -07:00
Jenna Vassar cc9d787602 Collapse the recovery passphrase strength labels to five tiers
Adopt the design feedback from element-meta#3228: drop the time-to-crack
hint strings and reduce the strength labels to Very weak / Weak / Moderate /
Strong / Very strong. Bumps the enterprise submodule to the matching
indicator change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 14:39:58 -07:00
renovate[bot] f0a6cba6db fix(deps): update android.gradle.plugin to v9 (major) (#6021)
* Update android.gradle.plugin to v9

* Separate extensions between app and library ones

`CommonExtension` has been split and its properties are now duplicated in `ApplicationExtension` and `LibraryExtension` without a shared interface, so we now need to duplicate the helper extension functions

* Bump Gradle wrapper to `9.3.1`

* Remove `kotlin-android` plugin usage: it's no longer needed

* Enable `resValues` build feature for the modules that have resources in custom variants like gplay, debug, etc.

Otherwise this now fails saying the resources are there but the feature is disabled

* Remove `retrofit` dependency from `:features:call:impl`

It wasn't in use and the build was failing

* Update kotlin to v2.4.0

* Update plugin paparazzi to v2.0.0-alpha05

* Update gradle wrapper to 9.5.1

./gradlew wrapper --gradle-version 9.5.1 --gradle-distribution-sha256-sum bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f

* Update com.android.tools.build:gradle to 9.2.1

* Update plugin sonarqube to v7.3.1.8318

* Kotlin 2.4.0

* Context parameters are enabled by default in Kotlin 2.4.0

* Fix code issue

* Fix record screenshot issue

* Workaround for https://github.com/cashapp/paparazzi/issues/2342

* Workaround for another issue with Paparazzi

* Remove unused import

* Update screenshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: Benoit Marty <benoitm@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: ElementBot <android@element.io>
2026-06-11 09:51:47 +02:00
Benoit Marty 99b7c758f2 Merge pull request #6954 from element-hq/fix/try-fixing-flaky-location-timeline-item-screenshots
Try fixing flaky screenshots for location timeline items
2026-06-10 14:44:39 +02:00
Benoit Marty ff8e477b4f Merge pull request #6984 from bxdxnn/fix/draft-threads
Fix message drafts not being saved in Threads
2026-06-10 14:44:12 +02:00
Jenna Vassar 1df91ca8d5 Drop the SecureBackupSetupEntryPoint KDoc to match sibling entry points
No other FeatureEntryPoint interface carries KDoc, and the genericised
comment only restated what FeatureEntryPoint + DI already imply.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 15:13:56 -07:00
Jenna Vassar 4f2c2b773a Move custom recovery passphrase strings to FOSS for iOS parity
Add the pro_screen_recovery_key_mode_* and a11y_recovery_key_* strings to
the securebackup module's temporary.xml so they flow through Localazy for
translation, matching element-x-ios#5684, and bump the enterprise submodule
to the commit that references these FOSS strings and drops its own copy.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 15:07:47 -07:00
Jenna Vassar 2a66df7b8a Avoid describing Pro-build specifics in the recovery setup entry point doc
Genericise the SecureBackupSetupEntryPoint KDoc so the public repo no longer
spells out the enterprise custom recovery passphrase behaviour.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 12:15:21 -07:00
Jenna Vassar 8479c8346e Add bringIntoViewOnImeVisible modifier and adopt it on the recovery key screen
Extract the IME-aware bring-into-view logic into a reusable designsystem
modifier and use it in the enter recovery key screen, replacing the inline
BringIntoViewRequester wiring.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 10:03:39 -07:00
ganfra cf63453ff8 Fix tests (after rebasing develop) 2026-06-09 17:25:30 +02:00
Benoit Marty 703f2b22ed Improve static map preview / screenshots. 2026-06-09 13:00:30 +02:00
bxdxnn 3bc7da0e01 Apply suggestion from @bmarty
Co-authored-by: Benoit Marty <benoit.marty@gmail.com>
2026-06-09 13:29:58 +03:00
Jenna Vassar 6710b1c9c1 Remove custom recovery passphrase API from EnterpriseService
These methods gated the feature at runtime. The gate is now a DI binding swap in the enterprise build (EnterpriseSecureBackupSetupEntryPoint replaces the FOSS default), so the EnterpriseService surface and the CustomRecoveryPassphraseStrength result types are no longer needed in FOSS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 15:36:16 -07:00
Jenna Vassar a050716123 Remove custom recovery passphrase flow from FOSS secure backup setup
The custom passphrase entry/confirm UI now lives in the enterprise secure backup module behind the SecureBackupSetupEntryPoint seam. Reverts the setup presenter, view, state, state machine, state provider, and events to the auto-generated-key-only flow, deletes CustomPassphraseDerivations and the temporary strings, and drops the well-known and enterprise-test dependencies the feature required.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 15:36:02 -07:00