40 Commits

Author SHA1 Message Date
Jorge Martin Espinosa e370b33771 Fix Sonar with AGP 9 (some workarounds) (#7055)
Since it'll try to resolve their output, first they need to complete.
2026-06-19 13:12:54 +02:00
renovate[bot] f0a6cba6db fix(deps): update android.gradle.plugin to v9 (major) (#6021)
* Update android.gradle.plugin to v9

* Separate extensions between app and library ones

`CommonExtension` has been split and its properties are now duplicated in `ApplicationExtension` and `LibraryExtension` without a shared interface, so we now need to duplicate the helper extension functions

* Bump Gradle wrapper to `9.3.1`

* Remove `kotlin-android` plugin usage: it's no longer needed

* Enable `resValues` build feature for the modules that have resources in custom variants like gplay, debug, etc.

Otherwise this now fails saying the resources are there but the feature is disabled

* Remove `retrofit` dependency from `:features:call:impl`

It wasn't in use and the build was failing

* Update kotlin to v2.4.0

* Update plugin paparazzi to v2.0.0-alpha05

* Update gradle wrapper to 9.5.1

./gradlew wrapper --gradle-version 9.5.1 --gradle-distribution-sha256-sum bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f

* Update com.android.tools.build:gradle to 9.2.1

* Update plugin sonarqube to v7.3.1.8318

* Kotlin 2.4.0

* Context parameters are enabled by default in Kotlin 2.4.0

* Fix code issue

* Fix record screenshot issue

* Workaround for https://github.com/cashapp/paparazzi/issues/2342

* Workaround for another issue with Paparazzi

* Remove unused import

* Update screenshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: Benoit Marty <benoitm@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: ElementBot <android@element.io>
2026-06-11 09:51:47 +02:00
Benoit Marty 4d0be69b4c In the module :libraries:matrix.api, change the dependencies to:
- libraries.sessionStorage.api
- projects.libraries.architecture
from `api` to `implementation`.

Modules who need `:libraries:matrix.api` do not necessarily need to use the session storage api.
2026-04-30 09:52:10 +02: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 eb31505dc7 Copyright: Add Element Creations Ltd. copyright 2025-11-10 11:05:05 +01:00
Benoit Marty f86431e663 Copyright: Add final period 2025-11-10 10:13:41 +01:00
Benoit Marty c4e0370f41 Copyright: run command uv run license-editor --repository ../element-x-android 2025-11-10 10:09:26 +01:00
Benoit Marty fa14e4c106 Add notification troubleshoot test about blocked users. 2025-09-23 08:59:40 +02:00
Benoit Marty a575019760 Use DependencyHandlerScope.testCommonDependencies() 2025-09-16 14:38:31 +02:00
Jorge Martín de8de61b2e Remove dagger and anvil dependencies, try to simplify gradle build scripts a bit 2025-09-04 16:49:21 +02:00
Jorge Martín 4ab62a6a38 Redo DI gradle setup code 2025-09-04 16:49:20 +02:00
Benoit Marty 75a640b986 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 1fe347ff1b deps (firebase) : bom >= 34.0.0 doesn't have ktx module anymore 2025-07-22 18:23:42 +02:00
Benoit Marty 5d881e8b05 Merge branch 'develop' into feature/bma/customPushGateway 2025-03-13 11:39:47 +01:00
Jorge Martin Espinosa c3817945d9 Fix warnings in tests for push provider modules (#4398) 2025-03-12 17:36:31 +01:00
Benoit Marty cf60f943a8 Give ability to configure the Firebase push gateway. 2025-03-12 16:50:46 +01:00
Benoit Marty e5ed0a0641 Move build parameters to a common file 2025-02-20 17:58:41 +01:00
Benoit Marty 97f3be3dc5 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 eeec7cc785 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 f61df38e55 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 f9e3a67521 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 43fb47f7af Add proguard file for firebase for release variant too 2024-08-11 10:23:22 +02:00
Jorge Martín 92ec946ef0 Try fixing proguard config for nightly builds 2024-08-11 09:55:24 +02:00
renovate[bot] 738295a933 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 c25cdafff8 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 ccf7efe9b1 Sending queue : fix more tests. 2024-06-13 10:27:57 +02:00
Benoit Marty eafa713995 Add test on VectorFirebaseMessagingService 2024-05-22 17:57:35 +02:00
Benoit Marty 008797285f Add test for FirebasePushProvider 2024-05-22 11:27:20 +02:00
Benoit Marty cb435c523b Create dedicated module for notification troubleshoot. 2024-04-02 18:12:36 +02:00
Benoit Marty 09b2cbaaf5 Localize Troubleshoot notification feature. 2024-04-02 16:15:04 +02:00
Benoit Marty 2bfe125a77 Troubleshoot notifications screen 2024-04-02 16:15:00 +02:00
Benoit Marty ffff48b66e Fix R8 error, due to exclusion of analytics group done in #1221. 2023-09-06 08:58:32 +02:00
Benoit Marty a0ff636d0b Exclude some groups related to analytics to be included. #1191 2023-09-04 15:59:01 +02:00
Yoan Pintas f534ecda96 Init analytics modules (#350) 2023-06-05 13:11:34 +00:00
Jorge Martin Espinosa de010545fb 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 298fa9979a Fix issue with lint. 2023-04-12 11:15:47 +02:00
Benoit Marty 62639c44a7 Cleanup 2023-04-12 10:06:11 +02:00
Benoit Marty eb6276e09d Improve asXId and make tests pass in release and debug mode. 2023-04-12 09:50:04 +02:00
Benoit Marty 287fca5438 UnifiedPush WIP 2023-04-12 09:49:23 +02:00
Benoit Marty 7333995630 Split push module into several modules: Firebase, UnifiedPush, store 2023-04-12 09:48:56 +02:00