Commit Graph

5072 Commits

Author SHA1 Message Date
Benoit Marty b2d6e8ccca 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
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 2141795d59 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
Jorge Martin Espinosa e79d9b627e 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 13578aa09b Sync string again. 2026-03-16 14:54:06 +01:00
renovate[bot] a3ca0deb9d 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
bmarty 299d5a9394 Sync Strings from Localazy 2026-03-16 00:42:32 +00:00
Benoit Marty 9dfd0aad3b It seems that SqlDelight v2.3.1 does not like unnecessary file 2026-03-13 18:53:08 +01:00
Benoit Marty d419508b3f Iterate on the send button colors. Fixes #6312 2026-03-10 17:10:15 +01:00
Andy Balaam b6a679ccf7 Call the new recoverAndFixBackup method to fix key storage if it's broken 2026-03-10 14:49:34 +00: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
Benoit Marty 1e85c02a59 Merge pull request #6307 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-26.x
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v26.03.09
2026-03-10 12:11:45 +01:00
Jorge Martin Espinosa 168470f18d Try fixing index OOB issues in Editable.checkSuggestionNeeded (#6303)
- Fix the case where the order for `start` and `end` is reversed.
- Fix the case where `start` or `end` may be outside the editable's range (`0..length`).
2026-03-10 08:20:02 +01:00
Benoit Marty 2333edb2ad Fix API break. 2026-03-09 21:27:28 +01:00
Valere Fedronic 95049849cc Merge branch 'develop' into valere/rtc/voice_call 2026-03-09 17:18:55 +01:00
ElementBot 73961b4940 Sync Strings (#6302)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-03-09 10:38:07 +01:00
Benoit Marty 53231cda14 Merge pull request #6292 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-26.x
Update dependency org.matrix.rustcomponents:sdk-android to v26.03.6
2026-03-06 16:38:30 +01:00
Jorge Martin Espinosa 2cfb7bfe55 Fix read receipts not appearing in threaded timelines (#6297) 2026-03-06 15:13:13 +00:00
Jorge Martin Espinosa e821f75a88 Add code to help debugging the saved nav state graph (#6295)
* Add code to help debugging the saved nav state graph: this would help us diagnose the `TransactionTooLargeException` reports we've been seeing for months.
2026-03-06 14:44:30 +00:00
Benoit Marty c78038d5ad Add missing case for LiveLocation sharing. 2026-03-06 14:45:52 +01:00
Valere 14cea294bb Merge branch 'develop' into valere/rtc/voice_call 2026-03-06 12:22:28 +01:00
Valere bad6085fb2 review: consistency use isAudioCall everywhere (instead of voiceOnly) 2026-03-06 12:19:05 +01:00
Benoit Marty 62cc23be22 Merge pull request #6284 from timurgilfanov/fix-6232
Fix typed text becoming invisible when composing long messages
2026-03-05 17:31:04 +01:00
Valere 874311011a fix tests 2026-03-05 12:14:42 +01:00
Timur Gilfanov aeb42f72ca Merge branch 'develop' into fix-6232 2026-03-05 13:34:09 +04:00
Valere 7897101009 fix test for voice call button 2026-03-05 10:09:10 +01:00
Timur Gilfanov a8d6baee8c Fix Markdown text input losing scroll position while typing 2026-03-05 10:43:31 +04:00
Valere f81f79f79a fix tests 2026-03-04 19:07:53 +01:00
Benoit Marty c97bf08008 Rename our classes too. 2026-03-04 17:41:44 +01:00
Benoit Marty 5ac8d40ffe Fix API break. 2026-03-04 17:12:25 +01:00
Valere 0e3722e52e Merge branch 'develop' into valere/rtc/voice_call 2026-03-04 13:46:54 +01:00
Valere be370911d2 rename voiceIntent to isAudioCall 2026-03-04 11:10:40 +01:00
Valere 7ef43abd57 Support incoming audio only calls 2026-03-04 08:56:33 +01:00
Jorge Martin Espinosa 68023b5c74 Simplify push notification flow by using locally stored values for pending pushes (#6258)
* Create `PushRequest` in push history DB: this will be used to store requests for push notifications, either pending or completed ones.

* Rename `WorkManagerRequest` to `WorkManagerRequestBuilder`: make its `build` method return a list of `WorkManagerRequestWrapper`, which can be used to enqueue normal or unique workers.

* Rename `PerformDatabaseVacuumRequestBuilder` and adapt it to the new API.

* Adjust other components using `WorkManagerRequest`.

* Replace `SyncNotificationWorkManagerRequestBuilder` with `SyncPendingNotificationsRequestBuilder` and `FetchNotificationsWorker` with `FetchPendingNotificationsWorker`: this new pair of request builder and worker allow enqueuing requests for a session id and, once the worker runs, retrieve all the pending request data and use it to fetch the associated events. This simplifies quite a bit how this data had to be passed or grouped, since it's no longer necessary to do so

* Add new methods to `PushHistoryService` to modify the `PushDatabase`:

- insertOrUpdatePushRequest
- insertOrUpdatePushRequests
- getPendingPushRequests
- removeOldPushRequests

* Make `PushHandler` just handle incoming pushes: those will be inserted into the pending push request table in DB, then handled by the new worker. Once the process finished, a new `NotificationResultProcessor` will handle the results and what needs to be done with them (call ringing, displaying notifications, etc.)

* Add `requestType` optional parameter to `WorkManagerScheduler.cancel` so we can decide to only cancel some kinds of requests.

* Add migration to remove existing work manager requests for fetching notifications, since the previous worker class no longer exists.
2026-03-03 15:14:36 +00:00
Benoit Marty df6ffd0c57 Sync compound tokens https://github.com/element-hq/compound-design-tokens/releases/tag/v6.10.1 (#6273)
* Import compound token v6.10.1

./tools/compound/import_tokens.sh -b v6.10.1

* Use stop icon from Compound.

* Fix compilation issue.

* Use gradient color in ComposerAlertMolecule. Fixes #6192

* Update screenshots

* Remove ComposerAlertLevel.Default (not in the design).

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-03-03 14:42:27 +01:00
renovate[bot] 2b04c4bfc0 Update metro to v0.11.2 (#6270)
* Update metro to v0.11.2

* Bind push tests to the right scope .Add a comment so we don't forget to do it for future ones.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-03-03 13:39:43 +01:00
Jorge Martin Espinosa 8fab22ec7d Make 'room list catch-up' analytics transaction network aware (#6233)
* Make 'room list catch-up' analytics transaction network aware.
* Add `RoomListService.isInitialSyncDone`. Use this to simplify `DefaultAnalyticsRoomListStateWatcher`'s logic.
2026-03-03 13:16:58 +01:00
Benoit Marty b65b9eeab9 Merge pull request #6035 from element-hq/fix/remove-fragment-part-in-mxc-urls
Add `MediaSource.safeUrl` for removing invalid fragment part from URLs
2026-03-03 11:57:49 +01:00
Valere 5491040ac5 WIP: Support using Element Call for voice calls in DMs 2026-03-03 11:50:22 +01:00
Benoit Marty b0bcb248a1 Merge pull request #6241 from element-hq/feature/bma/fixRedactedNotification
Ensure that redacted event from encrypted room does not trigger a fallback notification
2026-03-03 11:43:45 +01:00
ElementBot cf479a8df0 Sync Strings from Localazy (#6269)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-03-02 14:54:50 +01:00
Benoit Marty 9292a8efc7 Remove ComposerAlertLevel.Default (not in the design). 2026-03-02 13:56:08 +01:00
ElementBot 84b946f6d5 Update screenshots 2026-03-02 12:19:18 +00:00
Benoit Marty de9987deea Use gradient color in ComposerAlertMolecule. Fixes #6192 2026-03-02 13:03:47 +01:00
Benoit Marty cc0a9dc907 Fix compilation issue. 2026-03-02 12:44:58 +01:00
Benoit Marty 21aaa98d61 Use stop icon from Compound. 2026-03-02 12:42:45 +01:00
Benoit Marty b27ab2ef0c Import compound token v6.10.1
./tools/compound/import_tokens.sh -b v6.10.1
2026-03-02 12:40:33 +01:00
Benoit Marty 04977f655f Fix API break. 2026-03-02 09:40:42 +01:00
Benoit Marty 8fc9354f77 Fix API break. 2026-03-02 09:18:43 +01:00
Benoit Marty 43319f6e90 Handle EventRedacted case. Fixes #5569 2026-03-02 09:15:53 +01:00