Fixed
Status Update
Comments
st...@gmail.com <st...@gmail.com> #2
Another workaround is to use an Icon
with the ColorProvider
, but this requires a min sdk of 23.
za...@google.com <za...@google.com> #3
Zak to provide an example using Icon
we...@gmail.com <we...@gmail.com> #4
Hi. Is there an Icon
composable in Glance? I can't find it.
to...@gmail.com <to...@gmail.com> #5
This is mandatory to properly update the tint color when A12/A13 switch dark mode.
Tint via colorProvider would solved this as building our own images does not switch until we trigger a refresh.
bb...@google.com <bb...@google.com> #6
Two approaches to consider:
- Modifying ImageProvider to take a
tint: ColorProvider
param. - Add a
colorFilter
param to theImage()
composable to mirror the Jetpack Compose api.
za...@google.com <za...@google.com>
ap...@google.com <ap...@google.com> #7
Project: platform/frameworks/support
Branch: androidx-main
commit 23d4e278207b98e0781eaedf432df98c1eb9d6f2
Author: Shamali P <shamalip@google.com>
Date: Wed Jan 18 17:14:15 2023
Adds an option to supply tint color in an Image via ColorFilter option. Chose to define a colorFilter parameter as it would keep API flexible enough to accept additional variations if possible in future. ColorFilter.tint accepts a ColorProvider, which means developers can provide DayNightColorProviders.ColorProvider(day, night) as input allowing versions that support dark modes to seamlessly switch to appropriate color. See ImageAppWidget for the demo.
Note - The default blending mode (SRC_ATOP) is applied since the RemoteViews method to supply BlendingMode was made Remotable very recently and isn't supported in all versions. An alternative for anyone looking to supply blendingMode would be to use ImageProvider(Icon icon) and set blending modes on icon (i.e. at the source). Similarly, wear tiles doesn't support supplying blendingMode and defaults to SRC_IN.
Other alternatives were: 1) Accepting tint param directly on the Image (but that approach didn't seem flexible), 2) Accepting tint/ColorFilter param on ImageProvider (but it seemed to make it look like source is applying effects, rather its remoteViews that is applying the effects. Moreoever, it would unnecessarily make ImageProvider's constructor complex).
Updates to wear-tiles in follow up CL to keep this one smaller.
Bug: 212418562
Test: Locally rendered in different versions. Also see ImageAppWidget for demo.
Relnote: Adds an option to supply tint color for images
Change-Id: I26192fa891c91e373dc25a51005416f08a593205
M glance/glance-appwidget/integration-tests/demos/src/main/java/androidx/glance/appwidget/demos/ImageAppWidget.kt
A glance/glance-appwidget/integration-tests/demos/src/main/res/drawable/ic_android.xml
M glance/glance-appwidget/src/androidMain/kotlin/androidx/glance/appwidget/translators/ImageTranslator.kt
M glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/translators/ImageTranslatorTest.kt
M glance/glance/api/current.txt
M glance/glance/api/public_plus_experimental_current.txt
M glance/glance/api/restricted_current.txt
M glance/glance/src/androidMain/kotlin/androidx/glance/Image.kt
M glance/glance/src/test/kotlin/androidx/glance/ImageTest.kt
https://android-review.googlesource.com/2393014
Branch: androidx-main
commit 23d4e278207b98e0781eaedf432df98c1eb9d6f2
Author: Shamali P <shamalip@google.com>
Date: Wed Jan 18 17:14:15 2023
Adds an option to supply tint color in an Image via ColorFilter option. Chose to define a colorFilter parameter as it would keep API flexible enough to accept additional variations if possible in future. ColorFilter.tint accepts a ColorProvider, which means developers can provide DayNightColorProviders.ColorProvider(day, night) as input allowing versions that support dark modes to seamlessly switch to appropriate color. See ImageAppWidget for the demo.
Note - The default blending mode (SRC_ATOP) is applied since the RemoteViews method to supply BlendingMode was made Remotable very recently and isn't supported in all versions. An alternative for anyone looking to supply blendingMode would be to use ImageProvider(Icon icon) and set blending modes on icon (i.e. at the source). Similarly, wear tiles doesn't support supplying blendingMode and defaults to SRC_IN.
Other alternatives were: 1) Accepting tint param directly on the Image (but that approach didn't seem flexible), 2) Accepting tint/ColorFilter param on ImageProvider (but it seemed to make it look like source is applying effects, rather its remoteViews that is applying the effects. Moreoever, it would unnecessarily make ImageProvider's constructor complex).
Updates to wear-tiles in follow up CL to keep this one smaller.
Bug: 212418562
Test: Locally rendered in different versions. Also see ImageAppWidget for demo.
Relnote: Adds an option to supply tint color for images
Change-Id: I26192fa891c91e373dc25a51005416f08a593205
M glance/glance-appwidget/integration-tests/demos/src/main/java/androidx/glance/appwidget/demos/ImageAppWidget.kt
A glance/glance-appwidget/integration-tests/demos/src/main/res/drawable/ic_android.xml
M glance/glance-appwidget/src/androidMain/kotlin/androidx/glance/appwidget/translators/ImageTranslator.kt
M glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/translators/ImageTranslatorTest.kt
M glance/glance/api/current.txt
M glance/glance/api/public_plus_experimental_current.txt
M glance/glance/api/restricted_current.txt
M glance/glance/src/androidMain/kotlin/androidx/glance/Image.kt
M glance/glance/src/test/kotlin/androidx/glance/ImageTest.kt
ap...@google.com <ap...@google.com> #8
Project: platform/frameworks/support
Branch: androidx-main
commit 280b65f5e9998691cee5d1e87a589fe38d8b0628
Author: Shamali P <shamalip@google.com>
Date: Tue Jan 24 16:51:51 2023
Implement ColorFilter.tint in glance wear tiles. This is in continuation withhttps://android-review.googlesource.com/2393014 that introduced the API and implemented the same for appWidgets.
Also updates the wear dependency to newer stable version 1.1.0 which has non-experimental colorFilter API.
(verified by running template demo and integration demo tests)
Bug: 212418562
Test: Locally rendered in different versions. Also see HelloTileService for demo.
Change-Id: I26192fa891c91e373dc25a51005416f08a593206
M glance/glance-wear-tiles/build.gradle
M glance/glance-wear-tiles/integration-tests/demos/src/main/java/androidx/glance/wear/tiles/demos/CountTileService.kt
M glance/glance-wear-tiles/integration-tests/demos/src/main/java/androidx/glance/wear/tiles/demos/HelloTileService.kt
A glance/glance-wear-tiles/integration-tests/demos/src/main/res/drawable/ic_waving_hand.xml
M glance/glance-wear-tiles/src/androidMain/kotlin/androidx/glance/wear/tiles/WearCompositionTranslator.kt
M glance/glance-wear-tiles/src/test/kotlin/androidx/glance/wear/tiles/WearCompositionTranslatorTest.kt
https://android-review.googlesource.com/2400081
Branch: androidx-main
commit 280b65f5e9998691cee5d1e87a589fe38d8b0628
Author: Shamali P <shamalip@google.com>
Date: Tue Jan 24 16:51:51 2023
Implement ColorFilter.tint in glance wear tiles. This is in continuation with
Also updates the wear dependency to newer stable version 1.1.0 which has non-experimental colorFilter API.
(verified by running template demo and integration demo tests)
Bug: 212418562
Test: Locally rendered in different versions. Also see HelloTileService for demo.
Change-Id: I26192fa891c91e373dc25a51005416f08a593206
M glance/glance-wear-tiles/build.gradle
M glance/glance-wear-tiles/integration-tests/demos/src/main/java/androidx/glance/wear/tiles/demos/CountTileService.kt
M glance/glance-wear-tiles/integration-tests/demos/src/main/java/androidx/glance/wear/tiles/demos/HelloTileService.kt
A glance/glance-wear-tiles/integration-tests/demos/src/main/res/drawable/ic_waving_hand.xml
M glance/glance-wear-tiles/src/androidMain/kotlin/androidx/glance/wear/tiles/WearCompositionTranslator.kt
M glance/glance-wear-tiles/src/test/kotlin/androidx/glance/wear/tiles/WearCompositionTranslatorTest.kt
sh...@google.com <sh...@google.com>
na...@google.com <na...@google.com> #9
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.glance:glance:1.0.0-beta01
androidx.glance:glance-appwidget:1.0.0-beta01
Description
Component used: GlanceAppWidget/Image Version used: 1.0.0-alpha01 Devices/Android versions reproduced on: all
This is a feature request, not a bug. As a developer, I would like to have a tint/color filter parameter in GlanceImage. As far as I know, if I would like to change color as a state it is impossible. I can update the image resource based on some states, but I would like to just update the color. The only option I found is to build my own bitmap and apply color to
Paint()
. This is the same as current remoteView widget :)