198 Commits

Author SHA1 Message Date
Jorge Martin Espinosa
78c9076281 Fix TransactionTooLargeExceptions caused by Appyx (#6410)
* Fix `TransactionTooLargeExceptions` caused by Appyx

After a long debugging session, we discovered the code Appyx uses to clear the saved state of nodes that have been removed is not working because of a race condition, causing this saved state to grow indefinitely.

To fix it, we need to wait until the node has been disposed, which will call `SaveableStateHolder.removeState` once, removing the associated `SaveableStateRegistry`, and *then* call `removeState` again when we detect the node has been removed from the navigation graph.

Since these classes and APIs are private in Appyx, we had to copy and modify and use these copies.

* Remove ktlint checks on `SafeChildrenTransitionScope.kt`

* Don't count the new code for coverage
2026-03-23 18:07:00 +01:00
Jorge Martin Espinosa
d848ccc148 Replace knit with generate_toc.py (#6279) 2026-03-10 09:05:20 +01:00
renovate[bot]
e1fe8692b7 Update dependency io.nlopez.compose.rules:detekt to v0.5.6 (#6093)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-27 11:14:46 +01:00
renovate[bot]
4195f496f9 fix(deps): update dependency io.nlopez.compose.rules:detekt to v0.5.5 (#6062)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-22 16:31:59 +01:00
renovate[bot]
ccc309bb09 fix(deps): update dependency io.nlopez.compose.rules:detekt to v0.5.4 (#6060)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-22 12:53:28 +01:00
renovate[bot]
f0ff97e4cf fix(deps): update dependency io.nlopez.compose.rules:detekt to v0.5.3 (#5939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 13:13:54 +01:00
renovate[bot]
5c4d11c21f fix(deps): update dependency io.nlopez.compose.rules:detekt to v0.5.2 (#5911)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-17 14:39:10 +01:00
renovate[bot]
effddbb583 fix(deps): update dependency io.nlopez.compose.rules:detekt to v0.5.1 2025-12-04 14:21:35 +00:00
renovate[bot]
75e2eb415e fix(deps): update dependency io.nlopez.compose.rules:detekt to v0.4.28 (#5795)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-24 15:12:57 +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
e17d731ff5 Kotlin way 2025-10-30 14:34:22 +01:00
Benoit Marty
fb9b373d98 Let Renovate upgrade KtLint version.
And move detekt version to quality section.
2025-10-30 14:33:27 +01:00
Benoit Marty
f1c76c196f Use KtLint version 1.7.1 2025-10-30 13:04:26 +01:00
Benoit Marty
b71a7056ec Fix CI on screeshot recording 2025-10-06 11:00:30 +02:00
Benoit Marty
8bc92a2a87 Import Compound tests from project https://github.com/element-hq/compound-android 2025-10-06 10:47:31 +02:00
Benoit Marty
194340b19c Introduce runAndTestState extension on NotificationTroubleshootTest 2025-09-23 09:46:21 +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
renovate[bot]
cbc776ecbb Update dependency io.nlopez.compose.rules:detekt to v0.4.27 (#5123)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 14:41:29 +02:00
renovate[bot]
d3afe9f1e5 Update dependency io.nlopez.compose.rules:detekt to v0.4.26 (#5065)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 12:34:09 +00:00
renovate[bot]
84bf3d71cd Update dependency io.nlopez.compose.rules:detekt to v0.4.25 (#5058)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 12:19:37 +02:00
renovate[bot]
6535c744f8 Update dependency io.nlopez.compose.rules:detekt to v0.4.24 (#5053)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 08:08:12 +02:00
Benoit Marty
a001fa2296 Fix compilation warning for annotations 2025-07-02 12:18:40 +02:00
Jorge Martin Espinosa
58a3ea8b1f Add catchingExceptions method to replace runCatching (#4797)
- Add `runCatchingExceptions` and `mapCatchingExceptions` to replace `runCatching` and `mapCatching`.
- Make `tryOrNull { ... }` catch only exceptions too.
- Apply the changes to the whole project.
- Add new Rust fakes for tests to handle the code that's now unblocked - previously it just threw an `UnsatisfiedLinkError` which we ignored.
- Add a new `detekt-rules` project with a `RunCatchingRule` to prevent `runCatching` and `mapCatching` usages.
2025-06-04 09:02:26 +02:00
Jorge Martin Espinosa
28b8b4539a runQualityChecks task shouldn't fail fast (#4309)
* `runQualityChecks` task shouldn't fail fast

Make sure we run every task it depends on so we get a list with all the issues instead of having to retry several times.

* Tweak `runQualityChecks` to make sure all Android lint tasks run

* Use the right check in the quality flow

* Fix Norwegian translations that caused a `Typos` error
2025-02-26 18:34:15 +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
renovate[bot]
1fb1ff0742 Update dependency io.nlopez.compose.rules:detekt to v0.4.22 2024-12-10 22:31:02 +00:00
Benoit Marty
9628696a9f Exclude non-prod code from quality checks. 2024-11-26 10:29:54 +01:00
renovate[bot]
c577c8c9bf Update dependency io.nlopez.compose.rules:detekt to v0.4.19 2024-11-20 04:25:44 +00:00
renovate[bot]
996b0060c0 Update dependency io.nlopez.compose.rules:detekt to v0.4.18 2024-11-13 04:29:56 +00:00
renovate[bot]
a8aa46bffb Update dependency io.nlopez.compose.rules:detekt to v0.4.17 2024-10-28 12:56:01 +00:00
renovate[bot]
a3a60250e3 Update dependency io.nlopez.compose.rules:detekt to v0.4.16 2024-10-14 14:58:55 +00:00
Jorge Martin Espinosa
e44b5ad98d Upgrade Kotlin to v2.0 (#3594)
* Bump Kotlin to v2.0

* Fix lots of issues due to the upgrade: lint issues, function signature incompatibilities, broken tests, etc.

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2024-10-10 08:32:00 +00:00
renovate[bot]
d67fae8d4c fix(deps): update dependency io.nlopez.compose.rules:detekt to v0.4.15 (#3595)
* Update dependency io.nlopez.compose.rules:detekt to v0.4.15

* Fix new detekt issues

* Fix KtLint

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2024-10-04 16:58:19 +02:00
Jorge Martin Espinosa
4a43fcb69a Use Anvil KSP instead of the Square KAPT one (#3564)
* Use Anvil KSP instead of the Square KAPT one

* Fix several configuration cache, lint and test issues

* Allow incremental kotlin compilation in the CI

* Workaround Robolectric + Compose issue that caused `AppNotIdleException`

* Update the `enterprise` commit hash

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2024-10-02 11:52:17 +00:00
renovate[bot]
3c132df536 Update dependency io.nlopez.compose.rules:detekt to v0.4.12 2024-09-10 10:43:15 +00:00
Benoit Marty
86763762e6 Migrate license to AGPL 2024-09-06 17:45:03 +02:00
Benoit Marty
b9169e6c76 Replace OSS licenses plugin with Licensee and some manually done UI.
This should fix both configuration cache and reproducible F-droid builds.

Cleanup and remove gplay/fdroid diff on open source licenses.

Co-authored by @jmartinesp
2024-09-02 21:11:52 +02:00
renovate[bot]
4e473c9cdd Update dependency io.nlopez.compose.rules:detekt to v0.4.11 2024-08-30 08:29:31 +00:00
renovate[bot]
09f6c9d517 Update dependency io.nlopez.compose.rules:detekt to v0.4.10 2024-08-07 16:50:30 +00:00
renovate[bot]
cb7132a34b Update dependency io.nlopez.compose.rules:detekt to v0.4.9 (#3277)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-07 08:35:37 +02:00
Guillaume
3d6fa5a2f9 Update sonarcloud project key (#3264) 2024-08-02 16:18:09 +02:00
renovate[bot]
69ad8144a2 Update dependency io.nlopez.compose.rules:detekt to v0.4.8 (#3254)
* Update dependency io.nlopez.compose.rules:detekt to v0.4.8

* Fix new lint issues

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2024-07-31 11:08:11 +02:00
Benoit Marty
c2c7f6b755 Add generated screen to show open source licenses.
For Google Play variant only
2024-07-17 15:53:08 +02:00
Jorge Martin Espinosa
950e502ca6 Improve screenshot testing with ComposablePreviewScanner (#3125)
* Use ComposablePreviewScanner to rework how screenshot testing works
* Add test sharding
* Update screenshots
* Fixes for Element Gallery

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2024-07-03 13:05:06 +02:00
renovate[bot]
d68623357c Update dependency io.nlopez.compose.rules:detekt to v0.4.5 2024-07-01 10:21:23 +00:00
renovate[bot]
40d0423597 Update dependency io.nlopez.compose.rules:detekt to v0.4.4 2024-06-06 08:55:38 +00:00
renovate[bot]
b8f3b66d0e Update dependency io.nlopez.compose.rules:detekt to v0.4.3 2024-05-29 08:07:21 +00:00
renovate[bot]
cea03085c3 Update dependency io.nlopez.compose.rules:detekt to v0.3.13 2024-05-17 17:00:04 +02:00
Jorge Martin Espinosa
c316816c06 Fix dependencyAnalysis plugin (#2766)
* Fix dependencyAnalysis plugin.

For some reason the plugin needs to be manually applied to all the libs, otherwise running `./gradlew buildHealth` does nothing.

Also, I had to add it to the convention plugins instead of using the `subprojects { ... }` approach because of the `:libraries:rustsdk` and `:libraries:textcomposer:lib` modules, which aren't proper Java/Kotlin modules.

* Add some extra checks to the dependency analysis plugin
2024-04-29 19:03:04 +02:00