Commit Graph

13711 Commits

Author SHA1 Message Date
Benoit Marty
8dab306acd Fix reply content icon for attachment.
See https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=2019-6286
2026-03-24 11:01:09 +01:00
Benoit Marty
6b03d1d1e8 Merge pull request #6452 from element-hq/feature/bma/iterateOnMicrophoneIcon
Iterate on microphone icon
2026-03-24 10:59:41 +01:00
ElementBot
3b506c6927 Update screenshots 2026-03-24 09:12:08 +00:00
Benoit Marty
a90761875a Update Mic icon in the composer bar. Closes #6443 2026-03-24 10:00:08 +01:00
ganfra
9912fdcac3 Merge pull request #6428 from element-hq/renovate/org.maplibre.gl-android-sdk-13.x
fix(deps): update dependency org.maplibre.gl:android-sdk to v13.0.1
2026-03-23 20:57:20 +01:00
ElementBot
b5df58fcec Sync Strings (#6435)
* Sync Strings from Localazy

* Sync strings.

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2026-03-23 18:05:26 +00:00
Andy Balaam
cf9459f363 Fix: "Reset identity" flow leaves backup disabled #5075 (#6420)
* Don't cancel the resetOidc job in onStart or onDestroy of ResetIdentityFlowNode

* Add logging around the launch and completion of reserOidc

* Some improvements to make sure we always cancel the reset job.

Also, the flow can be considered done when the key backup is enabled, at that point we should already be verified.

* Don't cancel the `ResetIdentityFlowManager` when starting a reset

This also cancels the check that will call `onDone` when the flow finishes successfully.

It seems like it worked for me locally because of some race condition.

---------

Co-authored-by: Jorge Martín <jorgem@element.io>
2026-03-23 17:28:07 +00:00
renovate[bot]
3eff46268a fix(deps): update media3 to v1.9.3 (#6445)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-23 17:12:32 +00:00
Jorge Martin Espinosa
a2d9f241dd Fix long messages not being clickable (#6356)
* Fix long messages not being clickable

As @bmarty found out, `clip = true` causes the click event to be ignored in some cases. Since we have the shape we want to draw and we're using a custom `onDraw` modifier anyway to cut-out part of the path, we can just draw everything using the modifier and avoid using `clip = true`.

This seems to fix the issue.

* Fix clipping of images or other items that cover the bubble

* Fix borders being displayed for contents

* Extract the layer drawing logic into `drawInLayer` to simplify the inlined code. Remove redundant code, those changes are now in the `drawInLayer` block

* Workaround for lint issue: it seems like detekt can't properly detect usages in content receivers

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-03-23 18:11:55 +01:00
Jorge Martin Espinosa
13bbd24df1 Fix wakelock not stopping early when notifications are disabled (#6424)
If notifications for a device are disabled when there is no connection with the HS, the push registration will still exist, so the device can still receive push notifications.

In that cases, we were running into an issue where the wakelock for push notifications was started immediately after receiving a push but was never stopped and it ran for 3 minutes until its timeout, keeping the device awake for no reason.

This patch changes `DefaultPushHandler` so if we don't need the wakelock it returns `false` and we can stop the wakelock early.
2026-03-23 18:07:25 +01:00
Jorge Martin Espinosa
78c9076281 Fix TransactionTooLargeExceptions caused by Appyx (#6410)
* Fix `TransactionTooLargeExceptions` caused by Appyx

After a long debugging session, we discovered the code Appyx uses to clear the saved state of nodes that have been removed is not working because of a race condition, causing this saved state to grow indefinitely.

To fix it, we need to wait until the node has been disposed, which will call `SaveableStateHolder.removeState` once, removing the associated `SaveableStateRegistry`, and *then* call `removeState` again when we detect the node has been removed from the navigation graph.

Since these classes and APIs are private in Appyx, we had to copy and modify and use these copies.

* Remove ktlint checks on `SafeChildrenTransitionScope.kt`

* Don't count the new code for coverage
2026-03-23 18:07:00 +01:00
renovate[bot]
d18a95dad9 Merge pull request #6430 from element-hq/renovate/reactivecircus-android-emulator-runner-2.x
chore(deps): update reactivecircus/android-emulator-runner action to v2.37.0
2026-03-23 18:00:39 +01:00
bxdxnn
a261156c7c Fix media seeking flicker (#6434) 2026-03-23 16:03:50 +01:00
Jorge Martin Espinosa
9074692189 Fix crash when starting a DM (#6419)
`AnchoredDraggable.requireOffset` was called before it was populated when displaying  `CreateDmConfirmationBottomSheet`, because the keyboard and the bottom sheet were causing conflicting animations related to the insets.

Hiding the keyboard before displaying the bottom sheet seems to fix the issue, and `skipPartiallyExpanded` results in a better UX (and also worked around the issue by itself).
2026-03-23 16:00:04 +01:00
Benoit Marty
93ab9f43dc Merge pull request #6322 from element-hq/feature/bma/iterateDesignOnAttachment
Design iteration on file attachment in the timeline
2026-03-23 14:37:54 +01:00
Gianluca Iavicoli
a30aed6a21 Fix keyboard not auto-opening when editing a message (#6412)
* fix: auto-open keyboard when editing a message

* fix: show keyboard on focused editor view instead of root view
2026-03-23 10:54:59 +01:00
renovate[bot]
2bd306063d fix(deps): update dependency org.maplibre.gl:android-sdk to v13.0.1 2026-03-21 02:15:12 +00:00
Jorge Martin Espinosa
e1e82cef08 Add warning about new features to pull request template (#6425)
* Add warning to pull request template

* Add a new section to the `CONTRIBUTING.md` file too with similar contents
2026-03-20 16:36:35 +01:00
renovate[bot]
643d1e957d fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v26.03.19 (#6411)
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v26.03.18

* Fix API breaks

* Add compatibility with rustls (#6367)

A new `rustls-platform-verifier-android` library has to be added to the project, it'll be called from Rust to get access to the certificates on Android.

Originally, this was supposed to be added as a local maven repo pointing to the rust crate that publishes the AAR, but that's just plain terrible (more details [here](https://github.com/rustls/rustls-platform-verifier#android).

Instead, what we can do is use a script that uses `cargo-download` to download the latest crate or a specified version, unzip it and add the `aar` file to the `:libraries:matrix:impl` module.

* Try fixing Sonar with local AAR files

* Remove `UserCertificatesProvider`: this is no longer needed after integrating rustls

* Added some docs for rustls and its `platform-verifier` library

* Upgrade SDK to `26.03.19`: this version contains a workaround that allows the app to use the same TLS verifier as before, fixing the Let's Encrypt issues we saw with some homeservers (like element.io)

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-03-20 16:20:37 +01:00
bxdxnn
cb228e47b9 Fix room member not tappable in a Thread (#6416) 2026-03-19 14:23:10 +01:00
Benoit Marty
3ad4931b7c Merge pull request #6370 from element-hq/feature/bma/fixMalformedWellknown
Improve error displayed when .well-known file is malformed
2026-03-18 22:02:45 +01:00
Benoit Marty
e5f50a901c Map ClientBuildException.WellKnownDeserializationException to AuthenticationException.InvalidServerName, so that the error displayed to the user is more explicit. Closes #6368 2026-03-17 18:05:23 +01:00
Benoit Marty
754f783d56 Merge pull request #6366 from element-hq/feature/bma/zizmoreAgain
Fix permissions issue.
2026-03-17 16:44:03 +01:00
Benoit Marty
d852774421 Fix permissions issue. 2026-03-17 16:21:47 +01:00
Jorge Martin Espinosa
96e2f882a2 Add a foreground service with a wakelock for fetching push notifications (#6321)
* Create `PushHandlingWakeLock` to start a foreground service:

When receiving a push and scheduling the notification fetching, several problems can happen:

1. Some async operation is waiting for a timeout and it takes way longer than that to finish (i.e. timeout of 10s but it took 30s to advance).
2. The same, but when starting new coroutines. I've seen the time between scheduling a coroutine and it running sometimes take up to 1 minute.
3. Notification fetching can be scheduled immediately, but it can take a while to actually run because the OS understands the app is now in Doze.

Having a wakelock that runs as soon as the push handling starts fixes these: it continues the previous wakelock held by either Firebase or the UnifiedPush distributor.

* Acquire the wakelock as soon as we received the pushes in both receivers

* Also release the wakelock ahead of time if possible
2026-03-17 14:24:26 +01:00
Benoit Marty
ea561d3702 Merge pull request #6357 from element-hq/feature/bma/verificationWording
Update wording of button "Enter recovery key" to "Use recovery key"
2026-03-16 18:20:47 +01:00
ElementBot
a992183166 Update screenshots 2026-03-16 16:56:32 +00:00
Benoit Marty
e9ca0a79e9 Sync strings. 2026-03-16 17:36:13 +01:00
Benoit Marty
afa1a42d92 canEnterRecoveryKey -> canUseRecoveryKey 2026-03-16 17:21:19 +01:00
Benoit Marty
b5830f5016 Update wording from "Enter recovery key" to "Use recovery key" 2026-03-16 17:19:49 +01:00
Benoit Marty
993250f1ea Merge pull request #6352 from element-hq/sync-localazy
Sync Strings - iterate on wording about crypto identity
2026-03-16 16:06:54 +01:00
Benoit Marty
2a1fb5427a Merge pull request #6355 from element-hq/feature/bma/fixRemovingLabel
Fix permissions issue.
2026-03-16 15:59:46 +01:00
Jorge Martin Espinosa
949a12f3d2 Improve Kover setup by using only convention plugins (#6213)
* Improve Kover setup using convention plugins.
* Add a new JVM library convention plugin with Kover support
2026-03-16 14:41:07 +00:00
Benoit Marty
0a308ec719 Fix permissions issue. 2026-03-16 15:34:09 +01:00
ElementBot
9f3a586387 Update screenshots 2026-03-16 14:11:01 +00:00
Benoit Marty
0fbed400eb Sync string again. 2026-03-16 14:54:06 +01:00
ElementBot
6bd5a6ef9a Update screenshots 2026-03-16 09:57:55 +00:00
Benoit Marty
2e77502084 Fix issue in pattern 2026-03-16 10:32:33 +01:00
Benoit Marty
3814085837 Merge pull request #6345 from element-hq/feature/bma/removeMatrixToDeeplinkSupport
Remove matrix.to intent filter from the AndroidManifest.
2026-03-16 10:19:38 +01:00
renovate[bot]
f85fcf6a63 fix(deps): update dependency io.sentry:sentry-android to v8.35.0 and enable ANR profiling (#6331)
* fix(deps): update dependency io.sentry:sentry-android to v8.35.0

* Add profile sampling of ANRs

This *should* help debugging them.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-03-16 09:13:08 +00:00
renovate[bot]
7cdf1a264b fix(deps): update activity to v1.13.0 (#6327)
* fix(deps): update activity to v1.13.0

* Remove usages of deprecated  `bundleOf`

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-03-16 08:50:43 +00:00
renovate[bot]
6229a3bcef chore(deps): update webfactory/ssh-agent action to v0.10.0 (#6325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-16 09:18:50 +01:00
bmarty
3a0e01b63d Sync Strings from Localazy 2026-03-16 00:42:32 +00:00
renovate[bot]
2b6d7a23e4 fix(deps): update dependency androidx.datastore:datastore to v1.2.1 (#6326)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-14 09:33:51 +01:00
renovate[bot]
cb45649d8c fix(deps): update dependency androidx.compose:compose-bom to v2026.03.00 (#6329)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-14 09:32:15 +01:00
Benoit Marty
2497a97980 Merge pull request #6343 from element-hq/renovate/sqldelight
fix(deps): update sqldelight to v2.3.1
2026-03-13 19:21:38 +01:00
Benoit Marty
953af00fa2 It seems that SqlDelight v2.3.1 does not like unnecessary file 2026-03-13 18:53:08 +01:00
Benoit Marty
11d72568b7 Fix deeplink_matrixto.sh content, it did not contain a matrix.to link. 2026-03-13 18:16:17 +01:00
Benoit Marty
d82c8ac9db Remove matrix.to intent filter from the AndroidManifest. Closes #6344. 2026-03-13 15:40:45 +01:00
Benoit Marty
4ac56f0a00 Merge pull request #6323 from element-hq/feature/bma/renovateCooldown
Renovate: add a cooldown of 7 days for dependencies that we do not manage
2026-03-13 14:44:05 +01:00