Fixed
Status Update
Comments
nj...@google.com <nj...@google.com>
ap...@google.com <ap...@google.com> #2
Thanks for filing the issue.
This is a particularly hard device to come by - do you happen to have access to the device? If so could you provide us with the output of: adb shell dumpsys media.camera > info.txt
Thanks!
This is a particularly hard device to come by - do you happen to have access to the device? If so could you provide us with the output of: adb shell dumpsys media.camera > info.txt
Thanks!
Description
Current incorrect behavior
The link to source code ).
painterResource()
currently only supports inflatingandroid:tint
if it references a simpleCOLOR_INT
resource type, meaning thatColorStateList
s or theme attributes pointing toColorStateList
s are simply ignored (Desired correct behavior
android:tint
should inflate the color state list usingTypedArrayUtils#getNamedColor()
instead, which would default to theColorStateList
's default value (sinceCompose
does not have any understanding of drawable states used withView
s).This behavior would mirror the way that here , which returns a here ).
ColorStateList
s are currently handled in a<path>
'sandroid:fillColor
andandroid:strokeColor
, both of which fallback to theColorStateList
's default color (they inflate usingTypedArrayUtils#getNamedComplexColor()
ComplexColor
wrapper around aColorStateList
. Then when the vector is rendered to the display, a simpleSolidColor
using the color state list's default color is returnedThis would closely mirror the way that source code here ).
VectorDrawableCompat
is inflated, which usesTypedArrayUtils#getNamedColorStateList()
(Reasons for fixing the bug
android:fillColor
andandroid:strokeColor
currently support color state lists butandroid:tint
does not. Ideally they should both be supported if possible.Many teams adopting Compose don't have an Icon solution as elegant as Material's (which generates
ImageVector
s as part of a separate artifact automatically). For example, our team, plans to continue inflating icons from our existing icon library defined in XML resources while adopting Compose, and all of these resources currently declare a default tint color usingandroid:tint
.Version used: Compose v1.0.1