1
0
mirror of https://github.com/element-hq/element-x-android.git synced 2026-10-23 18:49:00 +03:00

16478 Commits

Author SHA1 Message Date
renovate[bot]
e094a16fb1 Update dependency org.matrix.rustcomponents:sdk-android to v26.10.23 (#7995)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-23 16:41:40 +02:00
Benoit Marty
cd3fb0ddca Merge pull request #7989 from element-hq/feature/bma/classic-avatar-size
Fix crash on the login screen when the Element Classic avatar is very large
2026-10-23 12:33:18 +02:00
Benoit Marty
967cee86da Guard the userId read when receiving the Element Classic avatar
Before Android 13, the first access to a Bundle received over IPC
unparcels all its entries, including the avatar bitmap. Guard the
userId read so that a failure to unparcel the avatar does not escape
the handler.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 11:07:23 +02:00
Jorge Martin Espinosa
111731b09f Pass media captions as HTML to the media viewer (#7970)
* Pass media captions as HTML to the media viewer

`MediaInfo` and `GalleryInfo` carried the formatted caption as a `CharSequence`, which isn't a good fit for `Parcelable` classes. Some producers also passed the raw HTML body in that field, so the caption was rendered with its tags, and gallery messages didn't pass a formatted caption at all.

Replace `formattedCaption` with `htmlCaption: String?` and convert it to styled text in `MediaViewerPresenter`, using the same `HtmlConverterProvider` as the timeline. The converted captions are cached by HTML so page data equality stays stable across list updates.

* Pillify media captions in the media viewer

Move the `TextPillificationHelper` interface to `:features:messages:api` so the media viewer can use it, keeping `DefaultTextPillificationHelper` in the impl module. The fake moves to `:features:messages:test`.

`MediaViewerPresenter` now pillifies converted HTML captions before linkifying them, matching how captions are rendered in the timeline.

* Rename `TextPillificationHelper` to `TextPillificator`, also fix copyright notice.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:14:03 +02:00
Benoit Marty
5d2778a194 Downscale the avatar received from Element Classic
Element Classic can send the user avatar at its original resolution
(e.g. 6765x6765, ~183MB as ARGB_8888), which makes the login screen
crash with "Canvas: trying to draw too large bitmap".
Downscale the avatar to at most 512px on its longest side when it is
received, and fall back to no avatar if it cannot be read.

Fixes #7986

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 09:41:07 +02:00
ganfra
a21ee3b9c4 Merge pull request #7978 from element-hq/feature/fga/multi-select-forward-fixes
Fixes few issues on timeline multi select and forwarding
2026-10-22 16:44:13 +02:00
Benoit Marty
9e672dda95 Merge pull request #7983 from element-hq/renovate/zizmorcore-zizmor-action-0.x
Update zizmorcore/zizmor-action action to v0.7.0
2026-10-22 15:20:58 +02:00
Benoit Marty
fc498dee61 Merge pull request #7920 from element-hq/renovate/actions-download-artifact-8.x
Update actions/download-artifact action to v8.0.2
2026-10-22 15:20:39 +02:00
renovate[bot]
2ad07249c0 Update zizmorcore/zizmor-action action to v0.7.0 2026-10-22 12:39:12 +00:00
renovate[bot]
61f704708a Update actions/download-artifact action to v8.0.2 2026-10-22 12:38:46 +00:00
ganfra
8b31a1f815 Merge pull request #7984 from element-hq/feature/fga/revert-embeded-element-call-version
Downgrade embedded Element Call to 0.26.1
2026-10-22 11:09:27 +02:00
ganfra
c42adcde5c Downgrade embedded Element Call to 0.26.1 2026-10-22 10:46:04 +02:00
ElementBot
a94c67d9fe Update screenshots 2026-10-21 19:16:04 +00:00
ganfra
1d5ca7a55c Show a confirmation indicator after forwarding to multiple rooms 2026-10-21 20:45:08 +02:00
ganfra
7e70ab9793 Limit forwarding to 5 rooms 2026-10-21 20:18:32 +02:00
ganfra
bd0aeaef15 Center the selection indicator on the bubble with ConstraintLayout 2026-10-21 20:09:57 +02:00
ganfra
f01d8c91bb Resolve the timeline selection slide in the layout phase 2026-10-21 20:08:36 +02:00
Jorge Martin Espinosa
2a8ce3eff2 Allow getting notifications from other sessions in the same device (#7977)
This adds a feature flag, disabled by default, which disables the 'don't receive push notifications from other accounts used in this device' rule, which is useful in general, but problematic for testing.
2026-10-21 17:12:47 +02:00
Jorge Martin Espinosa
041d2474e6 Add pillification to the new timeline renderer (#7761)
* Add pillification to AnnotatedStrings too. Improve the regex matching too in `MatrixPatterns`

* Add a click action to mention pills
2026-10-21 17:12:14 +02:00
Benoit Marty
b35df1e3ef Merge pull request #7958 from element-hq/gradlew-update-9.8.2
Update Gradle Wrapper from 9.8.1 to 9.8.2
2026-10-21 16:57:10 +02:00
Benoit Marty
433d09462f Merge pull request #7972 from element-hq/feature/bma/login-client-no-encryption-setup
Fix duplicate key backup and lost cross-signing keys after creating a new account
2026-10-21 11:58:56 +02:00
Jorge Martin Espinosa
d709cc4363 Revert "Update dependency io.element.android:element-call-embedded to v0.28.0…" (#7971)
This reverts commit 9b3a9a0a2d.
2026-10-21 11:46:17 +02:00
Benoit Marty
f9402bd3d7 Do not set up encryption on the client used to log in
The client used to log in was built with `autoEnableBackups(true)` and `autoEnableCrossSigning(true)`.
Its SDK initialization task (cross-signing bootstrap, key backup creation) could still be running
after it was closed, while the final client, which uses the same store, was doing the same work.
This led to duplicate key backups and lost cross-signing private keys on new accounts.

Only the final client now sets up the backup and the cross-signing.

Closes #7955

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-21 11:28:24 +02:00
Benoit Marty
228abb78dc Fix parameter name in FakeFfiClientBuilder.withSearchIndexStore
The parameter is named `key` in the SDK `ClientBuilder`. The mismatch was reported as a warning,
which failed the compilation of the unit tests since warnings are errors.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-21 11:28:24 +02:00
ganfra
85b63e571a Merge pull request #7963 from element-hq/renovate/maplibre.compose
Update maplibre.compose to v0.20.0
2026-10-20 18:16:29 +02:00
ganfra
b12e5d7465 Merge pull request #7939 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-26.x
Update dependency org.matrix.rustcomponents:sdk-android to v26.10.20
2026-10-20 18:04:47 +02:00
renovate[bot]
7563533523 Update dependency org.matrix.rustcomponents:sdk-android to v26.10.20 2026-10-20 13:54:06 +00:00
Benoit Marty
ffbb166c4a Merge pull request #7953 from element-hq/feature/bma/fixBlockedUsers
Fix blocked users not displayed after restart and list not refreshed after unblocking
2026-10-20 15:33:20 +02:00
Benoit Marty
15f207df4e Merge pull request #7962 from element-hq/renovate/python-3.x
Update dependency python to 3.15
2026-10-20 15:32:48 +02:00
Benoit Marty
463adaac20 Merge pull request #7964 from element-hq/sync-localazy
Sync Strings
2026-10-20 15:32:02 +02:00
ganfra
32fbd0ce7c Merge branch 'develop' into gradlew-update-9.8.2 2026-10-20 14:33:00 +02:00
ganfra
239e523d3b Adapt location feature to maplibre.compose 0.20.0 API 2026-10-20 14:31:43 +02:00
ganfra
d39249e241 Merge pull request #7961 from element-hq/feature/fga/multi-account-user-status
Render user status of other accounts in settings
2026-10-20 13:53:57 +02:00
bmarty
bfde1cc8a6 Sync Strings from Localazy 2026-10-20 09:46:25 +00:00
Benoit Marty
27e924a8a0 Remove Python version from setup step names
The step names said "Set up Python 3.12" while the actual version is set by python-version and updated by Renovate, so the names got out of sync.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-20 11:33:46 +02:00
renovate[bot]
36edf84583 Update maplibre.compose to v0.20.0 2026-10-20 09:31:39 +00:00
renovate[bot]
102b3d8d5e Update dependency python to 3.15 2026-10-20 09:31:28 +00:00
ElementBot
6e61a32f31 Update screenshots 2026-10-20 09:22:31 +00:00
Benoit Marty
b3c05db9a1 Merge pull request #7941 from element-hq/feature/bma/iterateNotificationSettings
Iterate on the Notification settings screen to match the design
2026-10-20 11:11:14 +02:00
Benoit Marty
8d1a95aef7 Merge pull request #7944 from element-hq/feature/bma/reduceGradleCacheSize
Reduce the size of the Gradle cache on CI
2026-10-20 11:10:46 +02:00
Benoit Marty
0aafe5ae19 Merge pull request #7954 from element-hq/feature/bma/login-link-multi-account-tests
Add tests for login link handling when sessions exist
2026-10-20 11:08:24 +02:00
Benoit Marty
ecfeba8fb9 Merge pull request #7952 from element-hq/feature/bma/duplicateSignIn
Iterate wording on duplicate sign in
2026-10-20 11:07:31 +02:00
ganfra
288c9df8a7 Render user status of other accounts in settings 2026-10-20 11:05:25 +02:00
gradle-update-robot
180e5908f5 Update Gradle Wrapper from 9.8.1 to 9.8.2
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2026-10-20 00:44:12 +00:00
Benoit Marty
755fc4cf80 Add tests for login link handling when sessions exist
Cover the multi account branches of RootFlowNode.onLoginLink:
- the session matching the login hint becomes the latest session
- the login link is ignored when multi account is disabled
- the login link is ignored when the account provider is not allowed

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 17:56:44 +02:00
ganfra
ea8d647daa Merge pull request #7926 from element-hq/renovate/androidx.compose.material3-material3-1.x
Update dependency androidx.compose.material3:material3 to v1.5.0-beta01
2026-10-16 17:47:23 +02:00
ganfra
9326b0f0e6 Merge pull request #7951 from element-hq/feature/fga/select-room-suggestions
Add room suggestions when forwarding content
2026-10-16 17:40:18 +02:00
Benoit Marty
cf146fc290 Add link to the SDK issue about the ignored users list at startup
The fetch of the ignored users list from the server at startup is a workaround for an SDK issue, link it so that it
can be removed once the issue is fixed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 17:22:10 +02:00
Benoit Marty
2302ea76c3 Fix blocked users not displayed after restart
The SDK emits its in-memory ignored users list as soon as we subscribe to it. This list is empty until the account data
is received by the sync, which usually does not happen after a restart since the account data has not changed. This
empty list was overriding the list fetched from the server, so the blocked users entry was hidden in the settings, and
the blocked users list was not updated when unblocking a user.

Subscribe first and then fetch the list from the server, and keep the subscription alive even if the fetch fails.

Fixes #7725, #7726

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 16:56:55 +02:00
ElementBot
592bb99ed7 Update screenshots 2026-10-16 14:31:51 +00:00