Fixed
Status Update
Comments
nj...@google.com <nj...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 0154910724cdc44253af1d2f8cede76264783226
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jun 27 15:25:02 2024
Expand native target support for annotation and collection libraries
- Enable watchos and tvos download in importMaven
- Add support for watchos and tvos targets in AndroidXMultiplatformExtension
- Enable watchos and tvos in :annotation:annotation
- Enable linuxArm64, watchos, and tvos in :collection:collection
This work is required as we work towards setting up native stubs for
compose projects.
Test: ./gradlew collection:collection:publish
Bug: 349894318
Change-Id: Idfd1faa3a826bb91ee14722f7437bdcf99cf0018
M annotation/annotation/build.gradle
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
M collection/collection/build.gradle
M development/build_log_simplifier/messages.ignore
M development/importMaven/src/main/kotlin/androidx/build/importMaven/KmpConfig.kt
https://android-review.googlesource.com/3151736
Branch: androidx-main
commit 0154910724cdc44253af1d2f8cede76264783226
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jun 27 15:25:02 2024
Expand native target support for annotation and collection libraries
- Enable watchos and tvos download in importMaven
- Add support for watchos and tvos targets in AndroidXMultiplatformExtension
- Enable watchos and tvos in :annotation:annotation
- Enable linuxArm64, watchos, and tvos in :collection:collection
This work is required as we work towards setting up native stubs for
compose projects.
Test: ./gradlew collection:collection:publish
Bug: 349894318
Change-Id: Idfd1faa3a826bb91ee14722f7437bdcf99cf0018
M annotation/annotation/build.gradle
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
M collection/collection/build.gradle
M development/build_log_simplifier/messages.ignore
M development/importMaven/src/main/kotlin/androidx/build/importMaven/KmpConfig.kt
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