Like minSdk but additionally returns the human-readable label of
the pattern that matched. Used by doctor to keep its report aligned
with the generation pipeline's actual detection logic.
Returns true if the adaptive icon background should be treated as an
image file (vs a hex color literal). Anything that isn't a hex color
literal is treated as a file path, supporting .png, .jpg, .jpeg,
.webp, and any other extension the decoder accepts. The old
endsWith('.png') check mis-routed non-PNG paths into colors.xml,
breaking mergeDebugResources (upstream #616/#617/#665).
(NOTE THIS IS JUST USED FOR UNIT TEST)
Ensures the correct path is used for generating adaptive icons
"Next you must create alternative drawable resources in your app for use with
Android 8.0 (API level 26) in res/mipmap-anydpi/ic_launcher.xml"
Source: https://developer.android.com/develop/ui/views/launch/icon_design_adaptive
True if the value is a hex color literal (#RGB, #RRGGBB, #AARRGGBB,
unhashed forms, etc). Delegates to utils.isHexColorLiteral so the writer
and the config model classify colors identically.
Rejects vector-drawable (.xml) sources for adaptive foreground / monochrome
with a clear, actionable error. The image pipeline cannot rasterize XML
drawables; the previous behavior was an opaque getter 'width' was called on null deep inside the image package.