* 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>
* 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>
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
* 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>
* 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
* Move `Konsist` tests to quality checks
This should also help us avoid running them for every single test task, including Kover.
* Fix upload report path filter
Do not delete the whole screenshots folder, but just delete per language when the screenshots are generated.
Generate the data.js file regarding the existing screenshots, to be able to add languages.
Also the language will be sorted alphabetically (English still first).
And the screenshot will be sorted alphabetically.
Update the script to generate screenshot for specific language on demand.
Need to disable `ktlint_standard:trailing-comma-on-declaration-site` else got this error:
Skipping rule(s) which are depending on a rule which is not loaded. Please check if you need to add additional rule sets before creating an issue.
- Rule with id 'RuleId(value=standard:trailing-comma-on-declaration-site)' requires rule with id 'RuleId(value=standard:wrapping)' to be loaded
* Try to make all collections used in Compose code immutable.
Mark sealed interfaces as `@Immutable` too
* Add gradle code to check the compose compiler reports
* Fix some more unstable classes
* Initial support for member suggestion (search and UI)
* Add custom `BottomSheetScaffold` implementation to workaround several scrolling bugs
* Start searching as soon as `@` is typed, add UI following initial designs
* Extract suggestion processing code
* Extract component, add previews, fix tests
* Add tests
* Add exception from kover to the forked bottom sheet code
* Add a feature flag for mentions
- Extract composer & mention suggestions to their composable.
- Extract mentions suggestions processing to its own class.
- Add `MatrixRoom.canTriggerRoomNotification` function.
- Update strings and conditions for displaying the `@room` mention.
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* Update the chat screen UI using `RoomInfo`.
This is specially useful for getting live values for `hasRoomCall`.
* Ensure the first `MatrixRoomInfo` is emitted ASAP
* Try excluding `*Present$present$*` inner functions from kover as separate entities
* Update strings
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>