@@ -25,23 +25,17 @@ import androidx.compose.animation.fadeIn
2525import androidx.compose.animation.slideInHorizontally
2626import androidx.compose.animation.slideInVertically
2727import androidx.compose.foundation.background
28- import androidx.compose.foundation.basicMarquee
2928import androidx.compose.foundation.layout.Box
3029import androidx.compose.foundation.layout.Column
3130import androidx.compose.foundation.layout.PaddingValues
32- import androidx.compose.foundation.layout.Row
33- import androidx.compose.foundation.layout.Spacer
3431import androidx.compose.foundation.layout.fillMaxSize
3532import androidx.compose.foundation.layout.padding
36- import androidx.compose.foundation.layout.width
3733import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
38- import androidx.compose.material3.Icon
3934import androidx.compose.material3.MaterialTheme
4035import androidx.compose.material3.Scaffold
4136import androidx.compose.material3.Snackbar
4237import androidx.compose.material3.SnackbarDefaults
4338import androidx.compose.material3.SnackbarHost
44- import androidx.compose.material3.Text
4539import androidx.compose.runtime.Composable
4640import androidx.compose.runtime.LaunchedEffect
4741import androidx.compose.runtime.State
@@ -51,21 +45,13 @@ import androidx.compose.runtime.remember
5145import androidx.compose.runtime.setValue
5246import androidx.compose.ui.Alignment
5347import androidx.compose.ui.Modifier
54- import androidx.compose.ui.graphics.vector.ImageVector
55- import androidx.compose.ui.platform.LocalInspectionMode
56- import androidx.compose.ui.res.stringArrayResource
57- import androidx.compose.ui.res.stringResource
58- import androidx.compose.ui.res.vectorResource
59- import androidx.compose.ui.text.font.FontWeight.Companion.Bold
6048import androidx.compose.ui.tooling.preview.Preview
6149import androidx.compose.ui.unit.dp
62- import androidx.compose.ui.unit.sp
6350import androidx.lifecycle.compose.collectAsStateWithLifecycle
6451import com.android.developers.androidify.customize.getPlaceholderBotUri
6552import com.android.developers.androidify.theme.AndroidifyTheme
6653import com.android.developers.androidify.theme.components.AboutButton
6754import com.android.developers.androidify.theme.components.AndroidifyTopAppBar
68- import com.android.developers.androidify.theme.components.PrimaryButton
6955import com.android.developers.androidify.theme.components.ResultsBackground
7056import com.android.developers.androidify.util.AdaptivePreview
7157import com.android.developers.androidify.util.SmallPhonePreview
@@ -126,53 +112,6 @@ fun ResultsScreen(
126112 }
127113}
128114
129- @AdaptivePreview
130- @SmallPhonePreview
131- @Preview
132- @Composable
133- private fun ResultsScreenPreview () {
134- AndroidifyTheme {
135- val imageUri = getPlaceholderBotUri()
136- val state = remember {
137- mutableStateOf(
138- ResultState (
139- resultImageUri = imageUri,
140- promptText = " wearing a hat with straw hair" ,
141- ),
142- )
143- }
144-
145- ResultsScreenContents (
146- contentPadding = PaddingValues (0 .dp),
147- state = state,
148- onCustomizeShareClicked = {},
149- )
150- }
151- }
152-
153- @SmallPhonePreview
154- @Composable
155- private fun ResultsScreenPreviewSmall () {
156- AndroidifyTheme {
157- val imageUri = getPlaceholderBotUri()
158- val state = remember {
159- mutableStateOf(
160- ResultState (
161- resultImageUri = imageUri,
162- promptText = " wearing a hat with straw hair" ,
163- ),
164- )
165- }
166-
167- ResultsScreenContents (
168- contentPadding = PaddingValues (0 .dp),
169- state = state,
170- verboseLayout = false ,
171- onCustomizeShareClicked = {},
172- )
173- }
174- }
175-
176115@Composable
177116fun ResultsScreenContents (
178117 contentPadding : PaddingValues ,
@@ -287,81 +226,49 @@ fun ResultsScreenContents(
287226 }
288227}
289228
229+ @AdaptivePreview
230+ @SmallPhonePreview
231+ @Preview
290232@Composable
291- private fun BackgroundRandomQuotes (verboseLayout : Boolean = true) {
292- val locaInspectionMode = LocalInspectionMode .current
293- Box (modifier = Modifier .fillMaxSize()) {
294- val listResultCompliments = stringArrayResource(R .array.list_compliments)
295- val randomQuote = remember {
296- if (locaInspectionMode) {
297- listResultCompliments.first()
298- } else {
299- listResultCompliments.random()
300- }
301- }
302- // Disable animation in tests
303- val iterations = if (LocalInspectionMode .current) 0 else 100
304- Text (
305- randomQuote,
306- style = MaterialTheme .typography.titleLarge.copy(fontWeight = Bold ),
307- fontSize = 120 .sp,
308- modifier = Modifier
309- .align(if (verboseLayout) Alignment .TopCenter else Alignment .Center )
310- .basicMarquee(
311- iterations = iterations,
312- repeatDelayMillis = 0 ,
313- velocity = 80 .dp,
314- initialDelayMillis = 500 ,
233+ private fun ResultsScreenPreview () {
234+ AndroidifyTheme {
235+ val imageUri = getPlaceholderBotUri()
236+ val state = remember {
237+ mutableStateOf(
238+ ResultState (
239+ resultImageUri = imageUri,
240+ promptText = " wearing a hat with straw hair" ,
315241 ),
316- )
317- if (verboseLayout) {
318- val listMinusOther = listResultCompliments.asList().minus(randomQuote)
319- val randomQuote2 = remember {
320- if (locaInspectionMode) {
321- listMinusOther.first()
322- } else {
323- listMinusOther.random()
324- }
325- }
326- Text (
327- randomQuote2,
328- style = MaterialTheme .typography.titleLarge.copy(fontWeight = Bold ),
329- fontSize = 110 .sp,
330- modifier = Modifier
331- .align(Alignment .BottomCenter )
332- .basicMarquee(
333- iterations = iterations,
334- repeatDelayMillis = 0 ,
335- velocity = 60 .dp,
336- initialDelayMillis = 500 ,
337- ),
338242 )
339243 }
244+
245+ ResultsScreenContents (
246+ contentPadding = PaddingValues (0 .dp),
247+ state = state,
248+ onCustomizeShareClicked = {},
249+ )
340250 }
341251}
342252
253+ @SmallPhonePreview
343254@Composable
344- private fun BotActionsButtonRow (
345- onCustomizeShareClicked : () -> Unit ,
346- modifier : Modifier = Modifier ,
347- verboseLayout : Boolean = false,
348- ) {
349- Row (modifier) {
350- PrimaryButton (
351- onClick = {
352- onCustomizeShareClicked()
353- },
354- trailingIcon = {
355- Row {
356- Spacer (modifier = Modifier .width(8 .dp))
357- Icon (
358- ImageVector
359- .vectorResource(com.android.developers.androidify.theme.R .drawable.rounded_arrow_forward_24),
360- contentDescription = null , // decorative element
361- )
362- }
363- },
364- buttonText = if (verboseLayout) stringResource(R .string.customize_and_share) else null ,
255+ private fun ResultsScreenPreviewSmall () {
256+ AndroidifyTheme {
257+ val imageUri = getPlaceholderBotUri()
258+ val state = remember {
259+ mutableStateOf(
260+ ResultState (
261+ resultImageUri = imageUri,
262+ promptText = " wearing a hat with straw hair" ,
263+ ),
264+ )
265+ }
266+
267+ ResultsScreenContents (
268+ contentPadding = PaddingValues (0 .dp),
269+ state = state,
270+ verboseLayout = false ,
271+ onCustomizeShareClicked = {},
365272 )
366273 }
367274}
0 commit comments