Skip to content

Commit c1c75f7

Browse files
committed
Migrate to TLC
Change-Id: I172534bfcd6dcafb5e7819534fefc2ac77480382
1 parent 04888ec commit c1c75f7

File tree

3 files changed

+50
-23
lines changed

3 files changed

+50
-23
lines changed

gradle/libs.versions.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ kotlin = "2.1.10"
3838
kotlinxSerializationJson = "1.8.0"
3939
ksp = "2.1.10-1.0.30"
4040
maps-compose = "6.4.4"
41-
material = "1.13.0-alpha10"
41+
material = "1.13.0-alpha13"
4242
material3-adaptive = "1.0.0"
4343
material3-adaptive-navigation-suite = "1.3.1"
4444
media3 = "1.5.1"
@@ -54,7 +54,7 @@ version-catalog-update = "0.8.5"
5454
wear = "1.3.0"
5555
wearComposeFoundation = "1.4.1"
5656
wearComposeMaterial = "1.4.1"
57-
wearComposeMaterial3 = "1.0.0-alpha32"
57+
wearComposeMaterial3 = "1.0.0-alpha37"
5858
wearToolingPreview = "1.0.0"
5959

6060
[libraries]

wear/src/main/java/com.example.wear.snippets.m3/MainActivity.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ import android.os.Bundle
2020
import androidx.activity.ComponentActivity
2121
import androidx.activity.compose.setContent
2222
import androidx.compose.runtime.Composable
23-
import com.example.wear.snippets.list.ComposeList
24-
import com.example.wear.snippets.m3.navigation.navigation
23+
import com.example.wear.snippets.m3.list.ComposeList
2524

2625
class MainActivity : ComponentActivity() {
2726
override fun onCreate(savedInstanceState: Bundle?) {
@@ -36,5 +35,5 @@ class MainActivity : ComponentActivity() {
3635
@Composable
3736
fun WearApp() {
3837
// insert here the snippet you want to test
39-
// navigation()
38+
ComposeList()
4039
}

wear/src/main/java/com.example.wear.snippets.m3/list/List.kt

Lines changed: 46 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,49 +16,77 @@
1616

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

19+
import androidx.compose.foundation.layout.fillMaxWidth
1920
import androidx.compose.material.icons.Icons
2021
import androidx.compose.material.icons.filled.Build
2122
import androidx.compose.runtime.Composable
23+
import androidx.compose.ui.Modifier
2224
import androidx.compose.ui.platform.LocalConfiguration
23-
import androidx.wear.compose.material.Text
25+
import androidx.compose.ui.text.style.TextOverflow
26+
import androidx.wear.compose.foundation.lazy.rememberTransformingLazyColumnState
2427
import androidx.wear.compose.ui.tooling.preview.WearPreviewDevices
2528
import androidx.wear.compose.ui.tooling.preview.WearPreviewFontScales
2629
import com.google.android.horologist.annotations.ExperimentalHorologistApi
30+
import com.google.android.horologist.compose.layout.ColumnItemType
31+
import com.google.android.horologist.compose.layout.rememberResponsiveColumnPadding
32+
import com.google.android.horologist.compose.layout.rememberResponsiveColumnState
33+
import androidx.wear.compose.material3.ListHeader
34+
import androidx.wear.compose.material3.ScreenScaffold
35+
import androidx.wear.compose.foundation.lazy.TransformingLazyColumn
36+
import androidx.wear.compose.material3.Icon
2737
import com.google.android.horologist.compose.layout.ScalingLazyColumn
2838
import com.google.android.horologist.compose.layout.ScalingLazyColumnDefaults
2939
import com.google.android.horologist.compose.layout.ScalingLazyColumnState
3040
import com.google.android.horologist.compose.layout.ScreenScaffold
31-
import com.google.android.horologist.compose.layout.rememberResponsiveColumnState
3241
import com.google.android.horologist.compose.material.Button
3342
import com.google.android.horologist.compose.material.ListHeaderDefaults.firstItemPadding
3443
import com.google.android.horologist.compose.material.ResponsiveListHeader
44+
import androidx.wear.compose.material3.Button
45+
import androidx.wear.compose.material3.SurfaceTransformation
46+
import androidx.wear.compose.material3.lazy.rememberTransformationSpec
47+
import androidx.wear.compose.material3.lazy.transformedHeight
48+
import androidx.wear.compose.material3.Text
3549

36-
@OptIn(ExperimentalHorologistApi::class)
3750
@Composable
3851
fun ComposeList() {
3952
// [START android_wear_list]
40-
val columnState = rememberResponsiveColumnState(
41-
contentPadding = ScalingLazyColumnDefaults.padding(
42-
first = ScalingLazyColumnDefaults.ItemType.Text,
43-
last = ScalingLazyColumnDefaults.ItemType.SingleButton
44-
)
53+
val columnState = rememberTransformingLazyColumnState()
54+
val contentPadding = rememberResponsiveColumnPadding(
55+
first = ColumnItemType.ListHeader,
56+
last = ColumnItemType.Button,
4557
)
46-
ScreenScaffold(scrollState = columnState) {
47-
ScalingLazyColumn(
48-
columnState = columnState
58+
val transformationSpec = rememberTransformationSpec()
59+
ScreenScaffold(scrollState = columnState,
60+
contentPadding = contentPadding) { contentPadding ->
61+
TransformingLazyColumn(
62+
state = columnState,
63+
contentPadding = contentPadding
4964
) {
5065
item {
51-
ResponsiveListHeader(contentPadding = firstItemPadding()) {
66+
ListHeader(modifier = Modifier.fillMaxWidth().transformedHeight(this, transformationSpec),
67+
transformation = SurfaceTransformation(transformationSpec)){
5268
Text(text = "Header")
5369
}
5470
}
5571
// ... other items
5672
item {
57-
Button(
58-
imageVector = Icons.Default.Build,
59-
contentDescription = "Example Button",
60-
onClick = { }
61-
)
73+
Button(modifier = Modifier.fillMaxWidth().transformedHeight(this, transformationSpec),
74+
transformation = SurfaceTransformation(transformationSpec),
75+
onClick = { /* ... */ },
76+
icon = {
77+
Icon(
78+
imageVector = Icons.Default.Build,
79+
contentDescription = "build",
80+
)
81+
},
82+
){
83+
Text(
84+
text = "Build",
85+
maxLines = 1,
86+
overflow = TextOverflow.Ellipsis,
87+
)
88+
}
89+
6290
}
6391
}
6492
}
@@ -87,7 +115,7 @@ fun SnapAndFlingComposeList() {
87115
// [START_EXCLUDE]
88116
item {
89117
ResponsiveListHeader(contentPadding = firstItemPadding()) {
90-
Text(text = "Header")
118+
androidx.wear.compose.material.Text(text = "Header")
91119
}
92120
}
93121
// ... other items

0 commit comments

Comments
 (0)