From e60a066c7f242267091989373e33c0f3d711be3d Mon Sep 17 00:00:00 2001 From: Yuri Schimke Date: Sat, 23 Nov 2024 09:46:52 +0000 Subject: [PATCH] Apply suppressions to AccessibilityViewCheckResult This change introduces a new `applySuppressions` function to process suppressions for accessibility check results. It filters results based on suppression rules and adds a new `AccessibilityCheckResultType.SUPPRESSED` type for suppressed results. Additionally, it adds logging for suppressed results. --- .../RoborazziATFAccessibilityChecker.kt | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/roborazzi-accessibility-check/src/main/java/com/github/takahirom/roborazzi/RoborazziATFAccessibilityChecker.kt b/roborazzi-accessibility-check/src/main/java/com/github/takahirom/roborazzi/RoborazziATFAccessibilityChecker.kt index 21114ce2..d4ec7c29 100644 --- a/roborazzi-accessibility-check/src/main/java/com/github/takahirom/roborazzi/RoborazziATFAccessibilityChecker.kt +++ b/roborazzi-accessibility-check/src/main/java/com/github/takahirom/roborazzi/RoborazziATFAccessibilityChecker.kt @@ -175,8 +175,20 @@ data class RoborazziATFAccessibilityChecker( val results = viewChecker.runChecksOnView(ImmutableSet.copyOf(checks), view, parameters) - return results.filter { - !suppressions.matches(it) + return results.applySuppressions(suppressions) + } + + private fun List.applySuppressions( + suppressions: Matcher + ): List { + val ranTypes = listOf( + AccessibilityCheckResultType.ERROR, + AccessibilityCheckResultType.WARNING, + AccessibilityCheckResultType.INFO + ) + + return map { + if (suppressions.matches(it) && ranTypes.contains(it.type)) it.suppressedResultCopy else it } } @@ -191,6 +203,9 @@ data class RoborazziATFAccessibilityChecker( AccessibilityCheckResultType.WARNING -> roborazziErrorLog( "Warning: $check" ) + AccessibilityCheckResultType.SUPPRESSED -> roborazziReportLog( + "Suppressed: $check" + ) AccessibilityCheckResultType.INFO -> roborazziReportLog( "Info: $check"