Commit Graph

15888 Commits

Author SHA1 Message Date
Benoit Marty 3cde1523b4 Fix quality and tests. 2026-09-08 17:47:53 +02:00
Benoit Marty a817b6f219 Rename methods and update documentation. 2026-09-08 17:06:53 +02:00
Benoit Marty 59e72fc3ee Stop deleting the session data of a logged in account on the next login
sessionPaths keeps pointing at the directories of the account which has
just been logged in, and it was never reset. Adding another account
calls setHomeserver(), whose rotateSessionPath() starts by deleting the
directories of the previous sessionPaths, so the file and cache
directories of the first account were wiped.

finalizeClientCreation() now forgets the session paths once the login
succeeded. It is done there rather than in clear() on purpose: after a
failed attempt the directories are orphaned and must still be deleted by
the rotateSessionPath() of the next attempt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 16:47:58 +02:00
Benoit Marty 579ec9bd6a Close the client used to log in before creating the client of the session
Since the login flows stopped handing their client over to
RustMatrixClientFactory and let finalizeClientCreation() build a fresh
one from the SessionData, two problems appeared.

The client built by loginWithQrCode() was never owned by anyone: it is
not assigned to currentClient, so clear() had nothing to close and the
Rust Client stayed open for the whole app lifetime, holding the session
stores of the freshly logged in account. It is now tracked in
currentClient, and also disposed of when the QR login fails, which is
safe because that flow always builds its own client.

