From a669302409a27364f849e25fdda705142c9cf84f Mon Sep 17 00:00:00 2001 From: Jolanda Verhoef Date: Sat, 19 Nov 2022 18:17:32 +0100 Subject: [PATCH] Change order of composables in BookmarksScreen and add previews --- .../designsystem/component/LoadingWheel.kt | 4 +- .../feature/bookmarks/BookmarksScreen.kt | 51 ++++++++++++++++--- 2 files changed, 46 insertions(+), 9 deletions(-) diff --git a/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/LoadingWheel.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/LoadingWheel.kt index ba3f7c2b0..c32637b69 100644 --- a/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/LoadingWheel.kt +++ b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/LoadingWheel.kt @@ -42,6 +42,7 @@ import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.StrokeCap import androidx.compose.ui.graphics.drawscope.rotate import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.platform.LocalInspectionMode import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.dp @@ -56,7 +57,8 @@ fun NiaLoadingWheel( val infiniteTransition = rememberInfiniteTransition() // Specifies the float animation for slowly drawing out the lines on entering - val floatAnimValues = (0 until NUM_OF_LINES).map { remember { Animatable(1F) } } + val startValue = if (LocalInspectionMode.current) 0F else 1F + val floatAnimValues = (0 until NUM_OF_LINES).map { remember { Animatable(startValue) } } LaunchedEffect(floatAnimValues) { (0 until NUM_OF_LINES).map { index -> launch { diff --git a/feature/bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt b/feature/bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt index 15b249814..4ea824c55 100644 --- a/feature/bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt +++ b/feature/bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt @@ -45,11 +45,15 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaLoadingWheel +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme +import com.google.samples.apps.nowinandroid.core.domain.model.SaveableNewsResource +import com.google.samples.apps.nowinandroid.core.model.data.previewNewsResources import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState.Loading import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState.Success @@ -91,6 +95,17 @@ internal fun BookmarksScreen( } } +@Composable +private fun LoadingState(modifier: Modifier = Modifier) { + NiaLoadingWheel( + modifier = modifier + .fillMaxWidth() + .wrapContentSize() + .testTag("forYou:loading"), + contentDesc = stringResource(id = R.string.saved_loading), + ) +} + @Composable private fun BookmarksGrid( feedState: NewsFeedUiState, @@ -156,13 +171,33 @@ private fun EmptyState(modifier: Modifier = Modifier) { } } +@Preview @Composable -private fun LoadingState(modifier: Modifier = Modifier) { - NiaLoadingWheel( - modifier = modifier - .fillMaxWidth() - .wrapContentSize() - .testTag("forYou:loading"), - contentDesc = stringResource(id = R.string.saved_loading), - ) +private fun LoadingStatePreview() { + NiaTheme { + LoadingState() + } +} + +@Preview +@Composable +private fun BookmarksGridPreview() { + NiaTheme { + BookmarksGrid( + feedState = Success( + previewNewsResources.map { + SaveableNewsResource(it, false) + } + ), + removeFromBookmarks = {} + ) + } +} + +@Preview +@Composable +fun EmptyStatePreview() { + NiaTheme { + EmptyState() + } }