LayoutElementBuilders.Image.Builder deprecated in WearOS Tiles
Google recently deprecated (here, here) LayoutElementBuilders.Image.Builder, which is used to display images in a WearOS Tile. I'm having trouble refactoring my code.
This is the original code:
new LayoutElementBuilders.Image.Builder()
.setResourceId("image_play")
.build()
This is how you I set "image_play":
@Override
protected ListenableFuture onTileResourcesRequest(@NonNull RequestBuilders.ResourcesRequest requestParams) {
return Futures.immediateFuture(new ResourceBuilders.Resources.Builder()
.setVersion(RESOURCES_VERSION)
.addIdToImageMapping("image_play", new ResourceBuilders.ImageResource.Builder()
.setAndroidResourceByResId(new ResourceBuilders.AndroidImageResourceByResId.Builder()
.setResourceId(R.drawable.ic_action_tile_play).build()).build()
)
.build()
);
}
This is my refactored code:
new LayoutElementBuilders.Image.Builder(new ProtoLayoutScope())
.setImageResource(new ResourceBuilders.ImageResource.Builder()
.setAndroidResourceByResId(new ResourceBuilders.AndroidImageResourceByResId.Builder()
.setResourceId(R.drawable.ic_action_tile_play)
.build())
.build())
.build()
The code compiles but the image does not display in the Tile. This is the entire layout code:
return new LayoutElementBuilders.Column.Builder()
.setHeight(DimensionBuilders.expand())
.setHorizontalAlignment(LayoutElementBuilders.HORIZONTAL_ALIGN_CENTER)
.addContent(
new LayoutElementBuilders.Row.Builder()
.setWidth(DimensionBuilders.wrap())
.setHeight(DimensionBuilders.expand())
.setVerticalAlignment(LayoutElementBuilders.VERTICAL_ALIGN_CENTER)
.addContent(new LayoutElementBuilders.Image.Builder()
.setModifiers(new ModifiersBuilders.Modifiers.Builder()
.setClickable(new ModifiersBuilders.Clickable.Builder()
.setId("tile_play")
.setOnClick(new ActionBuilders.LoadAction.Builder().build())
.build()
).build()
)
.setResourceId("image_play")
.setWidth(DimensionBuilders.dp(55f))
.setHeight(DimensionBuilders.dp(55f)).build()
).build()
).build();