The client of the session was also built while the login client was
still open. Both use the same session paths, so their state and crypto
SQLite stores, and the search index when message search is enabled, were
opened twice at the same time with no cross process lock to protect
them. clear() now runs before the final client is created.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 16:47:58 +02:00
Benoit Marty 1f18a18917 Iterate on hooks implementation 2026-09-08 16:47:57 +02:00
Benoit Marty 5ce531fd44 Ensure we create a fresh Client when the sessionId is know after authentication. 2026-09-08 16:46:46 +02:00
Jorge Martin Espinosa 039c0df9ed Fix remote config getting refreshed with Origin.Cache (#7666) 2026-09-08 13:50:01 +02:00
ganfra 2c9c24921a Merge pull request #7664 from element-hq/renovate/coil
Update coil to v3.6.1
2026-09-08 11:43:13 +02:00
renovate[bot] 55d0503da8 Update coil to v3.6.1 2026-09-08 05:26:36 +00:00
ganfra be666176a7 Merge pull request #7658 from element-hq/renovate/zizmorcore-zizmor-action-0.x
Update zizmorcore/zizmor-action action to v0.6.3
2026-09-07 19:03:36 +02:00
Benoit Marty 10eb7ceb60 Merge pull request #7655 from andreBurnt/fix/maestro-skip-fork-prs
Maestro (local): skip the lane on pull requests from forks
2026-09-07 14:26:52 +02:00
ElementBot aced1ea64d Sync Strings (#7657)
* Sync Strings from Localazy

* Update screenshots

---------

Co-authored-by: jmartinesp <480955+jmartinesp@users.noreply.github.com>
2026-09-07 14:19:38 +02:00
Jorge Martin Espinosa f0a0700f5d Bump SDK bindings to v26.09.3 (#7637)
Fix API breaks:

- A new `Mentions` room list filter is available.
- `RoomListService.subscribeToRooms` is now `RoomListService.setRoomSubscriptions`.
- `enableAutomaticBackPagination` moved from `Client` to `ClientBuilder`.
2026-09-07 14:19:19 +02:00
Jorge Martin Espinosa 79f4e2e06f Stop clearing the remote config when clearing the cache (#7662) 2026-09-07 13:05:15 +02:00
Benoit Marty 16f51e717c Merge pull request #7656 from andreBurnt/fix/maestro-concurrency-queue-max
Maestro (local): queue pending runs in the maestro-test concurrency group instead of cancelling them
2026-09-07 12:27:41 +02:00
renovate[bot] 3a8b096e45 Update dependency org.jetbrains.kotlinx:kotlinx-collections-immutable to v0.5.2 (#7650)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-07 09:49:28 +02:00
renovate[bot] 35e0f83722 Update zizmorcore/zizmor-action action to v0.6.3 2026-09-07 02:25:04 +00:00
andreBurnt 11016da8ae Maestro (local): skip the lane on pull requests from forks
Secrets are never exposed to pull_request runs from forks, so checkEnv.js
throws on MAESTRO_PASSWORD after a full APK build and emulator boot, and the
red check is indistinguishable from a real test failure. The existing guard
checked github.event.pull_request.fork, a field that does not exist on the
pull_request payload (it lives at head.repo.fork), so it was always true.

Gate both jobs at job level on head.repo.full_name == github.repository
(workflow_dispatch still runs), and drop the dead step-level condition.

Fixes #7653

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 07:28:33 -07:00
andreBurnt 443112706a Maestro (local): queue pending runs in the maestro-test concurrency group
With the default (queue: single), a run that finishes Build APK while
another run is already pending in the maestro-test group cancels that
pending run, which then never gets a Maestro verdict for its commit.
queue: max keeps the one-at-a-time constraint (no cancel-in-progress) and
lets up to 100 runs wait, at no runner cost.

Fixes #7654

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 07:28:33 -07:00
Benoit Marty 66c502853c Merge pull request #7647 from element-hq/feature/bma/cleaupProguardFiles
Clean up ProGuard keep rules files
2026-09-04 17:37:53 +02:00
ganfra 356f7eae9f Merge pull request #7636 from element-hq/renovate/io.sentry-sentry-android-8.x
Update dependency io.sentry:sentry-android to v8.54.0
2026-09-04 17:08:06 +02:00
Benoit Marty 0e12d4e119 Revert "Say so when this session has no secrets to verify another one with" (#7644) 2026-09-04 14:39:50 +02:00
Benoit Marty 5c0c330bbd Import string from Localazy. (#7645) 2026-09-04 14:38:37 +02:00
Benoit Marty 6f3758099b Rename the Firebase consumer keep rules file
The -dontwarn is still required: firebase-messaging ships no consumer rules and
we exclude firebase-analytics from its dependencies. Only rename the file to
consumer-rules.keep and reword the comment, which embedded a local path.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-04 14:05:08 +02:00
Benoit Marty 230279566e Keep the Showkase codegen constructor in the designsystem module
The rule only kept the class, but ShowkaseBrowserActivity instantiates it with
Class.forName(...).getDeclaredConstructor().newInstance(), so R8 was free to
strip the constructor. Also drop the AGP template comments and rename the file
to .keep, for consistency with app/proguard.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-04 14:05:01 +02:00
Benoit Marty fc519c7ddf Remove obsolete Retrofit keep rules from the network module
The three rules came from a 2022 comment on Retrofit issue #3751. Retrofit
3.0.0 now ships META-INF/proguard/retrofit2.pro, which contains two of them
verbatim and covers retrofit2.Call through its conditional return-type rule.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-04 14:04:54 +02:00
Jorge Martin Espinosa 7797d302c3 Bump PR priority for our dependencies in Renovate (#7642)
This is now 7, which is higher than the max value (6) renovate adds by default, so they are *always* prioritised above the rest, even if renovate gets rate-limited.
2026-09-04 12:18:32 +02:00
Benoit Marty 55bfcac6ff Remove empty (or comment only) proguard files. 2026-09-04 11:51:59 +02:00
renovate[bot] 29955bcd34 Update coil to v3.6.0 (#7630)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-04 11:05:23 +02:00
Johannes Marbach 8a32f5a001 Keep the push foreground service alive while notifications are fetched (#7639)
* Keep the push foreground service alive while notifications are fetched

* Release the push foreground service as soon as results are handed over

---------

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2026-09-04 10:56:41 +02:00
renovate[bot] 39b392f10c Update dependency io.sentry:sentry-android to v8.54.0 2026-09-03 14:06:44 +00:00
renovate[bot] 67f287af39 Update camera to v1.6.2 (#7632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-03 10:27:21 +02:00
Jorge Martin Espinosa dcd0bc782f Make sure enforce_element_pro is taken into account in FOSS (#7631)
* Make sure `enforce_element_pro` is taken into account in FOSS

* Make sure we crate `RustTemporaryMatrixClient` instances with a proper `serverName` value
2026-09-03 10:05:40 +02:00
Jorge Martin Espinosa 3b2e416855 Fix fetched remote config being cached with the wrong key (#7626)
* Fix fetched remote config being cached with the wrong key

* Bump enterprise repo
2026-09-03 09:57:52 +02:00
renovate[bot] da44cc4075 Update danger/danger-js action to v14 (#7602)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-03 09:27:54 +02:00
renovate[bot] dd8877e6cd Update actions/setup-java action to v6 (#7614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-03 09:27:24 +02:00
renovate[bot] b4473b18b0 Update android.gradle.plugin to v9.3.2 (#7603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-03 09:26:41 +02:00
Benoit Marty a758447175 Merge pull request #7627 from element-hq/renovate/wysiwyg
Update wysiwyg to v2.42.1
2026-09-03 09:12:47 +02:00
hayyaksi d2f540ae79 Expose the timeline item long press and swipe to reply as TalkBack actions (#7458)
* Expose the timeline item gestures as TalkBack actions

Long pressing a timeline item opens the action list, and swiping it
starts a reply. Neither gesture is reachable with a screen reader
enabled, so those two actions were unavailable to TalkBack users.

Publish them as accessibility custom actions on the event row, reusing
the existing "Message actions" and "Reply" strings. The reply action is
only offered when the user is allowed to reply, matching the swipe.

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-09-02 16:58:26 +02:00
Benoit Marty 94bfcc41a6 Merge pull request #7628 from element-hq/sync-localazy
Let's merge before we get a conflict.
2026-09-02 15:03:21 +02:00
Benoit Marty 5018bf8247 Merge pull request #7629 from element-hq/ci/add-gradle-opts-to-sync-localazy-flow
Add `GRADLE_OPTS` for `sync-localazy.yml` flow
2026-09-02 14:58:38 +02:00
Benoit Marty 992da95e4c Merge pull request #7551 from hayaksi1/fix/5344-verification-unavailable
Say so when this session has no secrets to verify another one with
2026-09-02 14:56:51 +02:00
ElementBot eea7fb9424 Update screenshots 2026-09-02 11:31:48 +00:00
Jorge Martin Espinosa f2cd0bf888 Improve detection of invalid placeholders in localazy strings (#7624) 2026-09-02 13:02:40 +02:00
jmartinesp dfccde93c6 Sync Strings from Localazy 2026-09-02 10:07:17 +00:00
Benoit Marty c584e20dc3 Merge pull request #7625 from element-hq/feature/bma/moveKnockAndGalleryToLabs
Move knock and gallery to labs
2026-09-02 12:00:03 +02:00
renovate[bot] b9c3cb855e Update wysiwyg to v2.42.1 2026-09-02 09:30:43 +00:00
Jorge Martín eb121289fe Add GRADLE_OPTS for sync-localazy.yml flow 2026-09-02 11:29:41 +02:00
Benoit Marty 924cf2caf3 Reorder feature flags in labs: Thread, Gallery, Knock 2026-09-02 11:02:49 +02:00
Benoit Marty 7a2f3952cb Move Gallery and Knock feature flags to Labs. 2026-09-02 10:59:51 +02:00