* First attempt at implementing encrypted history banner and removing old UTDs
* Get the right behavior in the timeline
* Implement the designs
* Extract post-processing logic, add tests
* Add encryption banner to timeline screenshots
* Create FTUE feature to handle welcome screen and analytics
* Move classes to their own packages, add tests for `DefaultFtueState`.
* Remove unnecessary private MutableStateFlow
* Move some FTUE related methods and classes back to the `impl` module
* Handle back press at each FTUE step
* Remove unneeded `TestScope` receiver for `createState` in tests.
* Use light & dark previews for the banner view.
* Move color customization from `TextStyle` to `Text` component.
* Rename `InfoList` design components, use them in `AnalyticsOptInView` too.
* Cleanup MatrixClient.
* Fix copy&paste error
Co-authored-by: Benoit Marty <benoit@matrix.org>
* Fix typo
* Fix Maestro tests
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
* Disable Paparazzi tasks when Kover is running.
It allows us to split the test jobs between unit tests, screenshot test and coverage reports.
* Move Sonar upload to the quality workflow, since we have no lint info in tests.
* Try to improve 'Tests' CI job times
* Remove `-Pci-build=true` for jobs where the debug mode can be explicitly used
* Add some more excluded `*State` values for kover
* Run paparazzi verification at the same time as Kover tasks, otherwise the coverage is lost.
Drop from 90% to 85% to allow for smaller presenters where the
number of untestable instructions generated by kotlin/compose
can reach ~10% of the entire file.
* Fix displaying reaction row in message action list
* Rename `sendState` to `localSendState` and make it nullable.
Create an `isRemote` helper to detect if an event comes from the server instead.
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Use member count instead of counting members
For the room details screen, use the member count as supplied by
matrix instead of waiting for the entire member list to be
retrieved and then manually adding up all the relevant users.
This removes the loading state of the member count, relying on
a spinner on the member list itself if the user actually wants
to see the members. (The performance of that will be improved
separately on the rust side in the future)
Closes#505
* 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>
* Add consumer proguard rules for SQLCipher
* Add changelog
* Explain why these rules are necessary
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
* Try to switch to a supported version of Compose Rules to avoid dependency issues
---------
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>