Commit Graph

16110 Commits

Author SHA1 Message Date
ElementBot df8d76a730 Update screenshots 2026-09-30 12:29:02 +00:00
Benoit Marty 48b3eb7a0d Make the content of SignedOutView scrollable for small screens 2026-09-30 14:08:48 +02:00
ElementBot 9b37ecc243 Update screenshots 2026-09-30 10:42:27 +00:00
Benoit Marty 6a7f0ea536 Update UI and wording of the SignedOut screen 2026-09-30 12:17:14 +02:00
Benoit Marty f453cdf2ac Signed out screen: add account info.
Display the account which has been signed out, using the `AccountInfoCard`. The data comes
from the session database, including the stored avatar thumbnail, since there is no Matrix
client available to load the avatar. `SignedOutState.signedOutSession` is now a non-null
`MatrixUser`, defaulting to a user with only the session id.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 11:59:39 +02:00
Benoit Marty a2b2c2360a Merge pull request #7788 from element-hq/feature/bma/removeAccount
Improve the sign out screen
2026-09-30 11:53:19 +02:00
renovate[bot] 923f2176bb Update dependency com.google.firebase:firebase-bom to v34.19.0 (#7805)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-30 08:34:37 +02:00
ElementBot 767377193a Update screenshots 2026-09-29 22:32:44 +02:00
Jorge Martín 41f7cb7b74 Fix aaptDump.txt and changelog
The previous commit changed the aaptDump.txt file too much
2026-09-29 22:03:13 +02:00
Jorge Martín 3985d4b712 Add missing parts of the 26.09.4 release to develop:
- Update CHANGES.md.
- Update aaptDump.txt.
2026-09-29 19:06:33 +02:00
Valere 01bc7dd070 Keep the app content composed when a native call starts
The overlay now draws with no controller too, so starting a call no longer resets the content's state, such as the composer draft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 18:44:49 +02:00
Valere a2be854cf9 fix: linter LocalContext should not be cast to Activity 2026-09-29 18:44:49 +02:00
Valere f052f755b6 Follow a native call into picture-in-picture from the app
supportsPictureInPicture and smallestScreenSize have to be declared here, because a library cannot change a host Activity's manifest entry.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-29 18:44:49 +02:00
Valere e786e2d22f Draw the native call in the app
A wrapper around the logged-in content rather than an overlay, because a minimized call takes a strip of height above it while a maximized one covers it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-29 18:44:49 +02:00
Valere 2ca33296b5 Update element-call-android to 0.1.0-rc.6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 18:44:49 +02:00
Valere 0d5a79f3f2 Add the camera foreground service permission to the manifest snapshot 2026-09-29 18:44:49 +02:00
Valere e35b522a9a Answer a ringing call through the call entry point
The notification's Answer action named ElementCallActivity outright, so answering always opened the WebView whatever FeatureFlags.NativeCall was set to.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-29 18:44:49 +02:00
Valere 75605f1932 Make a call with no UI actually run, and cover it with tests
Found on a device: with no UI to answer the microphone permission or unset the maximized snapshot, the call parks forever and blanks the screen through the proximity wake lock.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-29 18:44:49 +02:00
Valere 40cb43ae87 Build the native call stack on demand for each session
Keyed by session id in app scope rather than session-scoped, because answering a call notification after a cold start has no session graph to reach a session-scoped stack from.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-29 18:44:49 +02:00
Valere 43a1364671 Give the native call component its view of Matrix
The factory lives in libraries/matrix/impl because that is the only module compiled against the Rust SDK, and is app-scoped because a call is started for whichever account it belongs to rather than the one on screen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-29 18:44:49 +02:00
Valere 0d36f70c96 Resolve element-call-android from its GitHub releases
The component and the matrix-rust-rtc core publish as GitHub release assets rather than to Maven, so two filtered ivy repositories resolve them; both become plain coordinates the day they reach Maven Central.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-29 18:44:49 +02:00
Valere 66d6d365d7 Route calls through an entry point the native stack can implement
Adds the seam a native MatrixRTC call stack plugs into, with nothing behind it
yet, so that the stack itself lands as a self-contained change.

`FeatureFlags.NativeCall` is off by default and unfinished.
`features/callnative/api` declares `NativeCallEntryPoint`, and
`features/callnative/impl` provides a default that logs and does nothing:
turning the flag on today gets no call and a line in the log. That is the
honest outcome, where falling back to the WebView would make the flag look
broken rather than unimplemented.

`DefaultElementCallEntryPoint` forks on the flag. The read is asynchronous
because the flag is storage-backed, and caching it in an eagerly started
StateFlow would race a call placed just after app start onto the default
value.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-29 18:44:49 +02:00
Valere 0059c72a32 Expose the write sides of the current-call and ringing state
`CurrentCallService` and `ActiveCallManager` are read by the whole app but
written only by whoever is actually running a call. Writing has so far been
reachable only from inside `features/call/impl`, because that is where both
implementations live.

Adds `CurrentCallTracker` and `RingingCallTracker` to `features/call/api`, so
that a call implementation in another module can report the call it is running
and answer a ring, without depending on `features/call/impl`.

No behaviour change: both interfaces are implemented by the existing classes,
and their methods are aliases of methods that already existed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-29 18:44:49 +02:00
renovate[bot] 93b08e3508 Update dependency io.sentry:sentry-android to v8.57.0 (#7814)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-29 18:37:32 +02:00
Jorge Martin Espinosa ed80c5c537 Remove Firebase push integration from Posthog (#7810)
This causes issues with F-Droid, since now Posthog unconditionally references some Firebase classes, which are detected by their checks.

Note these don't do anything if Firebase messaging isn't included, which is already the case for the F-droid variant of the app.

The R8 changes should remove any code referencing Firebase in Posthog, making the offending classes unused and removing them from the final APKs.

This is not the ideal fix, that would be Posthog actually extracting these classes to an optional dependency, but it's a workaround to be able to publish F-droid versions.
2026-09-29 18:35:36 +02:00
Jorge Martín 6c9d501009 Merge branch 'hotfix/26.09.4' into develop 2026-09-29 18:31:14 +02:00
Benoit Marty fc63d95b65 Merge pull request #7717 from element-hq/renovate/zizmorcore-zizmor-action-0.x
Update zizmorcore/zizmor-action action to v0.6.4
2026-09-29 17:42:12 +02:00
ElementBot 46ba7729f4 Update screenshots 2026-09-29 17:32:24 +02:00
Benoit Marty 1664e0e15d Reorder states: new state at the end 2026-09-29 17:32:24 +02:00
Jorge Martín 5b84bd4340 Adding fastlane file for version 26.09.4 2026-09-29 16:37:05 +02:00
Jorge Martín 7cbd60448d Setting version for the release 26.09.4 2026-09-29 16:36:06 +02:00
Jorge Martín a30730462b Revert "Fix unread notification count in room list (#7749)"
This reverts commit b80a24e0aa.
2026-09-29 16:31:01 +02:00
Benoit Marty 1e6bb0a168 Fix Maestro tests 2026-09-29 15:57:08 +02:00
Benoit Marty 83c3b646c2 Make the content of LogoutView scrollable 2026-09-29 15:57:08 +02:00
Benoit Marty 26ea6be44c Logout: do not double render the progress state and disable the cancel button during the process. 2026-09-29 15:57:07 +02:00
Benoit Marty 672b6eaf81 Remove blank line 2026-09-29 15:57:06 +02:00
Benoit Marty e1ec0b3c55 Logout screen: add account info. 2026-09-29 15:57:06 +02:00
Benoit Marty 3de59bbd88 Logout screen: add Cancel button and update icon. 2026-09-29 15:57:05 +02:00
Benoit Marty d4c1bb61bb Always open the sign out screen from the settings
Remove the direct logout dialog from the settings and from the home screen, where it was never triggered.
The sign out screen will later display the account information (#7765).
The direct logout is still used in the FTUE session verification screen, so remove only the now unused `canDoDirectSignOut` field.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-29 15:57:04 +02:00
Benoit Marty 3fc5a56189 Merge pull request #7809 from element-hq/bma/upgradePaparazzi
Update paparazzi version to 2.0.0-alpha05.1
2026-09-29 14:25:34 +02:00
ElementBot 9eac3c8c2a Update screenshots 2026-09-29 09:15:08 +00:00
Benoit Marty d7e8111e6d Merge branch 'develop' into bma/upgradePaparazzi 2026-09-29 10:55:34 +02:00
ganfra 8dc052cc50 Merge pull request #7718 from element-hq/renovate/maplibre.compose
Update maplibre.compose to v0.16.0
2026-09-29 10:50:24 +02:00
ganfra 64aafc09ef Merge branch 'develop' into renovate/maplibre.compose 2026-09-29 10:13:48 +02:00
ElementBot 14ed697596 Update screenshots 2026-09-29 08:03:25 +00:00
Benoit Marty 8b8204167e Update paparazzi version to 2.0.0-alpha05.1 2026-09-29 09:50:07 +02:00
ElementBot 850048c182 Update screenshots 2026-09-28 16:01:44 +00:00
ganfra 397c19ecfa Merge branch 'develop' into renovate/maplibre.compose 2026-09-28 17:42:16 +02:00
Jorge Martin Espinosa 03fd288c47 Upgrade to rustls-platform-verifier:0.2.0 (#7791)
* Upgrade to `rustls-platform-verifier:0.2.0`.

This re-enables certificate revocation checks, but v0.2.0 contains a list of CRL servers that can be accessed using clear text requests to check the validity of certain certificates, which should fix the issue that prevented us from using certificate revocation and at the same time strengthening the security of the client app.

Since we already had some network configuration in Element X, and `network_security_config.xml` files can't be merged, what we can do is manually download and merge the XML contents using `tools/dependencies/update_rustls_platform_verifier.py` like this:

```sh
./update_rustls_platform_verifier.py 0.2.0
```

It will automatically bump the Gradle dependency and merge the security config entries.

* Bump SDK bindings to `v26.09.28`, containing the rustls bump on the SDK side

* Fix unused resources caused by `app/src/main/res/xml/network_security_config_element.xml`
2026-09-28 15:35:33 +00:00
Jorge Martin Espinosa 0f98c5c0e0 Migrate SqliteStoreBuilder.passphrase usage to use highEntropyPassphrase (#7802)
* Migrate `SqliteStoreBuilder.passphrase` usage to use `highEntropyPassphrase`

This is the first step in migrating existing sessions from using a passphrase that needs key derivation, slowing down opening SDK DBs to just a raw key using the already random keys of the 'passphrase'

* Remove no longer necessary `keyOfSize` extension function
2026-09-28 17:32:42 +02:00