Commit Graph

5641 Commits

Author SHA1 Message Date
Jorge Martin Espinosa
721add707c 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
a8c66381f2 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
Jorge Martin Espinosa
9c8757e38b Use ShareIntentHandler early to avoid distributing the whole intent (#6274)
* Use `ShareIntentHandler` early to avoid distributing the whole intent

This would make the intent be serialized as part of `NavTarget` and could potentially lead to `TransactionTooLargeException`s.

We now pass a new `ShareIntentData` class around, containing the minimum amount of data needed. We also have a new `OnSharedData` post-processor to revoke uri access after they've been shared.

* Move `UriToShare` next to `ShareIntentData` and add docs
2026-03-03 13:12:33 +00:00
Benoit Marty
1f69958dab 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
Benoit Marty
66c3bf267a 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
5bcaad1e81 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
723cfc77ff Use gradient color in ComposerAlertMolecule. Fixes #6192 2026-03-02 13:03:47 +01:00
Benoit Marty
6e72454c1c Fix API break. 2026-03-02 09:40:42 +01:00
Benoit Marty
c7ba6ce4ed Navigation bar: reduce bottom padding. 2026-02-27 12:04:13 +01:00
Benoit Marty
b84970edc5 Ensure FAB is displayed when navigation bar is not 2026-02-27 12:02:20 +01:00
Jorge Martín
cdd850d4dd Apply suggestion:
- Added `MediaSource.safeUrl` property replacing `withCleanUrl` method.
- Made `url` private so it can't be used externally.
- Reverted code in `CoilMediaFetcher`
- Also add tests
2026-02-27 09:52:17 +01:00
Benoit Marty
8ff21d7b68 Floating toolbar (#6147)
* Use floating toolbar on homepage

* Fix deprecation issue

* Create HorizontalFloatingToolbar wrapper in our components.

* Fix Konsist test.

* Fix compilation issue after rebase.

* Fix lint issue. `floatingActionButton` must be the last parameter.

* Add Preview for the case empty space.

* Fix navigation bar overlapping buttons in empty space view.

* Increase content padding, and apply it to the space tab too.

* Update screenshots

---------

Co-authored-by: chelsea <git@cdhildit.ch>
Co-authored-by: ElementBot <android@element.io>
2026-02-26 14:54:06 +01:00
renovate[bot]
89a6f5a7bf Update metro to v0.11.0 (#6245)
* Update metro to v0.11.0

* Fix `@AssistedInject` usages

Now the injected variables in the factories must match the names in the constructors

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-02-25 16:19:47 +01:00
Benoit Marty
42308f46bd Increase content padding, and apply it to the space tab too. 2026-02-25 15:56:30 +01:00
Benoit Marty
56165b2faf Fix navigation bar overlapping buttons in empty space view. 2026-02-25 15:56:30 +01:00
Benoit Marty
f0f6b92b5e Add Preview for the case empty space. 2026-02-25 15:56:30 +01:00
Benoit Marty
2ccfbec842 Fix lint issue. floatingActionButton must be the last parameter. 2026-02-25 15:56:29 +01:00
Benoit Marty
6665a80f9e Fix compilation issue after rebase. 2026-02-25 15:51:21 +01:00
Benoit Marty
afd7fc51c4 Create HorizontalFloatingToolbar wrapper in our components. 2026-02-25 15:51:20 +01:00
chelsea
b4ee3b1dd6 Use floating toolbar on homepage 2026-02-25 15:51:20 +01:00
Jorge Martin Espinosa
fe4554703c Check if network access if blocked when fetching notifications (#6247)
* Add `NetworkMonitor.isNetworkBlocked()`, use it to check if Doze prevented us from loading notifications

* Only check if network is blocked after checking if we have a network available, otherwise it's always `true`

* Extract `NetworkBlockedChecker` to handle deprecations more carefully
2026-02-25 12:04:07 +00:00
Benoit Marty
a586ed505a Merge pull request #6238 from element-hq/feature/bma/importFromClassic
Ensure that Element X can use the service from Element Classic.
2026-02-24 15:58:16 +01:00
Jorge Martin Espinosa
28c1c078a0 Catch exceptions when setting or clearing an audio communication device in Element Call (#6226) 2026-02-24 13:38:53 +01:00
Benoit Marty
110d0efd86 Fix release build. 2026-02-23 18:13:55 +01:00
Benoit Marty
b9ffe541a0 Fix tests. 2026-02-23 17:32:53 +01:00
Benoit Marty
783585bd01 Merge pull request #6194 from vmfunc/feature/audio-focus-voice-recording
request audio focus when recording voice messages
2026-02-23 13:35:57 +01:00
Benoit Marty
42b17d5704 Ensure that Element X can use the service from Element Classic.
Permission "im.vector.app.READ_DATA" is not necessary anymore.
2026-02-23 12:43:42 +01:00
bmarty
6c81e88689 Sync Strings from Localazy 2026-02-23 00:39:49 +00:00
renovate[bot]
1ce57d811e Update dependency org.matrix.rustcomponents:sdk-android to v26.02.19 (#6229)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.02.19

* Fix breaking API changes: added `isLowPriority` to `RoomInfo` and `RoomSummary`.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-02-20 09:01:07 +01:00
renovate[bot]
bc295b3c97 Update dependency org.matrix.rustcomponents:sdk-android to v26.2.16 (#6211)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.2.16

* Fix log rotation breaking changes. The new values match iOS (https://github.com/element-hq/element-x-ios/pull/5108/)

* Fix `aRustRoomInfo()` test fixture

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-02-17 10:42:31 +01:00
Benoit Marty
c1f3233dce Merge branch 'develop' into feature/bma/notificationCustomSound 2026-02-13 15:48:19 +01:00
Benoit Marty
f9210a3506 Merge pull request #6190 from element-hq/feature/bma/fallbackNotificationCleanup
Fallback notification cleanup
2026-02-12 19:00:39 +01:00
vmfunc
bddc5a63f4 finish recording gracefully when audio focus is lost
if something else grabs focus mid-recording (phone call, etc), stop
the recording and keep the partial result in preview state instead
of silently recording garbage

Signed-off-by: vmfunc <celeste@linux.com>
2026-02-12 18:39:40 +01:00
vmfunc
7bd157f032 add RecordVoiceMessage audio focus requester for recording
separates recording from playback focus - willPausedWhenDucked is false
for recording so notification sounds don't interrupt mid-recording

Signed-off-by: vmfunc <celeste@linux.com>
2026-02-12 18:39:39 +01:00
Benoit Marty
5aae5607f6 Fix test and add a new one. 2026-02-12 18:22:05 +01:00
Benoit Marty
44b13ef82b Fix quality issue 2026-02-12 18:17:13 +01:00
Benoit Marty
c95bbb6d07 Let the call be declined from the notification if the application is killed when the call is ringing. 2026-02-12 17:32:05 +01:00
Benoit Marty
f7b80ca89b Fix documentation 2026-02-12 17:32:05 +01:00
celeste
a0b6b8d93c Merge branch 'develop' into feature/audio-focus-voice-recording 2026-02-12 16:41:38 +01:00
vmfunc
43f729414b request audio focus when recording voice messages
Signed-off-by: vmfunc <celeste@linux.com>
2026-02-12 16:28:37 +01:00
Benoit Marty
55c78cbac0 Incoming call screen: ensure buttons stay grouped in the center of the screen. 2026-02-12 16:01:05 +01:00
Benoit Marty
da6f289e62 Incoming call screen: use color from theme and follow design.
https://www.figma.com/design/0MMNu7cTOzLOlWb7ctTkv3/Element-X?node-id=16501-5740
2026-02-12 15:51:17 +01:00
Benoit Marty
009adb9b88 Merge pull request #6160 from element-hq/feature/bma/sortAudioOutputList
Sort audio device by device type before sending the list to Element Call
2026-02-12 15:12:14 +01:00
Benoit Marty
0368aa8687 Fix warning 2026-02-12 14:28:28 +01:00
Jorge Martin Espinosa
c31bfda23b Fix stack overflow when quickly going back on a Space screen (#6180) 2026-02-11 16:36:04 +00:00
ganfra
6b2819477c Update SpaceFilterButton selected state color 2026-02-11 12:45:54 +01:00
Benoit Marty
6e958f3132 Let enterprise build be able to use a different notification channel for noisy notification. 2026-02-11 11:57:01 +01:00
ganfra
a1a89c02b5 Merge pull request #6171 from element-hq/feature/fga/enable_spaces_ff
Enable space feature flags by default
2026-02-10 21:42:12 +01:00
ganfra
1600d68f4b Fix tests after ff enabled 2026-02-10 21:06:36 +01:00
Benoit Marty
b0a4ce44f0 Merge pull request #6048 from element-hq/renovate/app.cash.paparazzi-2.x
chore(deps): update plugin paparazzi to v2.0.0-alpha04
2026-02-10 16:42:54 +01:00