* Remove Roborazzi, use Paparazzi for Compound
The new screenshots will be recorded with the rest of the Paparazzi ones. Note the names changed, since Paparazzi enforces a `$packagename.$testname.$name.$extension` format
* Set a max width value for color previews
* Merge the `verifyPaparazziDebug` CI steps
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Add linear animation to voice message playback progress
Instead of animating the small `progress` value changes, calculate an animation for the range `maxProgress - progress`, with a linear interpolator so it's completely smooth. Previously, the progress was updated in 'steps' that were quite noticeable.
* Added HTML parser to abstract tree nodes
* Add HTML renderer using `HtmlMessageContent`
* Add custom rendering for inline code nodes besides the monospace font
* Support `<s>` and `<strike>` too
* Add `ContentAvoidingLayoutData` support
* Improve the last block node behaviour and its integration with `ContentAvoidingLayout`
* Move `ContentAvoidingLayout` to `:libraries:ui-common` so it can be shared
* Add missing `:libraries:htmlrenderer:impl` entry in `DependencyHandlerScope.allLibrariesImpl`
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Use a patched fork of Konsist
The patch contains code to ignore hidden folders in the root project: by default, Konsist scans *every single file* in the root directory except for a few exceptions, and hidden folders were not a part of that.
That means `.git`, `.github`, etc. would be scanned to for no good reason and even worse, hidden folders used for worktrees would get scanned too, so Konsist would end up scanning the same project with small variations several times and OOMing / taking ages to finish.
* Make `Immutable/Stable` annotation check more performant. Also, fix case that was previously not found
detekt's default configuration excludes test source sets from
`TooManyFunctions` and `StringLiteralDuplication`, but not from
`LargeClass`, so large test classes were reported and had to carry a
`@Suppress("LargeClass")` annotation.
Add the same kind of exclusion to the `LargeClass` rule in
`tools/detekt/detekt.yml` and remove the 24 now-redundant suppressions
from test files. The two remaining suppressions are in production code,
where the rule still applies.
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* Set `maxParallelForks = 1` for most tests, except for screenshot ones
It turns out the Robolectric setup penalty compounds the more parallel JVMs you spawn. Using 1 JVM vs 8 was up to 2.5x faster in local tests.
* Split the roborazzi tests tasks config and CI step
Point to the enterprise submodule rebased on main, which brings the X.509
feature, and resolves the MdmData conflict between the new UseX509 entry and
the split of AccountProvider into AccountProviderServerName,
AccountProviderManagedBaseUrl and AccountProviderManagedCanUseServerName.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>