override fun visitAttribute()

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)
        }
      }
    }
  }