Commit Graph

15032 Commits

Author SHA1 Message Date
ganfra 14feeca2a5 Add some comments after PR review 2026-07-23 11:25:40 +02:00
ganfra e4f8139791 Sync emoji picker translations from Localazy 2026-07-22 21:00:16 +02:00
ganfra 19c38f7e7f Fix lint, detekt and konsist checks 2026-07-22 16:46:58 +02:00
ElementBot e24e15a0c4 Update screenshots 2026-07-22 14:25:10 +00:00
ganfra 4dadb3c8c8 Wire the emoji picker into the user-status feature 2026-07-22 15:48:55 +02:00
ganfra 89deff8a53 Add libraries/emoji/test module with picker fakes 2026-07-22 15:48:54 +02:00
ganfra 93d6d5c84c Migrate EmojiPickerPresenter to assisted-factory pattern with EmptyGetRecentEmojis 2026-07-22 15:48:54 +02:00
ganfra 5d8290b240 Extract EmojiPicker into libraries/emoji with Renderer/Presenter pattern 2026-07-22 15:48:54 +02:00
ganfra e492f06386 Migrate libraries/recentemojis into libraries/emoji 2026-07-22 15:48:54 +02:00
Jorge Martin Espinosa 05917bd65f Fix padding for captions of media in 'not found' state (#7247)
* Fix padding for captions of media in 'not found' state

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-07-22 13:36:21 +02:00
ganfra c5d50bc859 Merge pull request #7243 from element-hq/renovate/metro
Update metro to v1.3.2
2026-07-21 15:20:57 +02:00
ganfra 97b42f0bad Merge pull request #7245 from element-hq/renovate/roborazzi
Update roborazzi to v1.68.0
2026-07-21 15:20:22 +02:00
renovate[bot] 8267901260 Update kotlin to v2.4.10 (#7244)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-21 09:42:51 +00:00
renovate[bot] 5a7c5e6fe7 Update dependency io.element.android:element-call-embedded to v0.22.0 (#7161)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-21 11:20:35 +02:00
renovate[bot] fbffcb5c68 Update roborazzi to v1.68.0 2026-07-21 09:04:41 +00:00
ganfra b18c1f892b Merge pull request #7214 from element-hq/renovate/actions-setup-java-5.x
Update actions/setup-java action to v5.5.0
2026-07-21 11:00:52 +02:00
ganfra 13c7275531 Merge pull request #7212 from element-hq/renovate/dependencyanalysis
Update dependencyAnalysis to v3.16.1
2026-07-21 11:00:15 +02:00
renovate[bot] eddac3eaaa Update actions/setup-java action to v5.5.0 2026-07-21 08:21:05 +00:00
renovate[bot] 5fc212fa26 Update metro to v1.3.2 2026-07-21 08:20:52 +00:00
renovate[bot] 5ddb56572a Update dependencyAnalysis to v3.16.1 2026-07-21 08:20:43 +00:00
Jorge Martin Espinosa 925376b6af Allow adding extra elements to the developer settings from external modules (#7230)
* Add `ExtraDeveloperOptionsRenderer` to display extra UI components in the developer settings screen. It defaults to not displaying anything, using `NoopExtraDeveloperOptionsRenderer`

* Add `EnterpriseService.overriddenElementWellKnown` method to fetch the current overridden element well known value, if any

* Modify the well known retrievers to use the overridden value if it's there. Also extract the JSON parsing to its own `ElementWellKnownParser` component.

* Bump enterprise repo reference.
2026-07-21 10:18:56 +02:00
ganfra 10161a686f Merge pull request #7237 from element-hq/renovate/com.google.firebase-firebase-bom-34.x
Update dependency com.google.firebase:firebase-bom to v34.16.0
2026-07-20 15:42:49 +02:00
Jürgen Wischer 3cef8c2796 Announce expanded/collapsed state on the timeline group header (#7226)
* Announce expanded/collapsed state on the timeline group header

GroupHeaderView (the accordion-style header used for grouped state
events in the timeline) uses toggleable() combined with
clearAndSetSemantics { contentDescription = text }. The
clearAndSetSemantics block discards the state information that
toggleable() would otherwise expose, so TalkBack never announces
whether the group is currently expanded or collapsed.

Add an explicit stateDescription (two new a11y_state_expanded /
a11y_state_collapsed strings in temporary.xml) alongside the existing
contentDescription so the expanded/collapsed state is communicated to
assistive technology.

Internal note: this single-file/single-root-cause fix addresses three
separate BITV findings raised in the same accessibility audit against
this component's toggle semantics.

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-07-20 08:50:51 +02:00
Jorge Martin Espinosa 4a9fd056eb CI: fix 'Update Gradle Wrapper' (#7238)
The action needs a JDK 21, but the step to install it wasn't running for us because an incorrect check was added.
2026-07-17 14:29:43 +00:00
renovate[bot] 01823852fd Update dependency com.google.firebase:firebase-bom to v34.16.0 2026-07-17 13:28:32 +00:00
renovate[bot] c2d90ed870 Update dependency net.zetetic:sqlcipher-android to v4.17.0 (#7218)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-17 15:26:24 +02:00
Jorge Martin Espinosa 2705efad15 Add content scanner support to media gallery and viewer (Element Pro) (#7233)
* Add content scanner support to media gallery and viewer

* Improve UI and previews

* Remove default content validation state in media content views

* Disable click for invalid media items in the gallery events

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-07-17 15:26:13 +02:00
Benoit Marty 19724aaa78 Merge pull request #7236 from element-hq/manuroe/element-pro-release-notes-category
Group Element Pro changes into a dedicated release notes section
2026-07-17 14:59:10 +02:00
manuroe 584e5097fd Group Element Pro changes into a dedicated release notes section
Pro-only PRs (labelled pr-element-pro) leaked into Element X release
notes, causing confusion. They now group into a single Element Pro
section instead of scattering through Features/Bugfixes. Granularity is
dropped on purpose for these changes.
2026-07-17 14:21:11 +02:00
renovate[bot] 87890ea30b Update kotlin to v2.3.10 (#7234)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-17 11:42:14 +02:00
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