From e991c89395b64b8687af15b7247622ae8324d4ed Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 00:03:47 +0000 Subject: [PATCH 1/4] Update all dependencies 1.25.0 to v1.26.0 --- ComposeStarter/gradle/libs.versions.toml | 2 +- DataLayer/gradle/libs.versions.toml | 2 +- WearOAuth/gradle/libs.versions.toml | 2 +- WearSpeakerSample/gradle/libs.versions.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ComposeStarter/gradle/libs.versions.toml b/ComposeStarter/gradle/libs.versions.toml index c53c4c4c3..1d9cb23ff 100644 --- a/ComposeStarter/gradle/libs.versions.toml +++ b/ComposeStarter/gradle/libs.versions.toml @@ -9,7 +9,7 @@ horologist = "0.5.28" ktlint = "0.50.0" org-jetbrains-kotlin = "1.9.24" robolectric = "4.13" -roborazzi = "1.25.0" +roborazzi = "1.26.0" ui-test-junit4 = "1.6.8" ui-test-manifest = "1.6.8" diff --git a/DataLayer/gradle/libs.versions.toml b/DataLayer/gradle/libs.versions.toml index 260736eef..be9b0834e 100644 --- a/DataLayer/gradle/libs.versions.toml +++ b/DataLayer/gradle/libs.versions.toml @@ -12,7 +12,7 @@ org-jetbrains-kotlinx = "1.8.1" horologist = "0.5.28" compose-ui-tooling = "1.3.1" robolectric = "4.13" -roborazzi = "1.25.0" +roborazzi = "1.26.0" ui-test-junit4 = "1.6.8" ui-test-manifest = "1.6.8" diff --git a/WearOAuth/gradle/libs.versions.toml b/WearOAuth/gradle/libs.versions.toml index 7207aba53..914e29a19 100644 --- a/WearOAuth/gradle/libs.versions.toml +++ b/WearOAuth/gradle/libs.versions.toml @@ -13,7 +13,7 @@ ktlint = "0.50.0" compose-material3 = "1.0.0-alpha23" horologist = "0.6.12" robolectric = "4.13" -roborazzi = "1.25.0" +roborazzi = "1.26.0" ui-test-junit4 = "1.6.8" [libraries] diff --git a/WearSpeakerSample/gradle/libs.versions.toml b/WearSpeakerSample/gradle/libs.versions.toml index 13be4ae8b..e0d3136ae 100644 --- a/WearSpeakerSample/gradle/libs.versions.toml +++ b/WearSpeakerSample/gradle/libs.versions.toml @@ -10,7 +10,7 @@ compose-ui-tooling = "1.3.1" ktlint = "0.50.0" org-jetbrains-kotlin = "1.9.24" robolectric = "4.13" -roborazzi = "1.25.0" +roborazzi = "1.26.0" ui-test-junit4 = "1.6.8" ui-test-manifest = "1.6.8" horologist = "0.5.28" From 44b0da6508acbf9a1c64ee0d870d2ec4bda22ff1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 00:43:08 +0000 Subject: [PATCH 2/4] Update all dependencies --- WearOAuth/gradle/libs.versions.toml | 2 +- WearTilesKotlin/gradle/libs.versions.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/WearOAuth/gradle/libs.versions.toml b/WearOAuth/gradle/libs.versions.toml index 914e29a19..b90b14663 100644 --- a/WearOAuth/gradle/libs.versions.toml +++ b/WearOAuth/gradle/libs.versions.toml @@ -5,7 +5,7 @@ androidx-activity = "1.9.1" androidx-lifecycle = "2.8.4" androidx-test = "1.5.2" androidx-wear-compose = "1.4.0-beta03" -compose = "1.7.0-beta06" +compose = "1.7.0-beta07" compose-compiler = "1.5.14" org-jetbrains-kotlin = "1.9.24" org-jetbrains-kotlinx = "1.8.1" diff --git a/WearTilesKotlin/gradle/libs.versions.toml b/WearTilesKotlin/gradle/libs.versions.toml index 42144eab6..ce4e69b8d 100644 --- a/WearTilesKotlin/gradle/libs.versions.toml +++ b/WearTilesKotlin/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] android-gradle-plugin = "8.5.1" -androidx-wear-tiles = "1.4.0-rc01" +androidx-wear-tiles = "1.4.0" androidx-wear-tooling-preview = "1.0.0" compose = "1.6.8" compose-compiler = "1.5.14" @@ -8,7 +8,7 @@ horologist = "0.6.9" ktlint = "0.50.0" org-jetbrains-kotlin = "1.9.24" org-jetbrains-kotlinx = "1.8.1" -tiles-tooling-preview = "1.3.0" +tiles-tooling-preview = "1.4.0" [libraries] androidx-datastore = "androidx.datastore:datastore-preferences:1.1.1" From 9175d3a30cd77583179bebac5a6e1945093efd63 Mon Sep 17 00:00:00 2001 From: hiro Date: Fri, 9 Aug 2024 09:01:43 +0900 Subject: [PATCH 3/4] Update/apply responsive remaining tiles (#1169) * apply responsive tiles remaining * commonize duplicate preview * update preview function name start with lower case * update preview access modifiers * fix typo * add image resources for social * update argument of timer * update skiPreview * use primary layout in Ski * change preview font scale in large device --- .../com/example/wear/tiles/golden/Alarm.kt | 4 +- .../com/example/wear/tiles/golden/Calendar.kt | 4 +- .../com/example/wear/tiles/golden/Goal.kt | 17 +++ .../tiles/golden/GoldenTilesPreviewsRow1.kt | 72 +---------- .../tiles/golden/GoldenTilesPreviewsRow2.kt | 57 +-------- .../tiles/golden/GoldenTilesPreviewsRow3.kt | 117 +----------------- .../example/wear/tiles/golden/HeartRate.kt | 72 ++++++++++- .../com/example/wear/tiles/golden/Media.kt | 4 +- .../example/wear/tiles/golden/Meditation.kt | 32 ++++- .../com/example/wear/tiles/golden/News.kt | 11 +- .../java/com/example/wear/tiles/golden/Run.kt | 34 +++++ .../java/com/example/wear/tiles/golden/Ski.kt | 37 ++++-- .../com/example/wear/tiles/golden/Social.kt | 73 +++++++++-- .../com/example/wear/tiles/golden/Timer.kt | 38 +++--- .../com/example/wear/tiles/golden/Weather.kt | 31 +++++ .../com/example/wear/tiles/golden/Workout.kt | 54 ++++++++ .../app/src/main/res/drawable/avatar3.png | Bin 0 -> 65326 bytes .../app/src/main/res/drawable/avatar4.png | Bin 0 -> 49175 bytes 18 files changed, 374 insertions(+), 283 deletions(-) create mode 100644 WearTilesKotlin/app/src/main/res/drawable/avatar3.png create mode 100644 WearTilesKotlin/app/src/main/res/drawable/avatar4.png diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Alarm.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Alarm.kt index b23eb6709..61523f1f7 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Alarm.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Alarm.kt @@ -77,8 +77,8 @@ object Alarm { @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) @Preview(device = WearDevices.LARGE_ROUND) -@Preview(device = WearDevices.LARGE_ROUND, fontScale = 1.24f) -fun AlarmPreview(context: Context) = TilePreviewData { +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun alarmPreview(context: Context) = TilePreviewData { TilePreviewHelper.singleTimelineEntryTileBuilder( Alarm.layout( context, diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Calendar.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Calendar.kt index 796fc7207..66c21d6c4 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Calendar.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Calendar.kt @@ -68,8 +68,8 @@ object Calendar { @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) @Preview(device = WearDevices.LARGE_ROUND) -@Preview(device = WearDevices.LARGE_ROUND, fontScale = 1.24f) -fun CalendarPreview(context: Context) = TilePreviewData { +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun calendarPreview(context: Context) = TilePreviewData { TilePreviewHelper.singleTimelineEntryTileBuilder( Calendar.layout( context, diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Goal.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Goal.kt index fa0082210..4b0db0f8e 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Goal.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Goal.kt @@ -23,10 +23,15 @@ import androidx.wear.protolayout.material.ProgressIndicatorColors import androidx.wear.protolayout.material.Text import androidx.wear.protolayout.material.Typography import androidx.wear.protolayout.material.layouts.EdgeContentLayout +import androidx.wear.tiles.tooling.preview.Preview +import androidx.wear.tiles.tooling.preview.TilePreviewData +import androidx.wear.tiles.tooling.preview.TilePreviewHelper.singleTimelineEntryTileBuilder +import androidx.wear.tooling.preview.devices.WearDevices object Goal { fun layout(context: Context, deviceParameters: DeviceParameters, steps: Int, goal: Int) = EdgeContentLayout.Builder(deviceParameters) + .setResponsiveContentInsetEnabled(true) .setEdgeContent( CircularProgressIndicator.Builder() .setProgress(steps.toFloat() / goal) @@ -60,3 +65,15 @@ private fun blueOnTranslucentWhite() = ProgressIndicatorColors( /* trackColor = */ ColorBuilders.argb(GoldenTilesColors.White10Pc) ) + +@Preview(device = WearDevices.SMALL_ROUND) +@Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) +@Preview(device = WearDevices.LARGE_ROUND) +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun goalPreview(context: Context) = TilePreviewData { + singleTimelineEntryTileBuilder( + Goal.layout( + context, it.deviceConfiguration, steps = 5168, goal = 8000 + ) + ).build() +} diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/GoldenTilesPreviewsRow1.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/GoldenTilesPreviewsRow1.kt index b74ded52e..51f25671c 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/GoldenTilesPreviewsRow1.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/GoldenTilesPreviewsRow1.kt @@ -19,90 +19,30 @@ import android.content.Context import androidx.wear.protolayout.ResourceBuilders import androidx.wear.tiles.RequestBuilders import androidx.wear.tiles.tooling.preview.Preview -import androidx.wear.tiles.tooling.preview.TilePreviewData -import androidx.wear.tiles.tooling.preview.TilePreviewHelper.singleTimelineEntryTileBuilder import androidx.wear.tooling.preview.devices.WearDevices -import com.example.wear.tiles.R -import com.example.wear.tiles.tools.emptyClickable -import com.google.android.horologist.tiles.images.drawableResToImageResource @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun Goal(context: Context) = TilePreviewData { - singleTimelineEntryTileBuilder( - Goal.layout( - context, it.deviceConfiguration, steps = 5168, goal = 8000 - ) - ).build() -} +private fun goal(context: Context) = goalPreview(context) @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun WorkoutButtons(context: Context) = TilePreviewData(onTileResourceRequest = resources { - addIdToImageMapping( - Workout.BUTTON_1_ICON_ID, drawableResToImageResource(R.drawable.ic_run_24) - ) - addIdToImageMapping( - Workout.BUTTON_2_ICON_ID, drawableResToImageResource(R.drawable.ic_yoga_24) - ) - addIdToImageMapping( - Workout.BUTTON_3_ICON_ID, drawableResToImageResource(R.drawable.ic_cycling_24) - ) -}) { - singleTimelineEntryTileBuilder( - Workout.buttonsLayout( - context, - it.deviceConfiguration, - weekSummary = "1 run this week", - button1Clickable = emptyClickable, - button2Clickable = emptyClickable, - button3Clickable = emptyClickable, - chipClickable = emptyClickable - ) - ).build() -} +private fun workoutButtons(context: Context) = workoutButtonsPreview(context) @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun WorkoutLargeChip(context: Context) = TilePreviewData { - singleTimelineEntryTileBuilder( - Workout.largeChipLayout( - context, - it.deviceConfiguration, - clickable = emptyClickable, - lastWorkoutSummary = "Last session 45m" - ) - ).build() -} +private fun workoutLargeChip(context: Context) = workoutLargeChipPreview(context) @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun Run(context: Context) = TilePreviewData { - singleTimelineEntryTileBuilder( - Run.layout( - context, - it.deviceConfiguration, - lastRunText = "2 days ago", - startRunClickable = emptyClickable, - moreChipClickable = emptyClickable - ) - ).build() -} +private fun run(context: Context) = runPreview(context) @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun Ski(context: Context) = TilePreviewData { - singleTimelineEntryTileBuilder( - Ski.layout( - context, - stat1 = Ski.Stat("Max Spd", "46.5", "mph"), - stat2 = Ski.Stat("Distance", "21.8", "mile") - ) - ).build() -} +private fun ski(context: Context) = skiPreview(context) //@Preview -fun SleepTracker(context: Context) { +fun sleepTracker(context: Context) { // TODO: This tile doesn't use standard components; we can achieve it by drawing on a Canvas (Compose's DrawScope) then converting it to a bitmap using Horologist } diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/GoldenTilesPreviewsRow2.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/GoldenTilesPreviewsRow2.kt index 83c9ebd18..28e88e266 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/GoldenTilesPreviewsRow2.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/GoldenTilesPreviewsRow2.kt @@ -29,25 +29,16 @@ import com.google.android.horologist.tiles.images.drawableResToImageResource */ @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun HeartRateSimple(context: Context) = TilePreviewData { - TilePreviewHelper.singleTimelineEntryTileBuilder( - HeartRate.simpleLayout( - context, - it.deviceConfiguration, - heartRateBpm = 86, - clickable = emptyClickable - ) - ).build() -} +private fun heartRateSimple(context: Context) = heartRateSimplePreview(context) //@Preview -fun HeartRateGraph(context: Context) { +private fun heartRateGraph(context: Context) { TODO() } @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun MeditationChips(context: Context) = TilePreviewData(resources { +private fun meditationChips(context: Context) = TilePreviewData(resources { addIdToImageMapping( Meditation.CHIP_1_ICON_ID, drawableResToImageResource(R.drawable.ic_breathe_24) @@ -79,48 +70,12 @@ fun MeditationChips(context: Context) = TilePreviewData(resources { @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun MeditationButtons(context: Context) = TilePreviewData { - TilePreviewHelper.singleTimelineEntryTileBuilder( - Meditation.buttonsLayout( - context, - it.deviceConfiguration, - timer1 = Meditation.Timer(minutes = 5, clickable = emptyClickable), - timer2 = Meditation.Timer(minutes = 10, clickable = emptyClickable), - timer3 = Meditation.Timer(minutes = 15, clickable = emptyClickable), - clickable = emptyClickable - ) - ).build() -} +private fun meditationButtons(context: Context) = meditationButtonsPreview(context) @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun Timer(context: Context) = TilePreviewData { - TilePreviewHelper.singleTimelineEntryTileBuilder( - Timer.layout( - context, - it.deviceConfiguration, - timer1 = Timer.Timer(minutes = "05", clickable = emptyClickable), - timer2 = Timer.Timer(minutes = "10", clickable = emptyClickable), - timer3 = Timer.Timer(minutes = "15", clickable = emptyClickable), - timer4 = Timer.Timer(minutes = "20", clickable = emptyClickable), - timer5 = Timer.Timer(minutes = "30", clickable = emptyClickable), - timer6 = Timer.Timer(minutes = "45", clickable = emptyClickable), - clickable = emptyClickable - ) - ).build() -} +private fun timer(context: Context) = timerPreview(context) @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun Alarm(context: Context) = TilePreviewData { - TilePreviewHelper.singleTimelineEntryTileBuilder( - Alarm.layout( - context, - it.deviceConfiguration, - timeUntilAlarm = "Less than 1 min", - alarmTime = "14:58", - alarmDays = "Mon, Tue, Wed, Thu, Fri,Sat", - clickable = emptyClickable - ) - ).build() -} +private fun alarm(context: Context) = alarmPreview(context) diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/GoldenTilesPreviewsRow3.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/GoldenTilesPreviewsRow3.kt index 407bb1e73..8db7122a3 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/GoldenTilesPreviewsRow3.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/GoldenTilesPreviewsRow3.kt @@ -17,140 +17,33 @@ package com.example.wear.tiles.golden import android.content.Context import androidx.wear.tiles.tooling.preview.Preview -import androidx.wear.tiles.tooling.preview.TilePreviewData -import androidx.wear.tiles.tooling.preview.TilePreviewHelper import androidx.wear.tooling.preview.devices.WearDevices -import com.example.wear.tiles.R -import com.example.wear.tiles.tools.emptyClickable -import com.google.android.horologist.tiles.images.drawableResToImageResource -import java.time.Clock -import java.time.LocalDate -import java.time.LocalDateTime -import java.time.ZoneOffset /** * b/238560022 misaligned because we can't add an offset, small preview is clipped */ @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun Weather(context: Context) = TilePreviewData(resources { - addIdToImageMapping( - Weather.SCATTERED_SHOWERS_ICON_ID, - drawableResToImageResource(R.drawable.scattered_showers) - ) -}) { - TilePreviewHelper.singleTimelineEntryTileBuilder( - Weather.layout( - context, - it.deviceConfiguration, - location = "San Francisco", - weatherIconId = Weather.SCATTERED_SHOWERS_ICON_ID, - currentTemperature = "52°", - lowTemperature = "48°", - highTemperature = "64°", - weatherSummary = "Showers" - ) - ).build() -} +private fun weather(context: Context) = weatherPreview(context) /** * b/238556504 alignment doesn't match figma. */ @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun News(context: Context) = TilePreviewData { - val now = LocalDateTime.of(2024, 8, 1, 0, 0).toInstant(ZoneOffset.UTC) - val clock = Clock.fixed(now, Clock.systemUTC().zone) - - TilePreviewHelper.singleTimelineEntryTileBuilder( - News.layout( - context, - it.deviceConfiguration, - headline = "Millions still without power as new storm moves across US", - newsVendor = "The New York Times", - date = LocalDate.now(clock).minusDays(1), - clock = clock, - clickable = emptyClickable - ) - ).build() -} +private fun news(context: Context) = newsPreview(context) /** * b/238571095 Alignment doesn't match Figma */ @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun Calendar(context: Context) = TilePreviewData { - TilePreviewHelper.singleTimelineEntryTileBuilder( - Calendar.layout( - context, - it.deviceConfiguration, - eventTime = "6:30-7:30 PM", - eventName = "Morning Pilates with Christina Lloyd", - eventLocation = "216 Market Street", - clickable = emptyClickable - ) - ).build() -} +private fun calendar(context: Context) = calendarPreview(context) @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun Social(context: Context) = TilePreviewData(resources { - addIdToImageMapping(Social.AVATAR_ID_1, drawableResToImageResource(R.drawable.avatar1)) - addIdToImageMapping(Social.AVATAR_ID_2, drawableResToImageResource(R.drawable.avatar2)) -}) { - TilePreviewHelper.singleTimelineEntryTileBuilder( - Social.layout( - context, - it.deviceConfiguration, - Social.Contact( - initials = "AC", - clickable = emptyClickable, - avatarId = Social.AVATAR_ID_1 - ), - Social.Contact(initials = "AD", clickable = emptyClickable, avatarId = null), - Social.Contact( - initials = "BD", - color = GoldenTilesColors.Purple, - clickable = emptyClickable, - avatarId = null - ), - Social.Contact( - initials = "DC", - clickable = emptyClickable, - avatarId = Social.AVATAR_ID_2 - ) - ) - ).build() -} +private fun social(context: Context) = socialPreview(context) @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) -fun Media(context: Context) = TilePreviewData(resources { - addIdToImageMapping( - Media.CHIP_1_ICON_ID, - drawableResToImageResource(R.drawable.ic_music_queue_24) - ) - addIdToImageMapping( - Media.CHIP_2_ICON_ID, - drawableResToImageResource(R.drawable.ic_podcasts_24) - ) -}) { - TilePreviewHelper.singleTimelineEntryTileBuilder( - Media.layout( - context, - it.deviceConfiguration, - playlist1 = Media.Playlist( - label = "Liked songs", - iconId = Media.CHIP_1_ICON_ID, - clickable = emptyClickable - ), - playlist2 = Media.Playlist( - label = "Podcasts", - iconId = Media.CHIP_2_ICON_ID, - clickable = emptyClickable - ), - browseClickable = emptyClickable - ) - ).build() -} +private fun media(context: Context) = mediaPreview(context) diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/HeartRate.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/HeartRate.kt index 8581b32d1..6aaff4ffc 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/HeartRate.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/HeartRate.kt @@ -18,21 +18,30 @@ package com.example.wear.tiles.golden import android.content.Context import androidx.wear.protolayout.ColorBuilders import androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters +import androidx.wear.protolayout.LayoutElementBuilders.Column import androidx.wear.protolayout.ModifiersBuilders.Clickable import androidx.wear.protolayout.material.ChipColors import androidx.wear.protolayout.material.CompactChip import androidx.wear.protolayout.material.Text import androidx.wear.protolayout.material.Typography +import androidx.wear.protolayout.material.layouts.MultiSlotLayout import androidx.wear.protolayout.material.layouts.PrimaryLayout +import androidx.wear.tiles.tooling.preview.Preview +import androidx.wear.tiles.tooling.preview.TilePreviewData +import androidx.wear.tiles.tooling.preview.TilePreviewHelper +import androidx.wear.tooling.preview.devices.WearDevices +import com.example.wear.tiles.tools.emptyClickable object HeartRate { fun simpleLayout( context: Context, deviceParameters: DeviceParameters, - heartRateBpm: Int, + highestHeartRateBpm: Int, + lowestHeartRateBpm: Int, clickable: Clickable ) = PrimaryLayout.Builder(deviceParameters) + .setResponsiveContentInsetEnabled(true) .setPrimaryLabelTextContent( Text.Builder(context, "Now") .setTypography(Typography.TYPOGRAPHY_CAPTION1) @@ -40,9 +49,48 @@ object HeartRate { .build() ) .setContent( - Text.Builder(context, heartRateBpm.toString()) - .setTypography(Typography.TYPOGRAPHY_DISPLAY1) - .setColor(ColorBuilders.argb(GoldenTilesColors.White)) + MultiSlotLayout.Builder() + .setHorizontalSpacerWidth(16f) + .addSlotContent( + Column.Builder() + .apply { + if (deviceParameters.screenWidthDp > 225) { + addContent( + Text.Builder(context, "Highest") + .setTypography(Typography.TYPOGRAPHY_BUTTON) + .setColor(ColorBuilders.argb(GoldenTilesColors.LightRed)) + .build() + ) + } + } + .addContent( + Text.Builder(context, highestHeartRateBpm.toString()) + .setTypography(Typography.TYPOGRAPHY_DISPLAY1) + .setColor(ColorBuilders.argb(GoldenTilesColors.White)) + .build() + ) + .build() + ) + .apply { + if (deviceParameters.screenWidthDp > 225) { + addSlotContent( + Column.Builder() + .addContent( + Text.Builder(context, "Lowest") + .setTypography(Typography.TYPOGRAPHY_BUTTON) + .setColor(ColorBuilders.argb(GoldenTilesColors.LightRed)) + .build() + ) + .addContent( + Text.Builder(context, lowestHeartRateBpm.toString()) + .setTypography(Typography.TYPOGRAPHY_DISPLAY1) + .setColor(ColorBuilders.argb(GoldenTilesColors.White)) + .build() + ) + .build() + ) + } + } .build() ) @@ -66,3 +114,19 @@ object HeartRate { ) .build() } + +@Preview(device = WearDevices.SMALL_ROUND) +@Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) +@Preview(device = WearDevices.LARGE_ROUND) +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun heartRateSimplePreview(context: Context) = TilePreviewData { + TilePreviewHelper.singleTimelineEntryTileBuilder( + HeartRate.simpleLayout( + context, + it.deviceConfiguration, + highestHeartRateBpm = 86, + lowestHeartRateBpm = 54, + clickable = emptyClickable + ) + ).build() +} diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Media.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Media.kt index e98c78bb7..3ac3eead6 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Media.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Media.kt @@ -114,8 +114,8 @@ object Media { @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) @Preview(device = WearDevices.LARGE_ROUND) -@Preview(device = WearDevices.LARGE_ROUND, fontScale = 1.24f) -fun MediaPreview(context: Context) = TilePreviewData(resources { +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun mediaPreview(context: Context) = TilePreviewData(resources { addIdToImageMapping( Media.CHIP_1_ICON_ID, drawableResToImageResource(R.drawable.ic_music_queue_24) diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Meditation.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Meditation.kt index 4b8bf74cb..f2e68672c 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Meditation.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Meditation.kt @@ -121,8 +121,11 @@ object Meditation { timer1: Timer, timer2: Timer, timer3: Timer, + timer4: Timer, + timer5: Timer, clickable: Clickable ) = PrimaryLayout.Builder(deviceParameters) + .setResponsiveContentInsetEnabled(true) .setPrimaryLabelTextContent( Text.Builder(context, "Minutes") .setTypography(Typography.TYPOGRAPHY_CAPTION1) @@ -134,6 +137,12 @@ object Meditation { .addButtonContent(timerButton(context, timer1)) .addButtonContent(timerButton(context, timer2)) .addButtonContent(timerButton(context, timer3)) + .apply { + if (deviceParameters.screenWidthDp > 225) { + addButtonContent(timerButton(context, timer4)) + addButtonContent(timerButton(context, timer5)) + } + } .build() ) .setPrimaryChipContent( @@ -170,8 +179,8 @@ object Meditation { @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) @Preview(device = WearDevices.LARGE_ROUND) -@Preview(device = WearDevices.LARGE_ROUND, fontScale = 1.24f) -fun MeditationChipsPreview(context: Context) = TilePreviewData(resources { +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun meditationChipsPreview(context: Context) = TilePreviewData(resources { addIdToImageMapping( Meditation.CHIP_1_ICON_ID, drawableResToImageResource(R.drawable.ic_breathe_24) @@ -200,3 +209,22 @@ fun MeditationChipsPreview(context: Context) = TilePreviewData(resources { ) ).build() } + +@Preview(device = WearDevices.SMALL_ROUND) +@Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) +@Preview(device = WearDevices.LARGE_ROUND) +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun meditationButtonsPreview(context: Context) = TilePreviewData { + TilePreviewHelper.singleTimelineEntryTileBuilder( + Meditation.buttonsLayout( + context, + it.deviceConfiguration, + timer1 = Meditation.Timer(minutes = 5, clickable = emptyClickable), + timer2 = Meditation.Timer(minutes = 10, clickable = emptyClickable), + timer3 = Meditation.Timer(minutes = 15, clickable = emptyClickable), + timer4 = Meditation.Timer(minutes = 20, clickable = emptyClickable), + timer5 = Meditation.Timer(minutes = 25, clickable = emptyClickable), + clickable = emptyClickable + ) + ).build() +} diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/News.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/News.kt index 5f4427b82..3f9e2620b 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/News.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/News.kt @@ -48,14 +48,15 @@ object News { ) = PrimaryLayout.Builder(deviceParameters) .setResponsiveContentInsetEnabled(true) .apply { - if (deviceParameters.screenWidthDp > 225) { + if (deviceParameters.screenWidthDp > 225) { setPrimaryLabelTextContent( Text.Builder(context, date.formatLocalDateTime(today = LocalDate.now(clock))) .setColor(ColorBuilders.argb(GoldenTilesColors.White)) .setTypography(Typography.TYPOGRAPHY_CAPTION1) .build() ) - } } + } + } .setContent( Text.Builder(context, headline) .setMaxLines(3) @@ -75,7 +76,7 @@ object News { .build() } -fun LocalDate.formatLocalDateTime(today: LocalDate = LocalDate.now()): String { +internal fun LocalDate.formatLocalDateTime(today: LocalDate = LocalDate.now()): String { val yesterday = today.minusDays(1) return when { @@ -88,8 +89,8 @@ fun LocalDate.formatLocalDateTime(today: LocalDate = LocalDate.now()): String { @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) @Preview(device = WearDevices.LARGE_ROUND) -@Preview(device = WearDevices.LARGE_ROUND, fontScale = 1.24f) -fun NewsPreview(context: Context) = TilePreviewData { +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun newsPreview(context: Context) = TilePreviewData { val now = LocalDateTime.of(2024, 8, 1, 0, 0).toInstant(ZoneOffset.UTC) val clock = Clock.fixed(now, Clock.systemUTC().zone) diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Run.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Run.kt index 25ad71f46..4dd777784 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Run.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Run.kt @@ -26,6 +26,11 @@ import androidx.wear.protolayout.material.Text import androidx.wear.protolayout.material.TitleChip import androidx.wear.protolayout.material.Typography import androidx.wear.protolayout.material.layouts.PrimaryLayout +import androidx.wear.tiles.tooling.preview.Preview +import androidx.wear.tiles.tooling.preview.TilePreviewData +import androidx.wear.tiles.tooling.preview.TilePreviewHelper.singleTimelineEntryTileBuilder +import androidx.wear.tooling.preview.devices.WearDevices +import com.example.wear.tiles.tools.emptyClickable object Run { @@ -33,9 +38,11 @@ object Run { context: Context, deviceParameters: DeviceParameters, lastRunText: String, + chanceOfRain: Int, startRunClickable: Clickable, moreChipClickable: Clickable ) = PrimaryLayout.Builder(deviceParameters) + .setResponsiveContentInsetEnabled(true) .setPrimaryLabelTextContent( Text.Builder(context, lastRunText) .setTypography(Typography.TYPOGRAPHY_CAPTION1) @@ -58,6 +65,16 @@ object Run { ) .build() ) + .apply { + if (deviceParameters.screenWidthDp > 225) { + setSecondaryLabelTextContent( + Text.Builder(context, "$chanceOfRain% chance of rain") + .setTypography(Typography.TYPOGRAPHY_CAPTION1) + .setColor(ColorBuilders.argb(GoldenTilesColors.LightGray)) + .build() + ) + } + } .setPrimaryChipContent( CompactChip.Builder(context, "More", moreChipClickable, deviceParameters) .setChipColors( @@ -72,3 +89,20 @@ object Run { ) .build() } + +@Preview(device = WearDevices.SMALL_ROUND) +@Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) +@Preview(device = WearDevices.LARGE_ROUND) +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun runPreview(context: Context) = TilePreviewData { + singleTimelineEntryTileBuilder( + Run.layout( + context, + it.deviceConfiguration, + lastRunText = "2 days ago", + chanceOfRain = 20, + startRunClickable = emptyClickable, + moreChipClickable = emptyClickable + ) + ).build() +} diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Ski.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Ski.kt index b3111ae7a..0966e3869 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Ski.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Ski.kt @@ -17,21 +17,29 @@ package com.example.wear.tiles.golden import android.content.Context import androidx.wear.protolayout.ColorBuilders -import androidx.wear.protolayout.DimensionBuilders +import androidx.wear.protolayout.DeviceParametersBuilders import androidx.wear.protolayout.LayoutElementBuilders import androidx.wear.protolayout.material.Text import androidx.wear.protolayout.material.Typography import androidx.wear.protolayout.material.layouts.MultiSlotLayout +import androidx.wear.protolayout.material.layouts.PrimaryLayout +import androidx.wear.tiles.tooling.preview.Preview +import androidx.wear.tiles.tooling.preview.TilePreviewData +import androidx.wear.tiles.tooling.preview.TilePreviewHelper +import androidx.wear.tooling.preview.devices.WearDevices object Ski { - fun layout(context: Context, stat1: Stat, stat2: Stat) = LayoutElementBuilders.Box.Builder() - .setHorizontalAlignment(LayoutElementBuilders.HORIZONTAL_ALIGN_CENTER) - .setVerticalAlignment(LayoutElementBuilders.VERTICAL_ALIGN_CENTER) - .setHeight(DimensionBuilders.ExpandedDimensionProp.Builder().build()) - .setWidth(DimensionBuilders.ExpandedDimensionProp.Builder().build()) - .addContent( + fun layout( + context: Context, + deviceParameters: DeviceParametersBuilders.DeviceParameters, + stat1: Stat, + stat2: Stat + ) = PrimaryLayout.Builder(deviceParameters) + .setResponsiveContentInsetEnabled(true) + .setContent( MultiSlotLayout.Builder() + .setHorizontalSpacerWidth(16f) .addSlotContent(statColumn(context, stat1)) .addSlotContent(statColumn(context, stat2)) .build() @@ -61,3 +69,18 @@ object Ski { data class Stat(val label: String, val value: String, val unit: String) } + +@Preview(device = WearDevices.SMALL_ROUND) +@Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) +@Preview(device = WearDevices.LARGE_ROUND) +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun skiPreview(context: Context) = TilePreviewData { + TilePreviewHelper.singleTimelineEntryTileBuilder( + Ski.layout( + context, + it.deviceConfiguration, + stat1 = Ski.Stat("Max Spd", "46.5", "mph"), + stat2 = Ski.Stat("Distance", "21.8", "mile") + ) + ).build() +} diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Social.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Social.kt index 629f4053d..77e33ee7e 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Social.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Social.kt @@ -25,26 +25,36 @@ import androidx.wear.protolayout.material.ButtonColors import androidx.wear.protolayout.material.Typography import androidx.wear.protolayout.material.layouts.MultiButtonLayout import androidx.wear.protolayout.material.layouts.PrimaryLayout +import androidx.wear.tiles.tooling.preview.Preview +import androidx.wear.tiles.tooling.preview.TilePreviewData +import androidx.wear.tiles.tooling.preview.TilePreviewHelper +import androidx.wear.tooling.preview.devices.WearDevices +import com.example.wear.tiles.R +import com.example.wear.tiles.tools.emptyClickable +import com.google.android.horologist.tiles.images.drawableResToImageResource object Social { const val AVATAR_ID_1 = "social avatar id 1" const val AVATAR_ID_2 = "social avatar id 2" + const val AVATAR_ID_3 = "social avatar id 3" + const val AVATAR_ID_4 = "social avatar id 4" fun layout( context: Context, deviceParameters: DeviceParameters, - contact1: Contact, - contact2: Contact, - contact3: Contact, - contact4: Contact + contacts: List ) = PrimaryLayout.Builder(deviceParameters) + .setResponsiveContentInsetEnabled(true) .setContent( MultiButtonLayout.Builder() - .addButtonContent(button(context, contact1)) - .addButtonContent(button(context, contact2)) - .addButtonContent(button(context, contact3)) - .addButtonContent(button(context, contact4)) + .apply { + contacts + .take(if (deviceParameters.screenWidthDp > 225) 6 else 4) + .forEach { contact -> + addButtonContent(button(context, contact)) + } + } .build() ) .build() @@ -77,3 +87,50 @@ object Social { val avatarId: String? ) } + +@Preview(device = WearDevices.SMALL_ROUND) +@Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) +@Preview(device = WearDevices.LARGE_ROUND) +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun socialPreview(context: Context) = TilePreviewData(resources { + addIdToImageMapping(Social.AVATAR_ID_1, drawableResToImageResource(R.drawable.avatar1)) + addIdToImageMapping(Social.AVATAR_ID_2, drawableResToImageResource(R.drawable.avatar2)) + addIdToImageMapping(Social.AVATAR_ID_3, drawableResToImageResource(R.drawable.avatar3)) + addIdToImageMapping(Social.AVATAR_ID_4, drawableResToImageResource(R.drawable.avatar4)) +}) { + TilePreviewHelper.singleTimelineEntryTileBuilder( + Social.layout( + context, + it.deviceConfiguration, + listOf( + Social.Contact( + initials = "AC", + clickable = emptyClickable, + avatarId = Social.AVATAR_ID_1 + ), + Social.Contact(initials = "AD", clickable = emptyClickable, avatarId = null), + Social.Contact( + initials = "BD", + color = GoldenTilesColors.Purple, + clickable = emptyClickable, + avatarId = null + ), + Social.Contact( + initials = "DC", + clickable = emptyClickable, + avatarId = Social.AVATAR_ID_2 + ), + Social.Contact( + initials = "DA", + clickable = emptyClickable, + avatarId = Social.AVATAR_ID_3 + ), + Social.Contact( + initials = "DB", + clickable = emptyClickable, + avatarId = Social.AVATAR_ID_4 + ), + ) + ) + ).build() +} diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Timer.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Timer.kt index 0a6cf0f4c..8d970102c 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Timer.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Timer.kt @@ -37,26 +37,18 @@ object Timer { fun layout( context: Context, deviceParameters: DeviceParameters, - timer1: Timer, - timer2: Timer, - timer3: Timer, - timer4: Timer, - timer5: Timer, - timer6: Timer, + timerList: List, clickable: Clickable ) = PrimaryLayout.Builder(deviceParameters) .setResponsiveContentInsetEnabled(true) .setContent( MultiButtonLayout.Builder() - .addButtonContent(timerButton(context, timer1)) - .addButtonContent(timerButton(context, timer2)) - .addButtonContent(timerButton(context, timer3)) - .addButtonContent(timerButton(context, timer4)) - .addButtonContent(timerButton(context, timer5)) .apply { - if (deviceParameters.screenWidthDp > 225) { - addButtonContent(timerButton(context, timer6)) - } + timerList + .take(if (deviceParameters.screenWidthDp > 225) 6 else 5) + .forEach { timer -> + addButtonContent(timerButton(context, timer)) + } } .build() ) @@ -93,18 +85,20 @@ object Timer { @Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) @Preview(device = WearDevices.LARGE_ROUND) -@Preview(device = WearDevices.LARGE_ROUND, fontScale = 1.24f) -fun TimerPreview(context: Context) = TilePreviewData { +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun timerPreview(context: Context) = TilePreviewData { TilePreviewHelper.singleTimelineEntryTileBuilder( Timer.layout( context, it.deviceConfiguration, - timer1 = Timer.Timer(minutes = "05", clickable = emptyClickable), - timer2 = Timer.Timer(minutes = "10", clickable = emptyClickable), - timer3 = Timer.Timer(minutes = "15", clickable = emptyClickable), - timer4 = Timer.Timer(minutes = "20", clickable = emptyClickable), - timer5 = Timer.Timer(minutes = "30", clickable = emptyClickable), - timer6 = Timer.Timer(minutes = "45", clickable = emptyClickable), + timerList = listOf( + Timer.Timer(minutes = "05", clickable = emptyClickable), + Timer.Timer(minutes = "10", clickable = emptyClickable), + Timer.Timer(minutes = "15", clickable = emptyClickable), + Timer.Timer(minutes = "20", clickable = emptyClickable), + Timer.Timer(minutes = "30", clickable = emptyClickable), + Timer.Timer(minutes = "45", clickable = emptyClickable) + ), clickable = emptyClickable ) ).build() diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Weather.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Weather.kt index 9463b6841..4574ed669 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Weather.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Weather.kt @@ -25,6 +25,12 @@ import androidx.wear.protolayout.material.Text import androidx.wear.protolayout.material.Typography import androidx.wear.protolayout.material.layouts.MultiSlotLayout import androidx.wear.protolayout.material.layouts.PrimaryLayout +import androidx.wear.tiles.tooling.preview.Preview +import androidx.wear.tiles.tooling.preview.TilePreviewData +import androidx.wear.tiles.tooling.preview.TilePreviewHelper +import androidx.wear.tooling.preview.devices.WearDevices +import com.example.wear.tiles.R +import com.google.android.horologist.tiles.images.drawableResToImageResource object Weather { @@ -40,6 +46,7 @@ object Weather { highTemperature: String, weatherSummary: String ) = PrimaryLayout.Builder(deviceParameters) + .setResponsiveContentInsetEnabled(true) .setPrimaryLabelTextContent( Text.Builder(context, location) .setColor(ColorBuilders.argb(GoldenTilesColors.Blue)) @@ -87,3 +94,27 @@ object Weather { ) .build() } + +@Preview(device = WearDevices.SMALL_ROUND) +@Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) +@Preview(device = WearDevices.LARGE_ROUND) +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun weatherPreview(context: Context) = TilePreviewData(resources { + addIdToImageMapping( + Weather.SCATTERED_SHOWERS_ICON_ID, + drawableResToImageResource(R.drawable.scattered_showers) + ) +}) { + TilePreviewHelper.singleTimelineEntryTileBuilder( + Weather.layout( + context, + it.deviceConfiguration, + location = "San Francisco", + weatherIconId = Weather.SCATTERED_SHOWERS_ICON_ID, + currentTemperature = "52°", + lowTemperature = "48°", + highTemperature = "64°", + weatherSummary = "Showers" + ) + ).build() +} diff --git a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Workout.kt b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Workout.kt index 459c73d8d..a344081ec 100644 --- a/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Workout.kt +++ b/WearTilesKotlin/app/src/debug/java/com/example/wear/tiles/golden/Workout.kt @@ -28,6 +28,13 @@ import androidx.wear.protolayout.material.TitleChip import androidx.wear.protolayout.material.Typography import androidx.wear.protolayout.material.layouts.MultiButtonLayout import androidx.wear.protolayout.material.layouts.PrimaryLayout +import androidx.wear.tiles.tooling.preview.Preview +import androidx.wear.tiles.tooling.preview.TilePreviewData +import androidx.wear.tiles.tooling.preview.TilePreviewHelper.singleTimelineEntryTileBuilder +import androidx.wear.tooling.preview.devices.WearDevices +import com.example.wear.tiles.R +import com.example.wear.tiles.tools.emptyClickable +import com.google.android.horologist.tiles.images.drawableResToImageResource object Workout { const val BUTTON_1_ICON_ID = "workout 1" @@ -44,6 +51,7 @@ object Workout { chipClickable: ModifiersBuilders.Clickable ) = PrimaryLayout.Builder(deviceParameters) + .setResponsiveContentInsetEnabled(true) .setPrimaryLabelTextContent( Text.Builder(context, weekSummary) .setTypography(Typography.TYPOGRAPHY_CAPTION1) @@ -86,6 +94,7 @@ object Workout { clickable: ModifiersBuilders.Clickable, lastWorkoutSummary: String ) = PrimaryLayout.Builder(deviceParameters) + .setResponsiveContentInsetEnabled(true) .setPrimaryLabelTextContent( Text.Builder(context, "Power Yoga") .setTypography(Typography.TYPOGRAPHY_CAPTION1) @@ -116,3 +125,48 @@ object Workout { ) .build() } + + +@Preview(device = WearDevices.SMALL_ROUND) +@Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) +@Preview(device = WearDevices.LARGE_ROUND) +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun workoutButtonsPreview(context: Context) = + TilePreviewData(onTileResourceRequest = resources { + addIdToImageMapping( + Workout.BUTTON_1_ICON_ID, drawableResToImageResource(R.drawable.ic_run_24) + ) + addIdToImageMapping( + Workout.BUTTON_2_ICON_ID, drawableResToImageResource(R.drawable.ic_yoga_24) + ) + addIdToImageMapping( + Workout.BUTTON_3_ICON_ID, drawableResToImageResource(R.drawable.ic_cycling_24) + ) + }) { + singleTimelineEntryTileBuilder( + Workout.buttonsLayout( + context, + it.deviceConfiguration, + weekSummary = "1 run this week", + button1Clickable = emptyClickable, + button2Clickable = emptyClickable, + button3Clickable = emptyClickable, + chipClickable = emptyClickable + ) + ).build() + } + +@Preview(device = WearDevices.SMALL_ROUND) +@Preview(device = WearDevices.SMALL_ROUND, fontScale = 1.24f) +@Preview(device = WearDevices.LARGE_ROUND) +@Preview(device = WearDevices.LARGE_ROUND, fontScale = 0.94f) +internal fun workoutLargeChipPreview(context: Context) = TilePreviewData { + singleTimelineEntryTileBuilder( + Workout.largeChipLayout( + context, + it.deviceConfiguration, + clickable = emptyClickable, + lastWorkoutSummary = "Last session 45m" + ) + ).build() +} diff --git a/WearTilesKotlin/app/src/main/res/drawable/avatar3.png b/WearTilesKotlin/app/src/main/res/drawable/avatar3.png new file mode 100644 index 0000000000000000000000000000000000000000..c6f0fbb2af42348f6d730e759ab98ace30accdaf GIT binary patch literal 65326 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∨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
@Em(Gu;^&=^cf1>6C` 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 D%huVn literal 0 HcmV?d00001 From c5497341b5971a6480051493437e5bcdef0dce71 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 07:11:21 -0400 Subject: [PATCH 4/4] Update all dependencies (#1170) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Complications/gradle/libs.versions.toml | 2 +- ComposeStarter/gradle/libs.versions.toml | 2 +- DataLayer/gradle/libs.versions.toml | 2 +- WatchFaceFormat/Complications/build.gradle.kts | 2 +- WatchFaceFormat/Flavors/build.gradle.kts | 2 +- WatchFaceFormat/SimpleAnalog/build.gradle.kts | 2 +- WatchFaceFormat/SimpleDigital/build.gradle.kts | 2 +- WatchFaceFormat/Weather/build.gradle.kts | 2 +- WatchFaceKotlin/gradle/libs.versions.toml | 6 +++--- WearOAuth/gradle/libs.versions.toml | 8 ++++---- WearSpeakerSample/gradle/libs.versions.toml | 2 +- WearTilesKotlin/gradle/libs.versions.toml | 2 +- 12 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Complications/gradle/libs.versions.toml b/Complications/gradle/libs.versions.toml index f38b2d211..d5e5dc1b6 100644 --- a/Complications/gradle/libs.versions.toml +++ b/Complications/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -android-gradle-plugin = "8.5.1" +android-gradle-plugin = "8.5.2" androidx-wear-watchface = "1.2.1" org-jetbrains-kotlin = "1.9.24" diff --git a/ComposeStarter/gradle/libs.versions.toml b/ComposeStarter/gradle/libs.versions.toml index 1d9cb23ff..40e7a7272 100644 --- a/ComposeStarter/gradle/libs.versions.toml +++ b/ComposeStarter/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -android-gradle-plugin = "8.5.1" +android-gradle-plugin = "8.5.2" androidx-activity = "1.9.1" androidx-compose-bom = "2024.06.00" androidx-wear-compose = "1.3.1" diff --git a/DataLayer/gradle/libs.versions.toml b/DataLayer/gradle/libs.versions.toml index be9b0834e..88039f24c 100644 --- a/DataLayer/gradle/libs.versions.toml +++ b/DataLayer/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -android-gradle-plugin = "8.5.1" +android-gradle-plugin = "8.5.2" androidx-activity = "1.9.1" androidx-compose-bom = "2024.06.00" # do not bump to 2.8.0 until bumping to beta version of Compose diff --git a/WatchFaceFormat/Complications/build.gradle.kts b/WatchFaceFormat/Complications/build.gradle.kts index 40bd59ac0..4610d97f7 100644 --- a/WatchFaceFormat/Complications/build.gradle.kts +++ b/WatchFaceFormat/Complications/build.gradle.kts @@ -14,5 +14,5 @@ * limitations under the License. */ plugins { - id("com.android.application") version "8.5.1" apply false + id("com.android.application") version "8.5.2" apply false } \ No newline at end of file diff --git a/WatchFaceFormat/Flavors/build.gradle.kts b/WatchFaceFormat/Flavors/build.gradle.kts index 40bd59ac0..4610d97f7 100644 --- a/WatchFaceFormat/Flavors/build.gradle.kts +++ b/WatchFaceFormat/Flavors/build.gradle.kts @@ -14,5 +14,5 @@ * limitations under the License. */ plugins { - id("com.android.application") version "8.5.1" apply false + id("com.android.application") version "8.5.2" apply false } \ No newline at end of file diff --git a/WatchFaceFormat/SimpleAnalog/build.gradle.kts b/WatchFaceFormat/SimpleAnalog/build.gradle.kts index 40bd59ac0..4610d97f7 100644 --- a/WatchFaceFormat/SimpleAnalog/build.gradle.kts +++ b/WatchFaceFormat/SimpleAnalog/build.gradle.kts @@ -14,5 +14,5 @@ * limitations under the License. */ plugins { - id("com.android.application") version "8.5.1" apply false + id("com.android.application") version "8.5.2" apply false } \ No newline at end of file diff --git a/WatchFaceFormat/SimpleDigital/build.gradle.kts b/WatchFaceFormat/SimpleDigital/build.gradle.kts index 40bd59ac0..4610d97f7 100644 --- a/WatchFaceFormat/SimpleDigital/build.gradle.kts +++ b/WatchFaceFormat/SimpleDigital/build.gradle.kts @@ -14,5 +14,5 @@ * limitations under the License. */ plugins { - id("com.android.application") version "8.5.1" apply false + id("com.android.application") version "8.5.2" apply false } \ No newline at end of file diff --git a/WatchFaceFormat/Weather/build.gradle.kts b/WatchFaceFormat/Weather/build.gradle.kts index 40bd59ac0..4610d97f7 100644 --- a/WatchFaceFormat/Weather/build.gradle.kts +++ b/WatchFaceFormat/Weather/build.gradle.kts @@ -14,5 +14,5 @@ * limitations under the License. */ plugins { - id("com.android.application") version "8.5.1" apply false + id("com.android.application") version "8.5.2" apply false } \ No newline at end of file diff --git a/WatchFaceKotlin/gradle/libs.versions.toml b/WatchFaceKotlin/gradle/libs.versions.toml index c75b03191..2736fa4dc 100644 --- a/WatchFaceKotlin/gradle/libs.versions.toml +++ b/WatchFaceKotlin/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -android-gradle-plugin = "8.5.1" +android-gradle-plugin = "8.5.2" androidx-activity = "1.9.1" androidx-lifecycle = "2.8.4" androidx-test = "1.4.0" @@ -12,11 +12,11 @@ org-jetbrains-kotlin = "1.9.24" org-jetbrains-kotlinx = "1.8.1" [libraries] -android-lint-gradle = "com.android.tools.lint:lint-gradle:31.5.1" +android-lint-gradle = "com.android.tools.lint:lint-gradle:31.5.2" android-material = "com.google.android.material:material:1.12.0" androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "androidx-activity" } androidx-core-ktx = "androidx.core:core-ktx:1.13.1" -androidx-databinding-viewbinding = "androidx.databinding:viewbinding:8.5.1" +androidx-databinding-viewbinding = "androidx.databinding:viewbinding:8.5.2" androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx-lifecycle" } androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle" } androidx-wear = "androidx.wear:wear:1.3.0" diff --git a/WearOAuth/gradle/libs.versions.toml b/WearOAuth/gradle/libs.versions.toml index b90b14663..504f58b85 100644 --- a/WearOAuth/gradle/libs.versions.toml +++ b/WearOAuth/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -android-gradle-plugin = "8.5.1" +android-gradle-plugin = "8.5.2" androidx-compose-bom = "2024.06.00" androidx-activity = "1.9.1" androidx-lifecycle = "2.8.4" @@ -19,9 +19,9 @@ ui-test-junit4 = "1.6.8" [libraries] android-build-gradle = { module = "com.android.tools.build:gradle", version.ref = "android-gradle-plugin" } android-desugarjdklibs = "com.android.tools:desugar_jdk_libs:2.0.4" -android-lint-gradle = "com.android.tools.lint:lint-gradle:31.5.1" +android-lint-gradle = "com.android.tools.lint:lint-gradle:31.5.2" android-material = "com.google.android.material:material:1.12.0" -android-tools-lint-gradle = "com.android.tools.lint:lint-gradle:31.5.1" +android-tools-lint-gradle = "com.android.tools.lint:lint-gradle:31.5.2" androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity" } androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "androidx-activity" } androidx-appcompat = "androidx.appcompat:appcompat:1.7.0" @@ -30,7 +30,7 @@ androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", versi androidx-constraintlayout = "androidx.constraintlayout:constraintlayout:2.1.4" androidx-constraintlayout-compose = "androidx.constraintlayout:constraintlayout-compose:1.0.1" androidx-core-ktx = "androidx.core:core-ktx:1.13.1" -androidx-databinding-viewbinding = "androidx.databinding:viewbinding:8.5.1" +androidx-databinding-viewbinding = "androidx.databinding:viewbinding:8.5.2" androidx-datastore-preferences = "androidx.datastore:datastore-preferences:1.1.1" androidx-fragment-ktx = "androidx.fragment:fragment-ktx:1.8.2" androidx-lifecycle-common-java8 = { module = "androidx.lifecycle:lifecycle-common-java8", version.ref = "androidx-lifecycle" } diff --git a/WearSpeakerSample/gradle/libs.versions.toml b/WearSpeakerSample/gradle/libs.versions.toml index e0d3136ae..4beae3b18 100644 --- a/WearSpeakerSample/gradle/libs.versions.toml +++ b/WearSpeakerSample/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -android-gradle-plugin = "8.5.1" +android-gradle-plugin = "8.5.2" androidx-activity = "1.9.1" androidx-compose-bom = "2024.06.00" androidx-lifecycle = "2.7.0" diff --git a/WearTilesKotlin/gradle/libs.versions.toml b/WearTilesKotlin/gradle/libs.versions.toml index ce4e69b8d..46b3b3964 100644 --- a/WearTilesKotlin/gradle/libs.versions.toml +++ b/WearTilesKotlin/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -android-gradle-plugin = "8.5.1" +android-gradle-plugin = "8.5.2" androidx-wear-tiles = "1.4.0" androidx-wear-tooling-preview = "1.0.0" compose = "1.6.8"