From 7564cbb05a139eff502b962ba2e37c5bfebfcbdd Mon Sep 17 00:00:00 2001 From: Yuri Schimke Date: Thu, 18 Jul 2024 10:34:28 +0100 Subject: [PATCH] Use ResponsiveAlertContent for SignInScreen (#2302) --- .../screens/prompt/SignInPromptScreen.kt | 52 +++---------------- ...rompt_SignInPromptScreenTest_signedOut.png | 4 +- ...InPromptScreenTest_signedOutTruncation.png | 4 +- compose-material/api/current.api | 2 +- .../compose/material/AlertDialog.kt | 2 + .../SignInPromptScreenTest_galaxy_watch_5.png | 4 +- .../SignInPromptScreenTest_galaxy_watch_6.png | 4 +- ...ptScreenTest_galaxy_watch_6_small_font.png | 4 +- .../SignInPromptScreenTest_large_round.png | 4 +- .../SignInPromptScreenTest_pixel_watch.png | 4 +- ...romptScreenTest_pixel_watch_large_font.png | 4 +- .../SignInPromptScreenTest_small_round.png | 4 +- .../SignInPromptScreenTest_ticwatch_pro_5.png | 4 +- 13 files changed, 30 insertions(+), 66 deletions(-) diff --git a/auth/ui/src/main/java/com/google/android/horologist/auth/ui/common/screens/prompt/SignInPromptScreen.kt b/auth/ui/src/main/java/com/google/android/horologist/auth/ui/common/screens/prompt/SignInPromptScreen.kt index e2491899d0..be0f7b8afb 100644 --- a/auth/ui/src/main/java/com/google/android/horologist/auth/ui/common/screens/prompt/SignInPromptScreen.kt +++ b/auth/ui/src/main/java/com/google/android/horologist/auth/ui/common/screens/prompt/SignInPromptScreen.kt @@ -16,30 +16,19 @@ package com.google.android.horologist.auth.ui.common.screens.prompt -import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.runtime.SideEffect import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.text.style.TextOverflow import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import androidx.wear.compose.foundation.lazy.ScalingLazyListScope -import androidx.wear.compose.material.MaterialTheme -import androidx.wear.compose.material.Text import com.google.android.horologist.auth.composables.R import com.google.android.horologist.auth.composables.model.AccountUiModel import com.google.android.horologist.auth.composables.screens.SignInPlaceholderScreen -import com.google.android.horologist.compose.layout.ScalingLazyColumn -import com.google.android.horologist.compose.layout.ScalingLazyColumnDefaults.ItemType -import com.google.android.horologist.compose.layout.ScalingLazyColumnDefaults.listTextPadding -import com.google.android.horologist.compose.layout.ScalingLazyColumnDefaults.padding import com.google.android.horologist.compose.layout.ScreenScaffold -import com.google.android.horologist.compose.layout.rememberResponsiveColumnState -import com.google.android.horologist.compose.material.ListHeaderDefaults.firstItemPadding -import com.google.android.horologist.compose.material.ResponsiveListHeader +import com.google.android.horologist.compose.material.AlertContent /** * A screen to prompt users to sign in. @@ -93,14 +82,7 @@ public fun SignInPromptScreen( loadingContent: @Composable () -> Unit = { SignInPlaceholderScreen(modifier = modifier) }, content: ScalingLazyListScope.() -> Unit, ) { - val columnState = rememberResponsiveColumnState( - contentPadding = padding( - first = ItemType.Text, - last = ItemType.Chip, - ), - ) - - ScreenScaffold(timeText = {}, scrollState = columnState) { + ScreenScaffold(timeText = {}) { when (state) { SignInPromptScreenState.Idle -> { SideEffect { @@ -121,32 +103,12 @@ public fun SignInPromptScreen( } SignInPromptScreenState.SignedOut -> { - ScalingLazyColumn( - columnState = columnState, + AlertContent( + title = title, + message = message, + content = content, modifier = modifier, - ) { - item { - ResponsiveListHeader(contentPadding = firstItemPadding()) { - Text( - text = title, - modifier = Modifier.listTextPadding(), - style = MaterialTheme.typography.button, - overflow = TextOverflow.Ellipsis, - maxLines = 3, - ) - } - } - item { - Text( - text = message, - modifier = Modifier.listTextPadding(), - color = MaterialTheme.colors.onBackground, - textAlign = TextAlign.Center, - style = MaterialTheme.typography.body2, - ) - } - apply(content) - } + ) } } } diff --git a/auth/ui/src/test/snapshots/images/com.google.android.horologist.auth.ui.common.screens.prompt_SignInPromptScreenTest_signedOut.png b/auth/ui/src/test/snapshots/images/com.google.android.horologist.auth.ui.common.screens.prompt_SignInPromptScreenTest_signedOut.png index 296defd221..e6e2425163 100644 --- a/auth/ui/src/test/snapshots/images/com.google.android.horologist.auth.ui.common.screens.prompt_SignInPromptScreenTest_signedOut.png +++ b/auth/ui/src/test/snapshots/images/com.google.android.horologist.auth.ui.common.screens.prompt_SignInPromptScreenTest_signedOut.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a93a7721b1990a98cad8c72dfe5af4940b796a93acef2e80ac9e673d3d576188 -size 28552 +oid sha256:121fdb381ce96989bece3a5641de43f29d39677a9ad4c46e2bb038e6d58b9e31 +size 27830 diff --git a/auth/ui/src/test/snapshots/images/com.google.android.horologist.auth.ui.common.screens.prompt_SignInPromptScreenTest_signedOutTruncation.png b/auth/ui/src/test/snapshots/images/com.google.android.horologist.auth.ui.common.screens.prompt_SignInPromptScreenTest_signedOutTruncation.png index 2f3497bcd3..4741af7f1e 100644 --- a/auth/ui/src/test/snapshots/images/com.google.android.horologist.auth.ui.common.screens.prompt_SignInPromptScreenTest_signedOutTruncation.png +++ b/auth/ui/src/test/snapshots/images/com.google.android.horologist.auth.ui.common.screens.prompt_SignInPromptScreenTest_signedOutTruncation.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5f1227f40ae5b5f01ff542c5743b428b6c68630d0d7529e2aeb2d16d2c80f6fa -size 37822 +oid sha256:49389f05622b2a5e2966c81d3b48141609057dd30d7743bf4ff966cb8eb60bc4 +size 57254 diff --git a/compose-material/api/current.api b/compose-material/api/current.api index fd6d008aed..e172055dfa 100644 --- a/compose-material/api/current.api +++ b/compose-material/api/current.api @@ -2,7 +2,7 @@ package com.google.android.horologist.compose.material { public final class AlertDialogKt { - method @androidx.compose.runtime.Composable @com.google.android.horologist.annotations.ExperimentalHorologistApi public static void AlertContent(optional kotlin.jvm.functions.Function0? onCancel, optional kotlin.jvm.functions.Function0? onOk, optional kotlin.jvm.functions.Function0? icon, optional String? title, optional String? message, optional String okButtonContentDescription, optional String cancelButtonContentDescription, optional com.google.android.horologist.compose.layout.ScalingLazyColumnState state, optional boolean showPositionIndicator, optional kotlin.jvm.functions.Function1? content); + method @androidx.compose.runtime.Composable @com.google.android.horologist.annotations.ExperimentalHorologistApi public static void AlertContent(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? onCancel, optional kotlin.jvm.functions.Function0? onOk, optional kotlin.jvm.functions.Function0? icon, optional String? title, optional String? message, optional String okButtonContentDescription, optional String cancelButtonContentDescription, optional com.google.android.horologist.compose.layout.ScalingLazyColumnState state, optional boolean showPositionIndicator, optional kotlin.jvm.functions.Function1? content); method @androidx.compose.runtime.Composable @com.google.android.horologist.annotations.ExperimentalHorologistApi public static void AlertDialog(boolean showDialog, kotlin.jvm.functions.Function0 onDismiss, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? icon, optional String? title, optional String? message, optional com.google.android.horologist.compose.layout.ScalingLazyColumnState state, optional kotlin.jvm.functions.Function1? content); method @androidx.compose.runtime.Composable @com.google.android.horologist.annotations.ExperimentalHorologistApi public static void AlertDialog(boolean showDialog, kotlin.jvm.functions.Function0 onCancel, kotlin.jvm.functions.Function0 onOk, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? icon, optional String? title, optional String? message, optional String okButtonContentDescription, optional String cancelButtonContentDescription, optional com.google.android.horologist.compose.layout.ScalingLazyColumnState state, optional kotlin.jvm.functions.Function1? content); } diff --git a/compose-material/src/main/java/com/google/android/horologist/compose/material/AlertDialog.kt b/compose-material/src/main/java/com/google/android/horologist/compose/material/AlertDialog.kt index 6796ab66ee..ea9812447f 100644 --- a/compose-material/src/main/java/com/google/android/horologist/compose/material/AlertDialog.kt +++ b/compose-material/src/main/java/com/google/android/horologist/compose/material/AlertDialog.kt @@ -123,6 +123,7 @@ public fun AlertDialog( @ExperimentalHorologistApi @Composable public fun AlertContent( + modifier: Modifier = Modifier, onCancel: (() -> Unit)? = null, onOk: (() -> Unit)? = null, icon: @Composable (() -> Unit)? = null, @@ -144,6 +145,7 @@ public fun AlertContent( } ResponsiveDialogContent( + modifier = modifier, icon = icon, title = title?.let { { diff --git a/sample/src/test/screenshots/SignInPromptScreenTest_galaxy_watch_5.png b/sample/src/test/screenshots/SignInPromptScreenTest_galaxy_watch_5.png index f9ff390291..3e88de1857 100644 --- a/sample/src/test/screenshots/SignInPromptScreenTest_galaxy_watch_5.png +++ b/sample/src/test/screenshots/SignInPromptScreenTest_galaxy_watch_5.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f3020d2bb2aa1558e7a94f75cad1745e7e477d966bbc6b979f1d06ab81cd7d20 -size 24095 +oid sha256:ff978526249f91526791afd9ca6bc74b6baf2b8abeb15d83ab9dc99f6214aaf4 +size 22980 diff --git a/sample/src/test/screenshots/SignInPromptScreenTest_galaxy_watch_6.png b/sample/src/test/screenshots/SignInPromptScreenTest_galaxy_watch_6.png index 82b174e180..dfdcdd84eb 100644 --- a/sample/src/test/screenshots/SignInPromptScreenTest_galaxy_watch_6.png +++ b/sample/src/test/screenshots/SignInPromptScreenTest_galaxy_watch_6.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:17c5cb4983263a1a886c373ea00d6fc48a9c2e2fe31ecca20ba0247f505026b8 -size 28835 +oid sha256:bd4a0e5c96ba77264897aaed9f71e6755b6f8167f0f869771c28b32e91dd9f80 +size 27554 diff --git a/sample/src/test/screenshots/SignInPromptScreenTest_galaxy_watch_6_small_font.png b/sample/src/test/screenshots/SignInPromptScreenTest_galaxy_watch_6_small_font.png index 79d0aeaa4e..cf23290903 100644 --- a/sample/src/test/screenshots/SignInPromptScreenTest_galaxy_watch_6_small_font.png +++ b/sample/src/test/screenshots/SignInPromptScreenTest_galaxy_watch_6_small_font.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ea63663f8221292e48c39b47f632a1a82230d95ee3db69af68b5ab4d96babc79 -size 28173 +oid sha256:fe6e2975a6c1818c58393bbc38c1c8fc080a648cb167e4bde2e4b9664489bf91 +size 26985 diff --git a/sample/src/test/screenshots/SignInPromptScreenTest_large_round.png b/sample/src/test/screenshots/SignInPromptScreenTest_large_round.png index 296defd221..e6e2425163 100644 --- a/sample/src/test/screenshots/SignInPromptScreenTest_large_round.png +++ b/sample/src/test/screenshots/SignInPromptScreenTest_large_round.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a93a7721b1990a98cad8c72dfe5af4940b796a93acef2e80ac9e673d3d576188 -size 28552 +oid sha256:121fdb381ce96989bece3a5641de43f29d39677a9ad4c46e2bb038e6d58b9e31 +size 27830 diff --git a/sample/src/test/screenshots/SignInPromptScreenTest_pixel_watch.png b/sample/src/test/screenshots/SignInPromptScreenTest_pixel_watch.png index c18eff15ce..ad149c16e8 100644 --- a/sample/src/test/screenshots/SignInPromptScreenTest_pixel_watch.png +++ b/sample/src/test/screenshots/SignInPromptScreenTest_pixel_watch.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d10050cedea613f4290f876e0e6eff210efa8570684541cdb5a116edb072f15d -size 23051 +oid sha256:5e382db0146b4c32f0d701c5b34713a3baf7e3a917eab1bec7f780c803281a97 +size 22498 diff --git a/sample/src/test/screenshots/SignInPromptScreenTest_pixel_watch_large_font.png b/sample/src/test/screenshots/SignInPromptScreenTest_pixel_watch_large_font.png index 1204b56d00..a37b2a9d17 100644 --- a/sample/src/test/screenshots/SignInPromptScreenTest_pixel_watch_large_font.png +++ b/sample/src/test/screenshots/SignInPromptScreenTest_pixel_watch_large_font.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:37c038ed80a40eb79fb2dcce702e1a75800dea142eb0340229916273aad9b2f1 -size 24150 +oid sha256:9f36da7195b489c07591ce0f701de239313d3a572f2a8fb2a7f335b8b9be02ed +size 20627 diff --git a/sample/src/test/screenshots/SignInPromptScreenTest_small_round.png b/sample/src/test/screenshots/SignInPromptScreenTest_small_round.png index c18eff15ce..ad149c16e8 100644 --- a/sample/src/test/screenshots/SignInPromptScreenTest_small_round.png +++ b/sample/src/test/screenshots/SignInPromptScreenTest_small_round.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d10050cedea613f4290f876e0e6eff210efa8570684541cdb5a116edb072f15d -size 23051 +oid sha256:5e382db0146b4c32f0d701c5b34713a3baf7e3a917eab1bec7f780c803281a97 +size 22498 diff --git a/sample/src/test/screenshots/SignInPromptScreenTest_ticwatch_pro_5.png b/sample/src/test/screenshots/SignInPromptScreenTest_ticwatch_pro_5.png index b705bf1c3f..262f44be34 100644 --- a/sample/src/test/screenshots/SignInPromptScreenTest_ticwatch_pro_5.png +++ b/sample/src/test/screenshots/SignInPromptScreenTest_ticwatch_pro_5.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:581d4d00d01c6ea7a3d8e7287e5168413357aa2aaba2ffdca37d5947d6dedf7e -size 29062 +oid sha256:f69070fddbcbc59691c1548e6ab426a7ce691f2af822a8f0389d04afe0795d8b +size 28306