Commit Graph

15002 Commits

Author SHA1 Message Date
renovate[bot] 9c99b020de Update dependency com.google.crypto.tink:tink-android to v1.23.0 (#7229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-17 10:52:40 +02:00
Benoit Marty 2ceff75e65 Merge pull request #7227 from unclejay80/a11y/formatting-option-state-description
Expose formatting toggle state to TalkBack
2026-07-17 10:00:31 +02:00
Thirumani Vihaan f005693874 Fix #7181: Remove back arrow from device verified screen and use 'Done' text (#7222)
* Fix #7181: Remove back arrow from device verified screen and use 'Done' text

* Update screenshots

* Fix failing Maestro test by tapping 'Done' instead of 'Continue'

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: thirumani-vihaan <your-github-email@example.com>
2026-07-16 16:50:58 +02:00
Benoit Marty 2ed7cfe79c Merge pull request #7225 from unclejay80/a11y/role-button-login-onboarding
Add a button role to clickable icons and text on the login/onboarding screens
2026-07-16 12:37:02 +02:00
Benoit Marty bf54701577 Merge pull request #7228 from element-hq/mxandreas/no-hs-check-qr
Fix logging via QR code when using MDM-configured homeserver
2026-07-16 11:14:48 +02:00
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
Benoit Marty 3854caa8f1 Fix test compilation issue. 2026-07-16 10:27:20 +02:00
renovate[bot] 4cb9d272f4 Update dependency io.sentry:sentry-android to v8.48.0 (#7217)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-16 10:05:43 +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
mxandreas 16bfca1e16 Remove unused code. 2026-07-16 08:34:07 +01:00
ganfra 56cf00560e Merge pull request #7184 from element-hq/feature/fga/lls_fix_timeout
Live location sharing timeout
2026-07-16 09:33:02 +02:00
mxandreas 67cb11f6d0 Fix tests and remove unused code. 2026-07-16 08:25:47 +01:00
mxandreas ea61942ccc Do not enforce MDM-configured homeserver to login via QR-code. 2026-07-16 07:58:22 +01:00
Jürgen Wischer 9c6e7b4464 Add Button role to clickable icons and text on login/onboarding screens
Several clickable elements on the login and onboarding flows (the
account provider list items, the search clear icon, the login clear
icon, and the hidden dev-mode version tap) use plain
Modifier.clickable without a semantics role. Screen readers announce
these as generic elements instead of buttons, so users relying on
TalkBack cannot tell they are interactive.

Add role = Role.Button to each clickable modifier, and reuse the
existing clear-icon content description as onClickLabel where one is
available.
2026-07-15 22:07:33 +02:00
Jürgen Wischer a6aa29f375 Expose formatting toggle state to accessibility services
FormattingOption used clearAndSetSemantics with only a contentDescription,
so the Bold/Italic/Underline toggle buttons never exposed whether they
were currently active to TalkBack. Add a stateDescription reflecting the
selected/unselected state alongside the existing contentDescription.

New a11y_active / a11y_inactive strings added to temporary.xml for
Localazy import.
2026-07-15 22:05:04 +02:00
ganfra a6b5eb4dce Extract expired-share handling into a helper method 2026-07-15 21:22:23 +02:00
Jorge Martín e79181d145 Changelog for version 26.07.1 2026-07-15 16:27:32 +02:00
Jorge Martín 936ce45784 Adding fastlane file for version 26.07.1 2026-07-15 16:27:32 +02:00
Jorge Martín b69f299adb Setting version for the release 26.07.1 2026-07-15 16:27:32 +02:00
ElementBot 058b494d82 Update screenshots 2026-07-15 14:17:15 +00:00
Benoit Marty 0fe423757f Merge branch 'develop' into feature/bma/focussedButton 2026-07-15 15:58:01 +02:00
renovate[bot] 8de8826b1f Merge pull request #7188 from element-hq/renovate/roborazzi
Update roborazzi to v1.67.0
2026-07-15 15:53:26 +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
ganfra f9513193e2 Merge pull request #7177 from element-hq/renovate/androidx.sqlite-sqlite-ktx-2.x
Update dependency androidx.sqlite:sqlite-ktx to v2.7.0
2026-07-15 13:51:45 +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
Jorge Martin Espinosa 03f3e8b3e0 Try fixing DM creation in Maestro (#7204)
* Try fixing DM creation in Maestro

* Also handle 'invite new people to this room' with first invite to aRoomName

* Try adding a room list clean up sub-flow

* No need to press back button after successful invites

* Looks like 'hideKeyboard' works as 'back' and messes up with the navigation. Try using the workaround described in https://docs.maestro.dev/reference/commands-available/hidekeyboard#workarounds
2026-07-15 10:56:50 +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 fefcb7a41d Merge pull request #7213 from element-hq/revert-7209-a11y/linear-progress-indicator
Revert "Expose current/max progress values to accessibility services"
2026-07-15 10:25:50 +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
renovate[bot] afdf07b23e Update dependency io.github.zxing-cpp:android to v3.1.0 (#7206)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-15 08:36:59 +02:00
Timo 3bb7fe97e6 Default to dark theme for EC (#7162)
* Default to dark theme for EC
(this is the intended design on light and dark system configuration)

* Use `theme=dark` url param for element call

* Update CallScreenPresenter.kt
2026-07-14 17:49:40 +02:00
renovate[bot] 1619155b87 Update dependency io.github.sergio-sastre.ComposablePreviewScanner:android to v0.9.1 (#7201)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-14 15:48:26 +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
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
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
Jorge Martin Espinosa 3edf4a6a69 Fix AAPT dump missing and reordering some permissions (#7193) 2026-07-13 10:26:49 +02:00
renovate[bot] b0c9947a11 Update dependency org.matrix.rustcomponents:sdk-android to v26.07.13 2026-07-13 08:06:26 +00:00
ganfra 14e4dd34ed Merge pull request #7180 from element-hq/renovate/kotlin
Update dependency org.jetbrains.kotlinx:kotlinx-collections-immutable to v0.5.1
2026-07-10 20:25:22 +02:00
ganfra 00135bbfea Merge pull request #7174 from element-hq/renovate/compose.bom
Update dependency androidx.compose:compose-bom to v2026.06.01
2026-07-10 20:24:55 +02:00
Benoit Marty 8a54ad6e6b Merge pull request #7178 from element-hq/renovate/io.sentry-sentry-android-8.x
Update dependency io.sentry:sentry-android to v8.47.0
2026-07-10 17:08:51 +02:00
ElementBot e42f974c00 Update screenshots 2026-07-10 14:43:36 +00: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 68bf671f10 Merge pull request #7172 from element-hq/feature/bma/mergedManifest
Add check on merged manifest
2026-07-10 14:53:17 +02:00
Benoit Marty 2baeca5edf Merge branch 'develop' into feature/bma/focussedButton 2026-07-10 14:49:49 +02:00
ElementBot a7502a8fe1 Update screenshots 2026-07-10 12:23:53 +00:00