Commit Graph

6016 Commits

Author SHA1 Message Date
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
Timur Gilfanov a96c146d30 Introduce "Black" theme and refactor theme handling
* Add `Theme.Black` to the `Theme` enum and update `isDark()` to include it.
* Refactor `ElementTheme` to accept a `Theme` object instead of a `darkTheme` boolean, allowing for more specific color mapping (e.g., setting `bgCanvasDefault` to `Color.Black` for the Black theme).
* Update `AdvancedSettingsPresenter` and `AdvancedSettingsState` to include "Black" as a user-selectable theme option.
* Adjust `ElementThemeApp` and `MaterialTextPreview` to handle the expanded theme selection.
* Add `ElementPreviewBlack` and update existing preview components to support the new theme.
* Update Konsist tests to ensure `@PreviewsDayNight` annotated functions don't have "BlackPreview" suffix.
2026-03-23 15:26:16 +04: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
ganfra 05d10c3403 Fix MapBottomSheetScaffold paddings 2026-03-09 20:54:01 +01:00
ganfra 270fbe3744 Use ListItem.onClick method 2026-03-09 20:54:01 +01:00
ganfra ffad69b7b9 Make sure we can display both Live and Static locations in ShowLocation 2026-03-09 20:54:01 +01:00
ganfra e1e7c264ed Raname UserLocation to UserLocationPuck 2026-03-09 20:54:01 +01:00
ganfra aa55a3aae7 First iteration using maplibre-compose 2026-03-09 20:54:01 +01:00
ganfra 268d2e587e Location accuracy should be nullable 2026-03-09 20:54:01 +01:00
ganfra 4e2ba3c1d9 Allow picking duration for the live location share 2026-03-09 20:54:01 +01:00