in lint-checks-android/src/main/java/com/uber/lintchecks/android/ColorResourceUsageDetector.kt [77:99]
override fun visitAttribute(context: XmlContext, attribute: Attr) {
if (COLOR_ATTRIBUTES.contains(attribute.name)) {
attribute.value?.let { attributeVal ->
if (attributeVal.startsWith(PREFIX_COLOR_RESOURCE)) {
if (isInResFolder(context, LAYOUT) && !isColorSelector(context, attributeVal)) {
context.report(ISSUE, context.getLocation(attribute), LINT_ERROR_MESSAGE)
} else if (isInVectorDrawable(attribute)) {
context.report(ISSUE, context.getLocation(attribute), LINT_ERROR_MESSAGE)
} else if (isInResFolder(context, DRAWABLE) &&
!hasQualifiedVersion(context, DRAWABLE, QUALIFIER_V21) &&
!isColorSelector(context, attributeVal)) {
context.report(ISSUE, context.getLocation(attribute), LINT_ERROR_MESSAGE)
}
} else if (attributeVal.startsWith(PREFIX_THEME_ATTR) &&
isInResFolder(context, DRAWABLE) &&
!isInVectorDrawable(attribute) &&
!isAtLeastV21QualifiedVersion(context) &&
context.project.minSdk < LOLLIPOP) {
context.report(ISSUE, context.getLocation(attribute), LINT_ERROR_MESSAGE)
}
}
}
}