Commit Graph

201 Commits

Author SHA1 Message Date
joel.poyet 4778fe4a98 ci(release): add HealthChat Play Store release pipeline 2026-10-19 08:46:57 +02:00
Sedat Qaja b975611e63 feat(branding): add HealthChat launcher icon and logo
Official cross-in-circle icon (same art as the iOS X app); onboarding
title localized for en/de/fr/it.
2026-10-19 08:46:57 +02:00
Benoit Marty 954eb731e7 Remove unused Gradle dependencies
Remove dependencies flagged as unused by the Dependency Analysis Gradle Plugin
(`./gradlew buildHealth`) and explicitly declared in module build files.

Removals were skipped when the dependency provides transitively something the
module (or a consumer of an `api` dependency) uses directly, as well as for
runtime-only dependencies (element-call-embedded, sentry-android,
rustls-platform-verifier). Dependencies added by the convention plugin helpers
(composeDependencies, testCommonDependencies) are left untouched.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 15:47:48 +02:00
Jorge Martin Espinosa 03fd288c47 Upgrade to rustls-platform-verifier:0.2.0 (#7791)
* Upgrade to `rustls-platform-verifier:0.2.0`.

This re-enables certificate revocation checks, but v0.2.0 contains a list of CRL servers that can be accessed using clear text requests to check the validity of certain certificates, which should fix the issue that prevented us from using certificate revocation and at the same time strengthening the security of the client app.

Since we already had some network configuration in Element X, and `network_security_config.xml` files can't be merged, what we can do is manually download and merge the XML contents using `tools/dependencies/update_rustls_platform_verifier.py` like this:

```sh
./update_rustls_platform_verifier.py 0.2.0
```

It will automatically bump the Gradle dependency and merge the security config entries.

* Bump SDK bindings to `v26.09.28`, containing the rustls bump on the SDK side

* Fix unused resources caused by `app/src/main/res/xml/network_security_config_element.xml`
2026-09-28 15:35:33 +00:00
bxdxnn b772aebf49 Address review 2026-09-15 14:45:26 +00:00
bxdxnn 7191313ce5 Allow changing keystore path 2026-09-12 18:10:53 +00:00
ganfra f72e1ad2cc Support Google Play Services fused location backend 2026-09-07 18:11:38 +02:00
ganfra 7045465ffe Allow BSD-2 clause 2026-09-07 15:25:39 +02:00
Benoit Marty eb8574e042 Remove dependency on shared module.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 10:59:20 +02:00
Jorge Martin Espinosa feef42db5a Fix warning about deprecated Gradle keepRules.file API (#7498)
* Fix warning about deprecated `keepRules.file` API

The proguard files have been moved to `app/proguard` in several directories for `common`, `foss`, and `enterprise` rules and it's those directories that are added through `keepRules.addStaticSourceDirectory(dir)`.

* Use `findPropery` instead of the deprecated `project.properties["key"]` API for `allWarningsAsErrors`

* Remove very legacy .gitignore rule and restore proguard `.keep` rules
2026-08-21 13:23:34 +00:00
Jorge Martin Espinosa 8b2c207728 Move the :libraries:wellknown logic into enterprise modules (#7429)
* Extract `IsEnterpriseBuild` use case

Having it inside `EnterpriseService` made having DI cycles with the `BuildMeta` provider too easy

* Rename `EnterpriseService.defaultHomeserverList()` to `homeserverAllowList()`

This seems more aligned with the way this list works

* Move most of the logic from `:libraries:wellknown` to `:enterprise:feature:enterprise`, both `shared` and `impl` modules

Ideally I would have added everything into `impl`, but some of the classes needed to be shared between the different `:enterprise:features` modules, and those are in the `shared` module, lacking a better name/strategy

* Add `EnterpriseService.isElementProEnforced`

With this, we don't need to provide the `RemoteEnterpriseConfig` anymore to any consumers, everything goes through `EnterpriseService` or other providers

* Remove `EnterpriseService.overriddenElementWellKnown`

This leaks the remote enterprise config/element well known contents to the app in a public interface.

* Create `CustomMapTilerConfigProvider` to avoid leaking the `RemoteEnterpriseConfig` in public APIs

This commit also starts moving some of the well-known related values to the enterprise modules

* Add missing docs to `EnterpriseService` and `SessionEnterpriseService`

* Fix tests

* Fix lint issues

* Bump enterprise module
2026-08-17 13:21:47 +00:00
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
Jorge Martin Espinosa 367995303d Rename OIDC components and variables to OAuth (#6686)
* Rename `OIDC` components and variables to `OAuth`. This matches the new behavior in the SDK.
2026-04-29 11:41:47 +02:00
ganfra 9a984e1423 Merge branch 'develop' into feature/fga/live_location_sharing_setup 2026-03-24 10:17:24 +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
ganfra e8c2790595 Merge branch 'develop' into feature/fga/live_location_sharing_setup 2026-03-12 12:48:55 +01:00
Jorge Martin Espinosa 861f268447 Replace knit with generate_toc.py (#6279) 2026-03-10 09:05:20 +01:00
ganfra 00dc289e93 Add maplibre-compose to gradle catalog 2026-03-09 20:54:01 +01:00
Jorge Martin Espinosa 9509121ffe Remove obfuscation in proguard (#6067)
* Remove obfuscation in proguard for the OSS app. Fully allow it by default for enterprise ones.

* Add logic to use additional customizable proguard files depending on whether the build is an enterprise one or not.
2026-01-23 16:39:11 +01:00
Benoit Marty 0b62a4a7f9 Add a way to configure value of android.packaging.jniLibs.useLegacyPackaging from command line. 2025-12-08 09:54:01 +01:00
renovate[bot] 539aa35eeb fix(deps): update android.gradle.plugin to v8.13.1 (#5260)
* fix(deps): update android.gradle.plugin to v8.13.1

* Remove warning about AGP 8.12.x+

* Fix proguard-related code deprecations, use the new `optimization` API

* Workaround issues related to Android lint not being able to check these complex methods with kotlin contracts

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-11-26 11:57:22 +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 844e1d2ce5 Let the enterprise build be able to update the colors. 2025-10-15 11:25:58 +02:00
renovate[bot] bbf78b82b1 fix(deps): update dependency com.squareup.okhttp3:okhttp-bom to v5.2.1 (#5524)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-13 10:30:06 +00:00
Benoit Marty a575019760 Use DependencyHandlerScope.testCommonDependencies() 2025-09-16 14:38:31 +02:00
Jorge Martín 6a05e1b911 Improve the fix for push notifications and MessagingReceiver being unknown to the DI 2025-09-04 16:49:21 +02:00
Jorge Martín badd8aa8a1 Fix push notification bindings 2025-09-04 16:49:21 +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 0927a502f5 Do not let default enterprise impl module be implemented for enterprise build. 2025-09-04 13:33:37 +02:00
Benoit Marty 63fa915dd9 Improve log to see the build type. 2025-09-04 12:40:25 +02:00
Benoit Marty 4e5bbaf946 Split module deeplink to api and impl. 2025-08-25 11:36:42 +02:00
Jorge Martin Espinosa 1a335698c0 Force last owner of a room to pass ownership when leaving (#5094)
* Move `ChangeRoles*` classes to their own module so they can be shared

* Hook the change roles screen to the leave room action, add confirmation dialogs

* Use enum instead of sealed interface for `ChangeRoomMemberRolesListType`

* Try to improve communications between nodes

* refactor (leave room) : makes sure to expose only necessary code from api module

* Add `:libraries:previewutils` module to share some test fixtures used for UI previews

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: ganfra <francoisg@matrix.org>
2025-08-05 17:24:14 +02:00
Benoit Marty 61075c7a9b Update UnifiedPush library (#4358)
* Upgrade `com.github.UnifiedPush:android-connector` from 2.4.0 to 3.0.4

* Do not use jitpack to get the unified push library

* implementation is ok

* Exclude com.google.crypto.tink to fix a compilation issue

* Fix tests.

* Update log.

* Revert "Exclude com.google.crypto.tink to fix a compilation issue"

This reverts commit f431ebe3b78a06282e0ee74c9f428702d463df45.

* Fix compilation issue after rebase.

* Exclude com.google.crypto.tink again.

* Try version 3.0.8

* Use latest version 3.0.9

* Replace tink exclusion with dependency resolution

---------

Co-authored-by: Jorge Martín <jorgem@element.io>
2025-05-26 14:56:54 +02:00
Benoit Marty c61ee59528 Improve the callback uri format and customization. (#4664)
* Remove unused SUPPORT_EMAIL_ADDRESS

* Improve the callback uri format and customization.

Use io.element.android for the scheme of Oidc redirection for Element X.
For nightly the scheme will be io.element.android.nightly
For debug the scheme will be  io.element.android.debug

Element Pro is using `io.element`
2025-05-05 17:46:17 +02:00
Benoit Marty e3960e78da Upate datastore to 1.1.4 (#4551)
* datastore 1.1.4

* Allow license "BSD-3-Clause"

Fixes:
ERROR: SPDX identifier 'BSD-3-Clause' is NOT allowed

* I cannot repro the issue
2025-04-14 14:59:19 +00:00
Benoit Marty d75b249bd7 Use handy buildConfigFieldStr. (#4501) 2025-03-28 16:54:16 +01:00
Benoit Marty f3a64a1ba8 Log tha packageId which is currently built. (#4494) 2025-03-28 12:58:10 +01:00
renovate[bot] 03f4122b3f fix(deps): update android.gradle.plugin to v8.9.1 (#4465)
* fix(deps): update android.gradle.plugin to v8.9.1

* Fix AAB issues and AGP deprecations

* Fix `importSupportedLocalesFromLocalazy` to format `en-US` locale properly

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-03-25 18:18:02 +01:00
Benoit Marty 36232fae52 Explicitly import com.google.firebase.appdistribution.gradle.firebaseAppDistribution.
This is fixing this issue reported by lint:
~/app/build.gradle.kts:133: Error: This does not resolve to the right method; you need to explicitly add import com.google.firebase.appdistribution.gradle.firebaseAppDistribution to this file! [WrongGradleMethod]
            firebaseAppDistribution {
            ~~~~~~~~~~~~~~~~~~~~~~~
2025-03-12 14:50:25 +01:00
Benoit Marty e5ed0a0641 Move build parameters to a common file 2025-02-20 17:58:41 +01:00
Benoit Marty 7b5481fbcd Ignore dependency that are not third-party licenses to us. 2025-01-07 17:29:16 +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
Benoit Marty 4f60ee2eb2 Fix warning in Versions.kt: const and naming convention. 2024-10-31 09:28:03 +01:00
renovate[bot] d371c49fad Update wysiwyg to v2.37.13 (#3596)
* Update wysiwyg to v2.37.13

* Update licenses to include AGPL3 and remove unused ones

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2024-10-04 14:49:39 +00:00
Benoit Marty 1e91e8b356 Fix building the app using a local SDK.
Inject `AnalyticsService` instead of `UtdTracker` since `UtdTracker` requires access to `org.matrix.rustcomponents.sdk.UnableToDecryptDelegate`
2024-10-04 12:01:30 +02:00
Jorge Martin Espinosa f8fa218146 Upgrade the used JDK in the project to v21 (#3582)
* Upgrade the used JDK in the project to v21

* Use it for CI too

* Centralise java language version

* Fix deprecations, tests and lint issues

* Fix coverage taking into account `@Preview` annotated code.

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2024-10-03 09:38:03 +00:00