Commit graph

198 commits

Author SHA1 Message Date
Jorge Martin Espinosa
3a7faa8b76
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
861f268447
Replace knit with generate_toc.py (#6279) 2026-03-10 09:05:20 +01:00
renovate[bot]
5e39e80ab5
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]
0efae7665f
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]
c8500fdd83
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]
f785e53315
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]
800d06f179
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]
5e57e2cebb
fix(deps): update dependency io.nlopez.compose.rules:detekt to v0.5.1 2025-12-04 14:21:35 +00:00
renovate[bot]
444a61f889
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
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
cd990f5772 Kotlin way 2025-10-30 14:34:22 +01:00
Benoit Marty
d6e11ca07a Let Renovate upgrade KtLint version.
And move detekt version to quality section.
2025-10-30 14:33:27 +01:00
Benoit Marty
2e67c9c757 Use KtLint version 1.7.1 2025-10-30 13:04:26 +01:00
Benoit Marty
11d6e7e289 Fix CI on screeshot recording 2025-10-06 11:00:30 +02:00
Benoit Marty
d4e295807f Import Compound tests from project https://github.com/element-hq/compound-android 2025-10-06 10:47:31 +02:00
Benoit Marty
8d5078904a Introduce runAndTestState extension on NotificationTroubleshootTest 2025-09-23 09:46: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
renovate[bot]
8902e1116e
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]
8947757c4c
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]
08b1286133
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]
a57a5ab65e
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
0a2a6361b6 Fix compilation warning for annotations 2025-07-02 12:18:40 +02:00
Jorge Martin Espinosa
efdc10e60a
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
fe99ec0e22
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
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
renovate[bot]
093a20981a
Update dependency io.nlopez.compose.rules:detekt to v0.4.22 2024-12-10 22:31:02 +00:00
Benoit Marty
1b490488a2 Exclude non-prod code from quality checks. 2024-11-26 10:29:54 +01:00
renovate[bot]
65e394fd29
Update dependency io.nlopez.compose.rules:detekt to v0.4.19 2024-11-20 04:25:44 +00:00
renovate[bot]
ad1db3fd7c
Update dependency io.nlopez.compose.rules:detekt to v0.4.18 2024-11-13 04:29:56 +00:00
renovate[bot]
5822615c65
Update dependency io.nlopez.compose.rules:detekt to v0.4.17 2024-10-28 12:56:01 +00:00
renovate[bot]
921bc37b3c
Update dependency io.nlopez.compose.rules:detekt to v0.4.16 2024-10-14 14:58:55 +00:00
Jorge Martin Espinosa
366db4791b
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]
98d9abecd9
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
79c17f714f
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]
85148f7edc
Update dependency io.nlopez.compose.rules:detekt to v0.4.12 2024-09-10 10:43:15 +00:00
Benoit Marty
9fcf664166 Migrate license to AGPL 2024-09-06 17:45:03 +02:00
Benoit Marty
965e445d04 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]
c8590f65ab
Update dependency io.nlopez.compose.rules:detekt to v0.4.11 2024-08-30 08:29:31 +00:00
renovate[bot]
a7afdcb5a0
Update dependency io.nlopez.compose.rules:detekt to v0.4.10 2024-08-07 16:50:30 +00:00
renovate[bot]
63cc59a5c8
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
b7c498a0a2
Update sonarcloud project key (#3264) 2024-08-02 16:18:09 +02:00
renovate[bot]
6b8dba6bb2
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
766ae389ce Add generated screen to show open source licenses.
For Google Play variant only
2024-07-17 15:53:08 +02:00
Jorge Martin Espinosa
b0cebf5ca0
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]
9ff3ff3497
Update dependency io.nlopez.compose.rules:detekt to v0.4.5 2024-07-01 10:21:23 +00:00
renovate[bot]
2aabb9e7a2
Update dependency io.nlopez.compose.rules:detekt to v0.4.4 2024-06-06 08:55:38 +00:00
renovate[bot]
0ba5537082
Update dependency io.nlopez.compose.rules:detekt to v0.4.3 2024-05-29 08:07:21 +00:00
renovate[bot]
12b51e381e Update dependency io.nlopez.compose.rules:detekt to v0.3.13 2024-05-17 17:00:04 +02:00
Jorge Martin Espinosa
d9c4c189af
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