Skip to content

Commit e508fb7

Browse files
ithinkihaveacatGerrit Code Review
authored andcommitted
Merge "Add simple M3 Tile" into m3
2 parents c1c75f7 + 83e88fd commit e508fb7

File tree

4 files changed

+49
-27
lines changed

4 files changed

+49
-27
lines changed

gradle/libs.versions.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ media3 = "1.5.1"
4545
# @keep
4646
minSdk = "21"
4747
playServicesWearable = "19.0.0"
48-
protolayout = "1.2.1"
48+
protolayout = "1.3.0-beta01"
4949
recyclerview = "1.4.0"
5050
# @keep
5151
targetSdk = "34"
52-
tiles = "1.4.1"
52+
tiles = "1.5.0-beta01"
5353
version-catalog-update = "0.8.5"
5454
wear = "1.3.0"
5555
wearComposeFoundation = "1.4.1"
@@ -112,6 +112,7 @@ androidx-paging-compose = { module = "androidx.paging:paging-compose", version.r
112112
androidx-protolayout = { module = "androidx.wear.protolayout:protolayout", version.ref = "protolayout" }
113113
androidx-protolayout-expression = { module = "androidx.wear.protolayout:protolayout-expression", version.ref = "protolayout" }
114114
androidx-protolayout-material = { module = "androidx.wear.protolayout:protolayout-material", version.ref = "protolayout" }
115+
androidx-protolayout-material3 = { module = "androidx.wear.protolayout:protolayout-material3", version.ref = "protolayout" }
115116
androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" }
116117
androidx-test-core = { module = "androidx.test:core", version.ref = "androidx-test" }
117118
androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-test-espresso" }

wear/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ dependencies {
5959
implementation(libs.androidx.wear)
6060
implementation(libs.androidx.protolayout)
6161
implementation(libs.androidx.protolayout.material)
62+
implementation(libs.androidx.protolayout.material3)
6263
implementation(libs.androidx.protolayout.expression)
6364
debugImplementation(libs.androidx.tiles.renderer)
6465
testImplementation(libs.androidx.tiles.testing)

wear/src/main/AndroidManifest.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,23 @@
5252
</service>
5353
<!-- [END android_wear_tile_manifest] -->
5454

55+
<!-- [START android_wear_m3_tile_manifest] -->
56+
<service
57+
android:name=".snippets.m3.tile.MyTileService"
58+
android:label="@string/tile_label"
59+
android:description="@string/tile_description"
60+
android:icon="@mipmap/ic_launcher"
61+
android:exported="true"
62+
android:permission="com.google.android.wearable.permission.BIND_TILE_PROVIDER">
63+
<intent-filter>
64+
<action android:name="androidx.wear.tiles.action.BIND_TILE_PROVIDER" />
65+
</intent-filter>
66+
67+
<meta-data android:name="androidx.wear.tiles.PREVIEW"
68+
android:resource="@drawable/tile_preview" />
69+
</service>
70+
<!-- [END android_wear_m3_tile_manifest] -->
71+
5572
</application>
5673

5774
</manifest>
Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2022 The Android Open Source Project
2+
* Copyright 2025 The Android Open Source Project
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,11 +16,13 @@
1616

1717
package com.example.wear.snippets.m3.tile
1818

19-
import androidx.wear.protolayout.ColorBuilders.argb
2019
import androidx.wear.protolayout.ResourceBuilders.Resources
2120
import androidx.wear.protolayout.TimelineBuilders.Timeline
22-
import androidx.wear.protolayout.material.Text
23-
import androidx.wear.protolayout.material.Typography
21+
import androidx.wear.protolayout.material3.Typography.BODY_LARGE
22+
import androidx.wear.protolayout.material3.materialScope
23+
import androidx.wear.protolayout.material3.primaryLayout
24+
import androidx.wear.protolayout.material3.text
25+
import androidx.wear.protolayout.types.layoutString
2426
import androidx.wear.tiles.RequestBuilders
2527
import androidx.wear.tiles.RequestBuilders.ResourcesRequest
2628
import androidx.wear.tiles.TileBuilders.Tile
@@ -29,29 +31,30 @@ import com.google.common.util.concurrent.Futures
2931

3032
private const val RESOURCES_VERSION = "1"
3133

32-
// [START android_wear_tile_mytileservice]
34+
// [START android_wear_m3_tile_mytileservice]
3335
class MyTileService : TileService() {
3436

35-
override fun onTileRequest(requestParams: RequestBuilders.TileRequest) =
36-
Futures.immediateFuture(
37-
Tile.Builder()
38-
.setResourcesVersion(RESOURCES_VERSION)
39-
.setTileTimeline(
40-
Timeline.fromLayoutElement(
41-
Text.Builder(this, "Hello World!")
42-
.setTypography(Typography.TYPOGRAPHY_BODY1)
43-
.setColor(argb(0xFFFFFFFF.toInt()))
44-
.build()
45-
)
46-
)
47-
.build()
37+
override fun onTileRequest(requestParams: RequestBuilders.TileRequest) =
38+
Futures.immediateFuture(
39+
Tile.Builder()
40+
.setResourcesVersion(RESOURCES_VERSION)
41+
.setTileTimeline(
42+
Timeline.fromLayoutElement(
43+
materialScope(this, requestParams.deviceConfiguration) {
44+
primaryLayout(
45+
mainSlot = {
46+
text("Hello, World!".layoutString, typography = BODY_LARGE)
47+
}
48+
)
49+
}
50+
)
4851
)
52+
.build()
53+
)
4954

50-
override fun onTileResourcesRequest(requestParams: ResourcesRequest) =
51-
Futures.immediateFuture(
52-
Resources.Builder()
53-
.setVersion(RESOURCES_VERSION)
54-
.build()
55-
)
55+
override fun onTileResourcesRequest(requestParams: ResourcesRequest) =
56+
Futures.immediateFuture(
57+
Resources.Builder().setVersion(RESOURCES_VERSION).build()
58+
)
5659
}
57-
// [END android_wear_tile_mytileservice]
60+
// [END android_wear_m3_tile_mytileservice]

0 commit comments

Comments
 (0)