Commit graph

37 commits

Author SHA1 Message Date
Jorge Martin Espinosa
96e2f882a2 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
1292da2a72 Copyright: Add Element Creations Ltd. copyright 2025-11-10 11:05:05 +01:00
Benoit Marty
b748fcc631 Copyright: Add final period 2025-11-10 10:13:41 +01:00
Benoit Marty
0a0224b586 Copyright: run command uv run license-editor --repository ../element-x-android 2025-11-10 10:09:26 +01:00
Benoit Marty
c4d7d42141 Add notification troubleshoot test about blocked users. 2025-09-23 08:59:40 +02:00
Benoit Marty
629fc552e5 Use DependencyHandlerScope.testCommonDependencies() 2025-09-16 14:38:31 +02:00
Jorge Martín
dca1c5b516 Remove dagger and anvil dependencies, try to simplify gradle build scripts a bit 2025-09-04 16:49:21 +02:00
Jorge Martín
e06bacbff3 Redo DI gradle setup code 2025-09-04 16:49:20 +02:00
Benoit Marty
5f223f3c89 Refactor: Move InMemorySessionStore to test module
- Delete `libraries/session-storage/impl-memory` module
- Move `InMemorySessionStore.kt` to `libraries/session-storage/test`
2025-09-01 14:47:42 +02:00
ganfra
880f1e0134 deps (firebase) : bom >= 34.0.0 doesn't have ktx module anymore 2025-07-22 18:23:42 +02:00
Benoit Marty
2dfa1ab64d Merge branch 'develop' into feature/bma/customPushGateway 2025-03-13 11:39:47 +01:00
Jorge Martin Espinosa
e3dcb683b8 Fix warnings in tests for push provider modules (#4398) 2025-03-12 17:36:31 +01:00
Benoit Marty
cd48d051a8 Give ability to configure the Firebase push gateway. 2025-03-12 16:50:46 +01:00
Benoit Marty
c9890d3073 Move build parameters to a common file 2025-02-20 17:58:41 +01:00
Benoit Marty
05fc76822a Apply dual licenses: AGPL + Element Commercial to file headers.
2 replace all actions have been performed:
- "SPDX-License-Identifier: AGPL-3.0-only" to "SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial"
- "Please see LICENSE in the repository root for full details." to "Please see LICENSE files in the repository root for full details."
2025-01-07 10:05:04 +01:00
Jorge Martin Espinosa
2efdb3ae45 Centralise the DI code generation logic (#3562)
* Create Anvil extension helper

* Use the helper everywhere
2024-09-30 12:20:28 +00:00
Benoit Marty
2b016227e9 Migrate license to AGPL.
Run script `uv run license-editor --repository ../element-x-android`
2024-09-06 17:19:19 +02:00
Jorge Martín
7bbcc90cab Try removing isMinified instead. This should now be controlled at the app module level. 2024-08-11 12:32:28 +02:00
Jorge Martín
e9d8ba1177 Add proguard file for firebase for release variant too 2024-08-11 10:23:22 +02:00
Jorge Martín
e56c64cb10 Try fixing proguard config for nightly builds 2024-08-11 09:55:24 +02:00
renovate[bot]
9b061ca798 Update android.gradle.plugin to v8.5.2 (#3004)
* Update android.gradle.plugin

* Fix release builds with AGP 8.5 by removing the minification config in each library module. I believe this is now centralised.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2024-08-09 15:04:10 +02:00
Benoit Marty
04fbe6831c Move google_app_id from resource file to build.gradle.kts file and use different values for enterprise build. 2024-07-02 16:32:47 +02:00
ganfra
6d4d9db8a1 Sending queue : fix more tests. 2024-06-13 10:27:57 +02:00
Benoit Marty
c0fccae12e Add test on VectorFirebaseMessagingService 2024-05-22 17:57:35 +02:00
Benoit Marty
a6dd7b4c18 Add test for FirebasePushProvider 2024-05-22 11:27:20 +02:00
Benoit Marty
7945297a28 Create dedicated module for notification troubleshoot. 2024-04-02 18:12:36 +02:00
Benoit Marty
a3253bbe5c Localize Troubleshoot notification feature. 2024-04-02 16:15:04 +02:00
Benoit Marty
8588ce7a72 Troubleshoot notifications screen 2024-04-02 16:15:00 +02:00
Benoit Marty
564d38d7a5 Fix R8 error, due to exclusion of analytics group done in #1221. 2023-09-06 08:58:32 +02:00
Benoit Marty
d1156eca76 Exclude some groups related to analytics to be included. #1191 2023-09-04 15:59:01 +02:00
Yoan Pintas
d2263372d2 Init analytics modules (#350) 2023-06-05 13:11:34 +00:00
Jorge Martin Espinosa
afd58f1634 Update Gradle to 8.1 and AGP to v8.0 (#329)
* Update AGP to 8.0.0.

* Set JAVA_HOME to JDK17

* Update lint version.

* Use right JDK for dependency analysis, replace deprecated env var.

* Upgrade to Gradle 8.1.

* Remove `@Supress(DSL_SCOPE_VIOLATION)` as it's no longer needed.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-17 08:49:52 +00:00
Benoit Marty
e9fa854143 Fix issue with lint. 2023-04-12 11:15:47 +02:00
Benoit Marty
245c46c8b8 Cleanup 2023-04-12 10:06:11 +02:00
Benoit Marty
f4e4be7479 Improve asXId and make tests pass in release and debug mode. 2023-04-12 09:50:04 +02:00
Benoit Marty
95bafe4059 UnifiedPush WIP 2023-04-12 09:49:23 +02:00
Benoit Marty
219b97eea7 Split push module into several modules: Firebase, UnifiedPush, store 2023-04-12 09:48:56 +02:00