element-x-ada/libraries
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
..
accountselect
androidutils
architecture
audio
compound Update screenshots 2026-03-02 12:19:18 +00:00
core
cryptography
dateformatter
deeplink
designsystem Remove ComposerAlertLevel.Default (not in the design). 2026-03-02 13:56:08 +01:00
di
encrypted-db
eventformatter
featureflag
fullscreenintent
indicator
maplibre-compose
matrix Simplify push notification flow by using locally stored values for pending pushes (#6258) 2026-03-03 15:14:36 +00:00
matrixmedia Apply suggestion: 2026-02-27 09:52:17 +01:00
matrixui
mediapickers
mediaplayer
mediaupload Remove all video metadata (#6224) 2026-02-18 16:51:44 +00:00
mediaviewer Merge pull request #6035 from element-hq/fix/remove-fragment-part-in-mxc-urls 2026-03-03 11:57:49 +01:00
network
oidc
permissions Update metro to v0.11.2 (#6270) 2026-03-03 13:39:43 +01:00
preferences
previewutils
push Simplify push notification flow by using locally stored values for pending pushes (#6258) 2026-03-03 15:14:36 +00:00
pushproviders Update metro to v0.11.2 (#6270) 2026-03-03 13:39:43 +01:00
pushstore
qrcode
recentemojis
roomselect
rustsdk
session-storage Simplify push notification flow by using locally stored values for pending pushes (#6258) 2026-03-03 15:14:36 +00:00
testtags
textcomposer Sync compound tokens https://github.com/element-hq/compound-design-tokens/releases/tag/v6.10.1 (#6273) 2026-03-03 14:42:27 +01:00
troubleshoot Update metro to v0.11.2 (#6270) 2026-03-03 13:39:43 +01:00
ui-common
ui-strings Sync Strings from Localazy (#6269) 2026-03-02 14:54:50 +01:00
ui-utils
usersearch
voiceplayer Apply suggestion: 2026-02-27 09:52:17 +01:00
voicerecorder
wellknown
workmanager Simplify push notification flow by using locally stored values for pending pushes (#6258) 2026-03-03 15:14:36 +00:00