Fixed
Status Update
Comments
st...@gmail.com <st...@gmail.com> #2
Willie, could you take a look at how we can update glance-experimental-tools to use the new methods?
za...@google.com <za...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit 5729d1dadf2abd51e1b092a891becea6f138e553
Author: Willie Koomson <wvk@google.com>
Date: Thu Sep 28 13:07:19 2023
Add GlanceAppWidget.runComposition
This change adds GlanceAppWidget.runComposition which returns a
Flow<RemoteViews>. This API can be used to run the widget outside of the
app widget system (e.g. without a GlanceAppWidgetReceiver or needing to
be bound by the AppWidgetHost) and without a Worker. The widget will
continue to recompose and respond to lambda actions while the flow is
running.
This makes it straightforward to display a widget within an Activity,
and is intended to be used for the glance-experimental-tools
WidgetViewer, which provides Live Edit in Studio.
Bug: 298066147
Test: SimpleWidgetViewer demo activity, GlanceAppWidgetTest unit tests
Relnote: "Add GlanceAppWidget.runComposition"
Change-Id: I6344ce93a486a86b7484dfd704453da118e3aa79
M glance/glance-appwidget/api/current.txt
M glance/glance-appwidget/api/restricted_current.txt
M glance/glance-appwidget/integration-tests/demos/build.gradle
M glance/glance-appwidget/integration-tests/demos/src/main/AndroidManifest.xml
A glance/glance-appwidget/integration-tests/demos/src/main/java/androidx/glance/appwidget/demos/SimpleWidgetViewer.kt
M glance/glance-appwidget/integration-tests/demos/src/main/res/values/strings.xml
M glance/glance-appwidget/src/main/AndroidManifest.xml
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetComposer.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetSession.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetUtils.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceAppWidget.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceRemoteViewsService.kt
A glance/glance-appwidget/src/main/java/androidx/glance/appwidget/UnmanagedSessionReceiver.kt
M glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/AppWidgetSessionTest.kt
M glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/GlanceAppWidgetTest.kt
M glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/TestUtils.kt
M glance/glance/src/main/java/androidx/glance/session/SessionWorker.kt
M glance/glance/src/main/java/androidx/glance/session/TimerScope.kt
https://android-review.googlesource.com/2769659
Branch: androidx-main
commit 5729d1dadf2abd51e1b092a891becea6f138e553
Author: Willie Koomson <wvk@google.com>
Date: Thu Sep 28 13:07:19 2023
Add GlanceAppWidget.runComposition
This change adds GlanceAppWidget.runComposition which returns a
Flow<RemoteViews>. This API can be used to run the widget outside of the
app widget system (e.g. without a GlanceAppWidgetReceiver or needing to
be bound by the AppWidgetHost) and without a Worker. The widget will
continue to recompose and respond to lambda actions while the flow is
running.
This makes it straightforward to display a widget within an Activity,
and is intended to be used for the glance-experimental-tools
WidgetViewer, which provides Live Edit in Studio.
Bug: 298066147
Test: SimpleWidgetViewer demo activity, GlanceAppWidgetTest unit tests
Relnote: "Add GlanceAppWidget.runComposition"
Change-Id: I6344ce93a486a86b7484dfd704453da118e3aa79
M glance/glance-appwidget/api/current.txt
M glance/glance-appwidget/api/restricted_current.txt
M glance/glance-appwidget/integration-tests/demos/build.gradle
M glance/glance-appwidget/integration-tests/demos/src/main/AndroidManifest.xml
A glance/glance-appwidget/integration-tests/demos/src/main/java/androidx/glance/appwidget/demos/SimpleWidgetViewer.kt
M glance/glance-appwidget/integration-tests/demos/src/main/res/values/strings.xml
M glance/glance-appwidget/src/main/AndroidManifest.xml
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetComposer.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetSession.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetUtils.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceAppWidget.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceRemoteViewsService.kt
A glance/glance-appwidget/src/main/java/androidx/glance/appwidget/UnmanagedSessionReceiver.kt
M glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/AppWidgetSessionTest.kt
M glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/GlanceAppWidgetTest.kt
M glance/glance-appwidget/src/test/kotlin/androidx/glance/appwidget/TestUtils.kt
M glance/glance/src/main/java/androidx/glance/session/SessionWorker.kt
M glance/glance/src/main/java/androidx/glance/session/TimerScope.kt
we...@gmail.com <we...@gmail.com> #4
Hi is there an ETA for the next release containing this patch?
to...@gmail.com <to...@gmail.com> #5
The fix is included in the next beta release (April 2024), which will be fast followed by stable.
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 :)