Commit graph

5723 commits

Author SHA1 Message Date
ganfra
3629efb0a0 Remove hardcoded strings 2026-03-24 11:22:51 +01:00
ganfra
1c5037f6e2 Add localazy config for location sharing 2026-03-24 11:13:40 +01:00
ganfra
9a984e1423 Merge branch 'develop' into feature/fga/live_location_sharing_setup 2026-03-24 10:17:24 +01:00
ganfra
dee8ce27e7 Use formatter for LLS duration 2026-03-24 10:15:25 +01:00
ElementBot
7179ca867c
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
1901df0154
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
Jorge Martin Espinosa
eb7d65263a
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
054b7302f1
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
027da263c4
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
800a9ab972
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
ganfra
6507a2e8cb fix padding on map when gesture navigation is on 2026-03-20 18:15:44 +01:00
renovate[bot]
0c8a01d2cf
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
139d75d1ba
Fix room member not tappable in a Thread (#6416) 2026-03-19 14:23:10 +01:00
Jorge Martin Espinosa
8e46e68630
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
22fe561e7d Sync strings. 2026-03-16 17:36:13 +01:00
Benoit Marty
7fc93aec15 canEnterRecoveryKey -> canUseRecoveryKey 2026-03-16 17:21:19 +01:00
Benoit Marty
faa97ff2f1 Update wording from "Enter recovery key" to "Use recovery key" 2026-03-16 17:19:49 +01:00
Benoit Marty
13578aa09b Sync string again. 2026-03-16 14:54:06 +01:00
Benoit Marty
67eaab31d0
Fix issue in pattern 2026-03-16 10:32:33 +01:00
bmarty
299d5a9394 Sync Strings from Localazy 2026-03-16 00:42:32 +00:00
ganfra
54779960bf Simplify ShowLocationState 2026-03-13 18:41:32 +01:00
ganfra
881d0900a1 Use localized string instead of hardcoded 2026-03-13 18:41:13 +01:00
ganfra
4a29fe4d94 Remove duplicate location content and reorder Live mode 2026-03-13 15:50:33 +01:00
ganfra
4fe83aab66 Fix stability 2026-03-13 15:48:56 +01:00
ganfra
b6bbe372be Fix wrong dependency 2026-03-13 15:08:17 +01:00
ganfra
5a40144a24 Fix some existing tests after changes 2026-03-13 10:18:28 +01:00
ganfra
ccc5945e6f Fix quality! 2026-03-12 21:12:52 +01:00
ganfra
e3b03165e4 Remove hardcoded string 2026-03-12 15:58:27 +01:00
ganfra
e8c2790595 Merge branch 'develop' into feature/fga/live_location_sharing_setup 2026-03-12 12:48:55 +01:00
ganfra
347bb627d9 Rename ShowLocationEvents -> ShowLocationEvent 2026-03-12 12:47:52 +01:00
ganfra
d10c3db79e Disable live location sharing for now (nothing done) 2026-03-12 12:40:10 +01:00
ganfra
96147967ac Code cleanup 2026-03-12 12:35:46 +01:00
ganfra
de304a7d55 Fix and add tests related to location 2026-03-12 12:31:51 +01:00
ganfra
e8308d9d8e Add Constraints check for permissions and GPS check 2026-03-12 11:53:36 +01:00
ganfra
a56ecb9c69 Set LocationShareRow max lines to Text components 2026-03-12 10:29:20 +01:00
ganfra
50cf8a6986 Make sure zoom is at least DEFAULT_ZOOM when following user position 2026-03-12 10:28:36 +01:00
Benoit Marty
6a646550c8 Improve preview by adding a background color. 2026-03-11 15:43:15 +01:00
Benoit Marty
f97c61a386 Iterate on file attachment rendering in the timeline. Closes #6319 2026-03-11 15:30:15 +01:00
ganfra
92cb2ccb95 Fix previews 2026-03-10 21:48:54 +01:00
ganfra
a5f574888f Check location is enabled 2026-03-10 21:48:37 +01:00
Jorge Martin Espinosa
912b9168fd
Add network constraints for fetching notifications with WorkManager (#6305)
* Add `isNetworkBlocked` and `isInAirGappedEnvironment` to `NetworkMonitor`.

* Improve the DI of `SyncPendingNotificationsRequestBuilder` to simplify its usage.

* Only update `isInAirGappedEnvironment` in `DefaultNetworkManager` if the current build is an enterprise one.

* Add network constraints to `DefaultSyncPendingNotificationsRequestBuilder` based on the air-gapped status.

* Add a feature flag to disable the new check, in case it doesn't work as expected.
2026-03-10 12:44:31 +00:00
ganfra
0056a3f163 Fix compilation 2026-03-09 21:19:57 +01:00
ganfra
7575d78d86 Start implementing location shares sheet content 2026-03-09 20:54:02 +01:00
ganfra
4a271f339a Start cleaning up location code 2026-03-09 20:54:02 +01:00
ganfra
09382530a3 Use android.graphic.canvas to create proper bitmap 2026-03-09 20:54:02 +01:00
ganfra
5f16a5658b LocationPin : disable hardware rendering if needed 2026-03-09 20:54:02 +01:00
ganfra
785587911b Introduce LocationPinMarkers composable 2026-03-09 20:54:02 +01:00
ganfra
f2d4ffc5bd Introduce LiveLocationContent for the timeline (needs sdk) 2026-03-09 20:54:01 +01:00
ganfra
57885f449b Start using LocationPinMarker in Share and Show locations 2026-03-09 20:54:01 +01:00
ganfra
818b32713e Add current user to ShareLocationState 2026-03-09 20:54:01 +01:00