Commit Graph

6857 Commits

Author SHA1 Message Date
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 5a2977134b Gate out-of-window jump-to-unread on genuinely unread displayable content
The jump-to-unread FAB could surface an OutOfWindow target when the
fully-read marker event was either loaded-but-not-displayed (state/filtered
events) or when there was nothing displayable to jump to. Add two guards to
the recompute:

- Require roomInfo.numUnreadMessages > 0, so the FAB only appears when there
  is genuinely unread "interesting" content (never state/hidden events).
- Add Timeline.isEventLoaded to distinguish "in the loaded window but not
  rendered" from "genuinely outside the window", falling back to the SDK only
  after the cheap display-index check (isKnown) misses.

The RustTimeline implementation reads the replay cache first and releases the
EventTimelineItem native handle via use {} when probing the SDK. Adds presenter
tests for the loaded-but-not-displayed and no-unread-messages branches.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 18:05:22 -07: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 a3fb65e924 Address design 2026-06-09 11:00:18 +00:00
bxdxnn 3bc7da0e01 Apply suggestion from @bmarty
Co-authored-by: Benoit Marty <benoit.marty@gmail.com>
2026-06-09 13:29:58 +03:00
Benoit Marty ea94996db7 Set LaunchedEffect key on identifier list. 2026-06-09 09:27:05 +02: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
Jenna Vassar 1f84bef601 Add SecureBackupSetupEntryPoint extension seam
Introduces a FeatureEntryPoint for the recovery-key setup screen so enterprise builds can vend a richer setup node. The FOSS default builds the standard auto-generated-key node; SecureBackupFlowNode now resolves the Setup and Change targets through this seam instead of creating SecureBackupSetupNode directly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 15:35:30 -07:00
ganfra 6b9aa31c19 change(location): ensure permissions are always requested at least once 2026-06-08 22:10:04 +02:00
bxdxnn 8b4158c824 Address review 2026-06-08 18:17:45 +00:00
Benoit Marty bb36787371 Merge branch 'develop' into feature/bma/scroll-to-unread-messages 2026-06-08 17:30:11 +02:00
Jorge Martin Espinosa bea2903093 Click on avatar in moderation bottom sheet opens avatar preview (#6991)
* Make the avatar in the room member moderation bottom sheet open the avatar in the media viewer (#6962)

* Make the avatar in the room member moderation bottom sheet open the avatar in the media viewer.

* Fix issue with avatar overlay not dismissing the bottom sheet: the bottom sheet would eat all the touch events until the first click, which would somehow cancel this behaviour

* Fix lint issues

* Update screenshots

---------

Co-authored-by: bxdxnn <267911624+bxdxnn@users.noreply.github.com>
Co-authored-by: ElementBot <android@element.io>
2026-06-08 16:32:13 +02:00
Jenna Vassar a201b3766e Fix jump-to-unread requiring two taps for an out-of-window read marker (#6943)
* Fix jump-to-unread requiring two taps for an out-of-window read marker

* Update features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelinePresenter.kt

Co-authored-by: Benoit Marty <benoitm@element.io>

---------

Co-authored-by: Benoit Marty <benoitm@element.io>
2026-06-08 15:52:24 +02:00
ElementBot 5a4c0b5d58 Sync Strings from Localazy (#6986)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-06-08 14:33:40 +02:00
bxdxnn 6219378ad3 Fix "Sent" checkmark disappearing when the message is read and "Share presence" is disabled (#6985)
* Don't compute read receipts if presence sharing is disabled

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-06-08 13:21:34 +02:00
Benoit Marty c06e7ed276 Merge pull request #6953 from element-hq/feature/bma/cropIcon
Replace "Edit" button with Crop icon.
2026-06-08 10:15:11 +02:00
bxdxnn a10aa6cbe3 Support thread root in drafts 2026-06-06 18:26:46 +00:00
ganfra 53bbef0554 Merge pull request #6955 from element-hq/feature/fga/remove_location_dot_when_sharing
Change: hide UserLocationPuck when sharing from current device
2026-06-05 17:30:00 +02:00
Benoit Marty 43ab1e5050 Fix some string mappings for link new device errors (#6958)
* Fix some string mappings for link new device errors (#6675)

* Fix some string mappings for link new device errors

* Update snapshots

* Add appName

* Iterate

---------

Co-authored-by: Jorge Martin Espinosa <jorgem@element.io>
Co-authored-by: Benoit Marty <benoitm@element.io>

* Update screenshots

---------

Co-authored-by: Hugh Nimmo-Smith <hughns@users.noreply.github.com>
Co-authored-by: Jorge Martin Espinosa <jorgem@element.io>
Co-authored-by: ElementBot <android@element.io>
2026-06-05 11:17:44 +02:00
Jenna Vassar 8722305e12 Update strings for ios parity 2026-06-04 09:41:55 -07:00
Benoit Marty 4749ec3112 Replace "Edit" button with Crop icon. 2026-06-04 16:13:30 +02:00
Jorge Martin Espinosa a91e1fa2ae Make Vulkan a *not required* feature (#6961)
* Make Vulkan a *not required* feature

* Add `DeviceHasVulkanSupport` helper to check this on runtime

* When trying to open a screen with a map in it, check if vulkan is supported and display a new error dialog in that case

* Fix random lint issue

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-06-04 13:08:19 +00:00
Hugh Nimmo-Smith 1717cc7370 Fix some string mappings for link new device errors (#6675)
* Fix some string mappings for link new device errors

* Update snapshots

* Add appName

* Iterate

---------

Co-authored-by: Jorge Martin Espinosa <jorgem@element.io>
Co-authored-by: Benoit Marty <benoitm@element.io>
2026-06-04 09:34:55 +02:00
ganfra f800bb5586 change : Hide UserLocaitonPuck when currentlySharing from this device (and follow the marker instead of the puck) 2026-06-03 21:54:29 +02:00
ganfra 930aa4f1db change: ensure UserLocationState is computed from the Presenters instead of Views 2026-06-03 21:52:54 +02:00
bxdxnn 27cdc0fe7d Add unread count to the room unread indicator (#6887)
* Add unread indicator count

* Address review
2026-06-03 17:08:35 +02:00
Jorge Martín 63ba6d2b18 Try fixing flaky screenshots for location timeline items
Replace the `rememberAsyncImagePainter` call when in preview mode with fake values
2026-06-03 16:36:52 +02:00
Jorge Martin Espinosa 2ab780576a Remove the FloatingDateBadge feature flag (#6950)
* Remove the `FloatingDateBadge` feature. This is now always enabled.

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-06-03 16:34:06 +02:00
Benoit Marty a9ecf3c5dc Add flip actions to image edition 2026-06-03 11:03:56 +02:00
Jenna Vassar 3fc48787b8 Add missing PasswordVisibilityToggle extraction areas 2026-06-02 15:01:17 -07:00
Jenna Vassar db6f4414df Add custom recovery passphrase setup flow
When the homeserver advertises custom_recovery_passphrase_settings (and
the enterprise gate is enabled), the secure-backup setup lets the user
enter and confirm their own recovery key with a live strength indicator,
instead of receiving a generated one. The SDK derives the 4S key from the
passphrase and the base58 key is scrubbed everywhere so it is never
shown. Falls back to the generated-key flow when no spec is present or
the well-known fetch fails.

Snapshot PNGs are intentionally left out; the core team regenerates them
after the PR is opened.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 13:52:21 -07:00
Jenna Vassar 62ac6a3d2f Add enterprise gate for custom recovery passphrase
Add isCustomRecoveryPassphraseEnabled() and
estimateCustomRecoveryPassphraseStrength() to EnterpriseService, plus the
CustomRecoveryPassphraseStrength result types. FOSS builds return
false/null so the feature stays gated off; the enterprise implementation
(estimator) lands separately in the enterprise repo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 13:51:59 -07:00
Jenna Vassar 748454f34d Add shared PasswordVisibilityToggle design-system component
Extract the show/hide password trailing-icon into a reusable
PasswordVisibilityToggle so every password field reveals plaintext the
same way and announces the same a11y labels. Reuse it from the login and
reset-identity password fields. Pure refactor, no behaviour change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 13:33:04 -07:00
Benoit Marty 7722107001 Merge pull request #6694 from jennaharris7/feature/scroll-to-unread-messages
Timeline: jump-to-unread FAB and mark-as-read shortcut
2026-06-02 16:39:01 +02:00
ganfra a9fe0a3560 Fix LiveLocationReceiver interface and update tests 2026-06-02 13:14:03 +02:00
Jorge Martín 5e3b1463d4 Fix skin tone picker always selecting the middle item by default instead of based on the current pointer position 2026-06-02 12:55:23 +02:00
ganfra 1a40e460ae Handle unrecoverable location errors and stop sharing 2026-06-02 12:23:14 +02:00
Jorge Martín cd64b5e376 Remove apparently unneeded selectedSkinUnicodes 2026-06-02 11:50:26 +02:00
ganfra 1713555a67 Introduce PlatformLocationProvider to replace the maplibre one. 2026-06-02 10:29:23 +02:00
Benoit Marty a095190902 Merge pull request #6924 from element-hq/feature/bma/fixImageEdition
Fix image resizing behavior.
2026-06-01 22:40:01 +02:00
Benoit Marty f08179bcab Merge pull request #6929 from element-hq/feature/bma/reorderRoomDetailItems
Reorder room detail items
2026-06-01 22:39:41 +02:00
ganfra 024e5b7734 Merge branch 'develop' into feature/user_location_state 2026-06-01 21:34:20 +02:00
Benoit Marty 7a05fc118a Fix test 2026-06-01 18:15:02 +02:00