Commit Graph

5562 Commits

Author SHA1 Message Date
Benoit Marty 3eea53840f Merge pull request #7182 from element-hq/feature/bma/focussedButton
[A11y] Improve rendering on focused UI items
2026-07-16 10:47:19 +02:00
Jorge Martin Espinosa 0d03472c60 Content scanner (Element Pro): scan timeline events for unsafe content (#7159)
* Simplify how event content with captions are displayed

The caption component will now be added in `TimelineItemEventContentView` instead of separately in each `TimelineItem__View` component

* Make sure `CoilMediaFetcher` methods to fetch media throw errors

We need to catch them later to check if the content scanner marked some thumbnails or medias as invalid/unsafe in `AsyncImage` instances

* Add a `ContentScannerService` that allows us to manually scan a list of medias in an event and then update and store the results

The results take the form of `ContentValidationValue`, stored in a `ContentValidationState` instance tied to the event

* Create `EventContentValidationCache` to keep the `ContentValidationStates` for events in a room

* Expose `EventContentValidationCache` to Compose using `LocalEventContentValidationState`

Also add a couple of helper functions to avoid having to manually remember the states

* Use the new components to display invalid content in the timeline items

* Add `blurhash` to most media items so we can use it while validating the thumbnails/medias

* Fix custom layout issues with screenshot and UI tests

* Also check the validation state for replied-to events in the composer

* Fix and add tests

* Handle unrecoverable content validation errors too: display a 'not found' UI

* Improve the performance of `EqualWidthColumn` for the single item case

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-07-16 07:59:51 +00:00
Benoit Marty 0fe423757f Merge branch 'develop' into feature/bma/focussedButton 2026-07-15 15:58:01 +02:00
renovate[bot] d732f043dc Update dependency org.matrix.rustcomponents:sdk-android to v26.07.15 (#7216)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.07.15

* Fix API breaks: add `status` and `call` parameters to `aRustRoomMember` helper

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-07-15 15:38:20 +02:00
Jorge Martin Espinosa d0b4a21cfe Fix timelines not loading after marking a room as read from notification when app was killed (#7202)
This can only happen when the app was killed by the OS and then you received some notification.

This notification action creates a new `DefaultSessionPreferencesStore` when trying to fetch `isSendPublicReadReceiptsEnabled`, which would contain a different session coroutine scope than the one created when instantiating the navigation graph (`@SessionCoroutineScope`), resulting in flows that never emit any items and close automatically as 'completed'.

This in turn prevented the timeline items subscription in `TimelinePresenter` from progressing, since we're also checking `isRenderReadReceiptsEnabled` there, which is closed and in turn closes the timeline items flow.
2026-07-15 15:01:35 +02:00
Jorge Martin Espinosa 62cc7e0505 Allow homeserver to disable encryption in Element Pro (#7198)
* Allow HS to disable encryption in Element Pro

Add `force_disable_e2ee` support in the Element well known retriever and cache to allow a homeserver to disable encrypted room creation and enabling encryption in an existing room in Element Pro clients

* Bump enterprise repo back to `main` branch
2026-07-15 13:29:16 +02:00
Benoit Marty 264ec2416f Merge pull request #7194 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-26.x
Update dependency org.matrix.rustcomponents:sdk-android to v26.07.13
2026-07-15 10:56:00 +02:00
Benoit Marty f794cb9f06 Revert "Expose current/max progress values to accessibility services (#7209)"
This reverts commit e915cd242b.
2026-07-15 09:49:06 +02:00
Jürgen Wischer e915cd242b Expose current/max progress values to accessibility services (#7209) 2026-07-15 09:23:54 +02:00
Jorge Martín 09b7732c1b Fix API breaks:
- Add `Beacon` variants for `NotificationData`.
- Add `call` and `status` to `UserProfile`.
2026-07-14 15:45:26 +02:00
ElementBot 03304b3ece Sync Strings (#7192)
* Sync Strings from Localazy

* Update screenshots

---------

Co-authored-by: jmartinesp <480955+jmartinesp@users.noreply.github.com>
2026-07-13 12:21:55 +02:00
Benoit Marty 5ef90250d9 Merge pull request #7176 from bxdxnn/misc/gallery-reply-text
Add item count text as the placeholder for in reply to box for galleries
2026-07-10 16:10:52 +02:00
Benoit Marty 07ea371806 Move strings to Localazy 2026-07-10 15:24:14 +02:00
Benoit Marty 7f13bb95cc Ignore large test class. 2026-07-10 15:16:38 +02:00
Benoit Marty 754eb3d0c1 Improve code and use type Video when necessary 2026-07-10 15:14:14 +02:00
Benoit Marty 2baeca5edf Merge branch 'develop' into feature/bma/focussedButton 2026-07-10 14:49:49 +02:00
Benoit Marty a8cbc7911e Fix typo 2026-07-10 12:24:45 +02:00
Benoit Marty e41c806dd4 Add Figma link 2026-07-10 12:22:42 +02:00
Benoit Marty 8c935d8682 Improve focus rendering: now display a blue inset ring around the focused component.
Closes #6397
2026-07-10 12:14:55 +02:00
Benoit Marty a2f1e9eeec Use better ButtonDefaults method.
It should not change anything since we are providing the 4 parameters
2026-07-10 11:53:52 +02:00
ganfra 3f7ed5d87a Merge branch 'develop' into feature/fga/local_network_permission
# Conflicts:
#	libraries/androidutils/src/main/AndroidManifest.xml
2026-07-09 17:50:24 +02:00
ganfra 5f4bb30b18 Address PR review comments 2026-07-09 17:22:15 +02:00
ganfra 02a40cf2d5 Merge pull request #7094 from element-hq/feature/fga/set_user_status
WIP : Set user status
2026-07-09 14:34:23 +02:00
bxdxnn 566b0c6f86 Add item count text as the placeholder for in reply to box for galleries 2026-07-08 20:01:21 +00:00
ganfra fad8dce166 Address PR review comments 2026-07-08 18:16:13 +02:00
Benoit Marty 3642065202 Merge pull request #7171 from element-hq/feature/bma/cleanUpManifest
Cleanup AndroidManifest.xml files.
2026-07-08 17:59:36 +02:00
ganfra d25362dd36 Merge branch 'develop' into feature/fga/set_user_status 2026-07-08 17:59:30 +02:00
ganfra c2e8912fe2 Add LocalNetworkPermissionGate with rationale dialog 2026-07-08 17:11:27 +02:00
ganfra e9abed9178 Expose homeserverUrl on MatrixClient 2026-07-08 17:11:26 +02:00
ganfra 7f4d264ee0 Add ForceRequestPermissions event to bypass soft-denial intercept 2026-07-08 17:11:26 +02:00
ganfra 74bc2c0f5d Add local network address classifier and permission advisor 2026-07-08 17:11:26 +02:00
manfrommedan 55f3a1acfb Keep the in-progress edit when attaching media
Picking an attachment reset the composer to Normal, which dropped an
in-progress edit: the attachment went out as a new message and the
leftover edit text then created another one instead of editing the
original.

Route every attach path through a single resetComposerModeAfterAttaching()
helper that clears Reply/Normal but keeps an edit pending, so the typed
text still edits the original on the next send. This also covers the
multi-item gallery picker added in #6519, which reset the mode
unconditionally.

Reply is still cleared (the attachment becomes the reply).

Fixes #7083.
2026-07-08 15:32:01 +03:00
Benoit Marty 28abf3049e Cleanup AndroidManifest.xml files. 2026-07-08 11:55:50 +02:00
Benoit Marty 6124d99273 Merge pull request #7020 from bxdxnn/misc/svg-support
Add full SVG support
2026-07-08 10:57:12 +02:00
Jorge Martin Espinosa 885e042c12 Initial content scanner integration (#7139)
* Create a `ContentScanner` component:

- Add `:features:contentscanner:api` module with the interface.
- Implement the concrete component using the Rust SDK in `:libraries:matrix:impl`.

This can be used to both set up the content scanner media fetching in the SDK Client and manually scanning media sources from the Android side

* Create `ContentScannerUrlProvider` in a new `:features:contentscaner:api` module as a noop implementation

Use it as a placeholder for the code to instantiate a `RustContentScanner` with the fetched URL and set it as part of the SDK client.

* Expose the optional `ContentScanner` in the `@SessionScope`

* Split the storage part of the Element well-known retriever so it can be reused for the non-session bound retriever.

Also add the new `content_scanner_url` field to it.

This will be used by the enterprise code to fetch the actual content scanner url.

* Bump enterprise commit to have access to the actual content scanner url provider implementation

* Fix tests and lint issues

* Use the right namespace for `:features:contentscanner:api`, also use the right namespace for `impl`

---------

Co-authored-by: Benoit Marty <benoitm@element.io>
2026-07-08 07:50:22 +00:00
bxdxnn 4fd0be1fe5 Review 2026-07-07 16:46:42 +00:00
Benoit Marty 9672950512 Merge pull request #7138 from element-hq/fix/a11y-reading-order
Fix timeline reading order distorted when TalkBack is active
2026-07-07 09:42:00 +02:00
Benoit Marty 1ddb32645c Merge pull request #7007 from element-hq/renovate/androidx.compose.material3-material3-1.x
Update dependency androidx.compose.material3:material3 to v1.5.0-alpha21
2026-07-06 18:31:45 +02:00
Benoit Marty ac1be8c87a Merge branch 'develop' into feature/bma/scroll-to-unread-messages 2026-07-03 14:30:14 +02:00
Benoit Marty 8840e2f96b Merge pull request #7112 from element-hq/feature/bma/galleryMessages
Support gallery messages
2026-07-03 14:09:20 +02:00
Benoit Marty b6f79a883e Improve accessibility text on RR 2026-07-03 12:36:50 +02:00
Benoit Marty 74f69b7eb3 Optimize code 2026-07-03 09:50:35 +02:00
Benoit Marty ac60d0fce7 Merge pull request #7141 from element-hq/feature/bma/visualListItem
Iterate on visual list
2026-07-03 09:35:31 +02:00
Benoit Marty 00ffff4c0a Merge pull request #7133 from element-hq/fix/a11y-chats-search
Add accessibility label to search input
2026-07-02 15:30:39 +02:00
Benoit Marty 6b68ddcb25 Merge pull request #7135 from element-hq/fix/a11y-message-composer
Fix accessibility for message composer input and read receipts button
2026-07-02 15:30:09 +02:00
Benoit Marty f35546b473 Change text style of VisualList.
Ref: https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=2001-140
2026-07-02 14:57:11 +02:00
Benoit Marty d8b1a41f56 Create dedicated package for visual list and add Figma link. 2026-07-02 14:45:22 +02:00
Benoit Marty a3fbbed8f4 A11Y: Improve accessibility of search field.
Closes #6389
2026-07-02 13:16:01 +02:00
Benoit Marty c1dfd6d6ae A11Y: Improve talkback for video and image / preview not preview. 2026-07-02 11:10:14 +02:00
Benoit Marty 01c8064a16 Fix accessibility: add content description to video preview (#6382)
Set contentDescription on the ExoPlayer PlayerView so TalkBack announces
the video preview to screen reader users instead of treating it as
decorative/invisible content.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 17:52:56 +02:00