Skip to content

Commit 906dee1

Browse files
Add snippets for /training/wearables/tiles/get_started (#698)
* Add snippets for /training/wearables/tiles/get_started
1 parent 89b0781 commit 906dee1

File tree

1 file changed

+84
-0
lines changed
  • wear/src/main/java/com/example/wear/snippets/tile

1 file changed

+84
-0
lines changed

wear/src/main/java/com/example/wear/snippets/tile/Tile.kt

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,16 @@ import androidx.wear.protolayout.LayoutElementBuilders
2727
import androidx.wear.protolayout.LayoutElementBuilders.Arc
2828
import androidx.wear.protolayout.LayoutElementBuilders.ArcLine
2929
import androidx.wear.protolayout.LayoutElementBuilders.DashedArcLine
30+
import androidx.wear.protolayout.LayoutElementBuilders.FontStyle
31+
import androidx.wear.protolayout.LayoutElementBuilders.Image
32+
import androidx.wear.protolayout.LayoutElementBuilders.LayoutElement
33+
import androidx.wear.protolayout.LayoutElementBuilders.SpanImage
34+
import androidx.wear.protolayout.LayoutElementBuilders.SpanText
35+
import androidx.wear.protolayout.ModifiersBuilders
36+
import androidx.wear.protolayout.ModifiersBuilders.Background
37+
import androidx.wear.protolayout.ModifiersBuilders.Modifiers
38+
import androidx.wear.protolayout.ModifiersBuilders.Semantics
39+
import androidx.wear.protolayout.ResourceBuilders
3040
import androidx.wear.protolayout.ResourceBuilders.Resources
3141
import androidx.wear.protolayout.TimelineBuilders
3242
import androidx.wear.protolayout.TimelineBuilders.Timeline
@@ -41,6 +51,7 @@ import androidx.wear.tiles.RequestBuilders
4151
import androidx.wear.tiles.RequestBuilders.ResourcesRequest
4252
import androidx.wear.tiles.TileBuilders.Tile
4353
import androidx.wear.tiles.TileService
54+
import com.example.wear.R
4455
import com.google.common.util.concurrent.Futures
4556
import com.google.common.util.concurrent.ListenableFuture
4657

@@ -248,3 +259,76 @@ class FeatureFallback : TileService() {
248259
)
249260
}
250261
}
262+
263+
// [START android_wear_tile_get_started_modifiers]
264+
private fun myImage(): LayoutElement =
265+
Image.Builder()
266+
.setWidth(dp(24f))
267+
.setHeight(dp(24f))
268+
.setResourceId("image_id")
269+
.setModifiers(
270+
Modifiers.Builder()
271+
.setBackground(Background.Builder().setColor(argb(0xFFFF0000.toInt())).build())
272+
.setPadding(ModifiersBuilders.Padding.Builder().setStart(dp(12f)).build())
273+
.setSemantics(Semantics.Builder().setContentDescription("Image description").build())
274+
.build()
275+
)
276+
.build()
277+
// [END android_wear_tile_get_started_modifiers]
278+
279+
// [START android_wear_tile_get_started_spannables]
280+
private fun mySpannable(): LayoutElement =
281+
LayoutElementBuilders.Spannable.Builder()
282+
.addSpan(SpanText.Builder().setText("Hello ").build())
283+
.addSpan(SpanImage.Builder().setWidth(dp(24f)).setHeight(dp(24f)).setResourceId("image_id").build())
284+
.addSpan(
285+
SpanText.Builder()
286+
.setText("world")
287+
.setFontStyle(FontStyle.Builder().setItalic(true).build())
288+
.build()
289+
)
290+
.build()
291+
// [END android_wear_tile_get_started_spannables]
292+
293+
class ResourcesTileService : TileService() {
294+
295+
private val imageAsByteArray = byteArrayOf()
296+
297+
override fun onTileRequest(requestParams: RequestBuilders.TileRequest): ListenableFuture<Tile> =
298+
Futures.immediateFuture(
299+
Tile.Builder()
300+
.setResourcesVersion(RESOURCES_VERSION)
301+
.setTileTimeline(Timeline.fromLayoutElement(simpleLayout(this)))
302+
.build()
303+
)
304+
305+
// [START android_wear_tile_get_started_resources]
306+
override fun onTileResourcesRequest(
307+
requestParams: ResourcesRequest
308+
) = Futures.immediateFuture(
309+
Resources.Builder()
310+
.setVersion("1")
311+
.addIdToImageMapping(
312+
"image_from_resource",
313+
ResourceBuilders.ImageResource.Builder()
314+
.setAndroidResourceByResId(
315+
ResourceBuilders.AndroidImageResourceByResId.Builder()
316+
.setResourceId(R.drawable.ic_walk)
317+
.build()
318+
).build()
319+
)
320+
.addIdToImageMapping(
321+
"image_inline",
322+
ResourceBuilders.ImageResource.Builder()
323+
.setInlineResource(
324+
ResourceBuilders.InlineImageResource.Builder()
325+
.setData(imageAsByteArray)
326+
.setWidthPx(48)
327+
.setHeightPx(48)
328+
.setFormat(ResourceBuilders.IMAGE_FORMAT_RGB_565)
329+
.build()
330+
).build()
331+
).build()
332+
)
333+
// [END android_wear_tile_get_started_resources]
334+
}

0 commit comments

Comments
 (0)