Commit Graph

16103 Commits

Author SHA1 Message Date
renovate[bot] dc466f1f5c Update roborazzi to v1.74.0 2026-09-15 05:09:14 +00:00
Benoit Marty 5b0d7bf5a7 Log errors and fix quality issues 2026-09-14 18:30:29 +02:00
ganfra ba80abcbf0 Merge pull request #7671 from element-hq/renovate/org.sonarqube-7.x
Update plugin sonarqube to v7.5.0.8588
2026-09-14 18:16:06 +02:00
Jorge Martin Espinosa 7aa43411e0 Reduce parallel JVMs spawned for tests (#7701)
* Set `maxParallelForks = 1` for most tests, except for screenshot ones

It turns out the Robolectric setup penalty compounds the more parallel JVMs you spawn. Using 1 JVM vs 8 was up to 2.5x faster in local tests.

* Split the roborazzi tests tasks config and CI step
2026-09-14 18:14:46 +02:00
Benoit Marty f97dac2d5b Update ref
Point to the enterprise submodule rebased on main, which brings the X.509
feature, and resolves the MdmData conflict between the new UseX509 entry and
the split of AccountProvider into AccountProviderServerName,
AccountProviderManagedBaseUrl and AccountProviderManagedCanUseServerName.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 18:09:52 +02:00
renovate[bot] 600a989854 Update kotlinpoet to v2.4.0 (#7709)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-14 16:09:23 +00:00
ganfra 99237f0146 Merge branch 'develop' into renovate/org.sonarqube-7.x 2026-09-14 17:30:21 +02:00
Benoit Marty 84b6224e4d Update ref 2026-09-14 17:18:18 +02:00
Benoit Marty f9a493ef0c Add Kdoc on data class AccountProvider 2026-09-14 16:55:25 +02:00
Benoit Marty ed250320b3 Close the threaded timelines created by ShareLocationPresenter and DefaultMediaSender
Both created a dedicated timeline for each operation performed in a thread, and
never closed it, leaking SDK resources. Apply the same treatment as PollRepository:
replace getTimeline() with a scoped withTimeline() helper, which closes the created
timeline once the operation completes, whether it succeeds, fails or gets cancelled.

In DefaultMediaSender.sendGallery(), waiting for the upload handler is now done
inside the block, so that the timeline stays open until the upload completes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 15:21:14 +02:00
Jorge Martin Espinosa 3d198d8065 Fix flaky test in TimelinePresenterTest (#7702)
The problem seemed to be sometimes the background work to switch from live timeline to a focused event timeline wasn't finished in time and an assertion failed from time to time.

By providing the coroutine to run this on we can pass a `TestScope` and force it to reliably run immediately instead in unit tests.
2026-09-14 15:19:14 +02:00
Benoit Marty e2fb2962f6 Close the threaded timeline created by PollRepository
PollRepository created a dedicated timeline for each operation performed in a
thread, and never closed it, leaking SDK resources. Replace getTimelineProvider()
with a scoped withTimeline() helper, so that the created timeline is closed once
the operation completes, whether it succeeds, fails or gets cancelled.

The live timeline is left untouched, since it is owned by its room.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 15:17:24 +02:00
ElementBot aa69321898 Update screenshots 2026-09-14 12:36:16 +00:00
Benoit Marty bf70bb3e50 Update ref 2026-09-14 11:30:23 +02:00
Benoit Marty 6887092ce4 Replace String by AccountProvider to be able to get baseUrl and serverName. 2026-09-14 09:56:16 +02:00
bmarty 5102f6b0fa Sync Strings from Localazy 2026-09-14 00:54:38 +00:00
bxdxnn 7191313ce5 Allow changing keystore path 2026-09-12 18:10:53 +00:00
Jorge Martin Espinosa 8cd3750cde Make global search use a Joined filter for room results (#7695)
Before this, global search returned also invites, which wasn't planned.
2026-09-11 17:36:38 +02:00
ElementBot b28b2ceeed Update screenshots 2026-09-11 15:04:02 +00:00
Benoit Marty 5b09fdf13f Replace git flow with regular git commands in the release script V2
The script was relying on the external git-flow tool and on a local
`git config gitflow.*` initialisation, which made its behaviour depend on
the machine setup and hid what was actually done to the branches.

The release branch is now created with `git checkout -b`, and the release
is finished with explicit merge, tag, back-merge and branch deletion
commands. The merge and tag messages are provided explicitly so that the
generated history stays identical to the previous releases. Each step now
aborts the script with a clear message when it fails, instead of letting
the script continue.

Note that tools/release/release.sh (V1) still uses git flow.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-11 16:57:01 +02:00
Benoit Marty e7372c7f49 Use PreviewParameterProvider 2026-09-11 16:45:21 +02:00
renovate[bot] d2c49bf4af Update coil to v3.6.2 (#7693)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-11 13:53:11 +02:00
Benoit Marty 58b0f2ebc3 Merge pull request #7591 from element-hq/bma/iterateOnClientCreation
Iterate on client creation
2026-09-11 13:22:42 +02:00
ElementBot c643acda38 Update screenshots 2026-09-11 11:08:34 +00:00
Benoit Marty d59120aad0 Restart the sync service when it stops on an error
Synapse deletes sliding sync connections that have been unused for 7 days. When
an OEM battery manager has kept the application frozen for longer than that, the
next sliding sync request is answered 400 M_UNKNOWN_POS.

The Rust SDK handles that: it resets `pos` and, in offline mode, restarts the
sync. When that recovery gives up, the sync service ends up in the Error or
Terminated state and stops for good, and it is then up to the application to
call start() again. Element X iOS does it, we do not: SyncOrchestrator only
restarts the sync service when its state is Idle, so the sync stays dead for the
rest of the process lifetime.

Nothing recovers from there. The sync never reaches Running, so
waitForE2eeInitializationTasks() never returns, the session verified status
stays Unknown, and the FTUE is stuck on WaitingForInitialState. Clearing the
application data is the only workaround.

Restart the sync service when it is in the Error or Terminated state, with an
exponential backoff from 1s to 30s to avoid hammering a failing homeserver. The
backoff is only reset once the sync service has been running for a while, since
startSync() moves the state to Running right away.

Fixes #7689

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-11 12:48:58 +02:00
Benoit Marty 562e439447 Show a loading indicator on the placeholders which can stay on screen forever
emptyNode() renders nothing at all, which is fine for a placeholder that is left
within a few frames, but makes the application look frozen when the wait can
last, or never end.

Add a delayBeforeShowingContent parameter to emptyNode(): when it is finite, a
progress indicator and a "Loading…" label fade in after that delay, reusing the
existing DelayedVisibility helper. It defaults to Duration.INFINITE, so the
splash screen keeps rendering an empty canvas.

Use a one second delay on the two placeholders which are not guaranteed to be
left: the FTUE one, rendered while waiting for the session verified status, and
the LoggedInFlowNode one, rendered while the FTUE state is unknown.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-11 12:48:44 +02:00
Benoit Marty cbfef6a321 Update ref 2026-09-11 12:35:45 +02:00
renovate[bot] a5b95a18b2 Update dependency io.sentry:sentry-android to v8.55.0 (#7685)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-11 10:19:03 +02:00
ganfra 26578c79a9 Changelog for version 26.09.2 2026-09-10 22:24:50 +02:00
ganfra 518919c28b Merge tag 'v26.09.2' into develop
Release 26.09.2
2026-09-10 21:54:38 +02:00
ganfra 477c813997 Merge branch 'release/26.09.2' 2026-09-10 21:52:00 +02:00
ganfra 3e08454ff8 Adding fastlane file for version 26.09.2 2026-09-10 21:51:59 +02:00
ganfra 24a257bd38 Setting version for the release 26.09.2 2026-09-10 21:51:49 +02:00
ganfra 8101abf67d Merge pull request #7683 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-26.x
Update dependency org.matrix.rustcomponents:sdk-android to v26.09.9
2026-09-10 11:48:42 +02:00
renovate[bot] 45ad16d17d Update dependency org.matrix.rustcomponents:sdk-android to v26.09.9 2026-09-10 05:10:32 +00:00
Jorge Martín c623105da6 Make the google-repo-only dependencies on renovate match those in gradle 2026-09-09 18:40:16 +02:00
Jorge Martín 5f499ce4b3 Ensure official Android dependencies are checked only against Google's Android repo 2026-09-09 18:40:16 +02:00
Jorge Martín 0b7d089791 Make Renovate only look for Element dependencies in maven central 2026-09-09 18:40:16 +02:00
Jorge Martín 10776a7e6b Make sure Android dependencies are fetched from Google's repo in Gradle sync 2026-09-09 18:40:16 +02:00
Jorge Martín 666081e2f2 Adjust concurrent requests for renovate 2026-09-09 18:40:16 +02:00
ElementBot 5df0dca56b Update screenshots 2026-09-09 15:26:04 +00:00
Benoit Marty 069fb2a03d Merge pull request #7678 from element-hq/feature/bma/removeShowkase
Remove Showkase and its in-app component browser
2026-09-09 16:59:30 +02:00
Benoit Marty a7ff96c1c3 Update wording of the remove message confirmation dialog.
And get strings from Localazy
2026-09-09 16:26:51 +02:00
Benoit Marty 50ec5f7dec Merge pull request #7538 from hayaksi1/fix/1612-redaction-reason
Let the user give a reason when removing a message
2026-09-09 16:11:33 +02:00
Benoit Marty 1ee156f480 Remove Showkase from the project. 2026-09-09 15:56:25 +02:00
Benoit Marty 8e1a34cff8 Merge pull request #7649 from element-hq/feature/bma/replaceDangerByGhAction
Replace Danger with actions/github-script
2026-09-09 11:30:13 +02:00
renovate[bot] 476e863734 Update plugin sonarqube to v7.5.0.8588 2026-09-09 07:53:31 +00:00
Jorge Martin Espinosa 3106fec05f Try improving renovate issues with Maven Central rate limiting (#7667)
* Try improving renovate issues with Maven Central rate limiting

Try not to make too many concurrent requests to Maven Central

The logs display rate limit responses followed by OK responses, which could mean we're hammering the Maven Central repo with too many concurrent requests

* Try not hitting Maven Central for `androidx` packages
2026-09-09 09:49:24 +02:00
Benoit Marty 3cde1523b4 Fix quality and tests. 2026-09-08 17:47:53 +02:00
ganfra 875ff9825b Merge pull request #7663 from element-hq/feature/fga/maplibre-compose-update
Update maplibre compose to 0.15
2026-09-08 17:15:32 +02:00