diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt index 7c892c854..fe3f654a8 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt @@ -183,7 +183,7 @@ class NiaAppState( * Stores information about navigation events to be used with JankStats */ @Composable -private fun NavigationTrackingSideEffect(navController: NavHostController) { +internal fun NavigationTrackingSideEffect(navController: NavHostController) { TrackDisposableJank(navController) { metricsHolder -> val listener = NavController.OnDestinationChangedListener { _, destination, _ -> metricsHolder.state?.putState("Navigation", destination.route.toString()) diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationComposeConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationComposeConventionPlugin.kt index a8b1b1779..6a3bf13de 100644 --- a/build-logic/convention/src/main/kotlin/AndroidApplicationComposeConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidApplicationComposeConventionPlugin.kt @@ -16,6 +16,7 @@ import com.android.build.api.dsl.ApplicationExtension import com.google.samples.apps.nowinandroid.configureAndroidCompose +import com.google.samples.apps.nowinandroid.configureAndroidComposeScreenshotTest import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.apply @@ -26,9 +27,11 @@ class AndroidApplicationComposeConventionPlugin : Plugin { with(target) { apply(plugin = "com.android.application") apply(plugin = "org.jetbrains.kotlin.plugin.compose") + apply(plugin = "com.android.compose.screenshot") val extension = extensions.getByType() configureAndroidCompose(extension) + configureAndroidComposeScreenshotTest(extension) } } diff --git a/build-logic/convention/src/main/kotlin/AndroidLibraryComposeConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidLibraryComposeConventionPlugin.kt index 63a992b05..697a560a1 100644 --- a/build-logic/convention/src/main/kotlin/AndroidLibraryComposeConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidLibraryComposeConventionPlugin.kt @@ -16,6 +16,7 @@ import com.android.build.api.dsl.LibraryExtension import com.google.samples.apps.nowinandroid.configureAndroidCompose +import com.google.samples.apps.nowinandroid.configureAndroidComposeScreenshotTest import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.apply @@ -26,9 +27,11 @@ class AndroidLibraryComposeConventionPlugin : Plugin { with(target) { apply(plugin = "com.android.library") apply(plugin = "org.jetbrains.kotlin.plugin.compose") + apply(plugin = "com.android.compose.screenshot") val extension = extensions.getByType() configureAndroidCompose(extension) + configureAndroidComposeScreenshotTest(extension) } } diff --git a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidComposeScreenshotTest.kt b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidComposeScreenshotTest.kt new file mode 100644 index 000000000..92e39b439 --- /dev/null +++ b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidComposeScreenshotTest.kt @@ -0,0 +1,31 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid + +import com.android.build.api.dsl.CommonExtension +import org.gradle.api.Project + +/** + * Configure project to enable compose screenshot test. + */ +internal fun Project.configureAndroidComposeScreenshotTest( + commonExtension: CommonExtension<*, *, *, *, *, *>, +) { + commonExtension.apply { + experimentalProperties["android.experimental.enableScreenshotTest"] = true + } +} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 425b2c640..9133298aa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -27,6 +27,7 @@ plugins { alias(libs.plugins.android.test) apply false alias(libs.plugins.baselineprofile) apply false alias(libs.plugins.compose) apply false + alias(libs.plugins.compose.screenshot.test) apply false alias(libs.plugins.kotlin.jvm) apply false alias(libs.plugins.kotlin.serialization) apply false alias(libs.plugins.dependencyGuard) apply false diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundAndroid_Dark theme_1253e073_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundAndroid_Dark theme_1253e073_0.png new file mode 100644 index 000000000..839d73c6e Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundAndroid_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundAndroid_Light theme_bcb51276_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundAndroid_Light theme_bcb51276_0.png new file mode 100644 index 000000000..35c674b2b Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundAndroid_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDefault_Dark theme_1253e073_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDefault_Dark theme_1253e073_0.png new file mode 100644 index 000000000..b3e3f0030 Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDefault_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDefault_Light theme_bcb51276_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDefault_Light theme_bcb51276_0.png new file mode 100644 index 000000000..2aaa0f097 Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDefault_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDynamic_Dark theme_1253e073_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDynamic_Dark theme_1253e073_0.png new file mode 100644 index 000000000..c647e3631 Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDynamic_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDynamic_Light theme_bcb51276_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDynamic_Light theme_bcb51276_0.png new file mode 100644 index 000000000..8ec6829f5 Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDynamic_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundAndroid_Dark theme_1253e073_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundAndroid_Dark theme_1253e073_0.png new file mode 100644 index 000000000..839d73c6e Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundAndroid_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundAndroid_Light theme_bcb51276_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundAndroid_Light theme_bcb51276_0.png new file mode 100644 index 000000000..35c674b2b Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundAndroid_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDefault_Dark theme_1253e073_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDefault_Dark theme_1253e073_0.png new file mode 100644 index 000000000..0aeeddafa Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDefault_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDefault_Light theme_bcb51276_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDefault_Light theme_bcb51276_0.png new file mode 100644 index 000000000..5b127391e Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDefault_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDynamic_Dark theme_1253e073_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDynamic_Dark theme_1253e073_0.png new file mode 100644 index 000000000..c647e3631 Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDynamic_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDynamic_Light theme_bcb51276_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDynamic_Light theme_bcb51276_0.png new file mode 100644 index 000000000..8ec6829f5 Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDynamic_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBarScreenshotTestKt/NiaTopAppBarPreview_Top App Bar_256d1f55_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBarScreenshotTestKt/NiaTopAppBarPreview_Top App Bar_256d1f55_0.png new file mode 100644 index 000000000..abb8587e2 Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBarScreenshotTestKt/NiaTopAppBarPreview_Top App Bar_256d1f55_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewCompact_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewCompact_0.png new file mode 100644 index 000000000..e6f5387fe Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewCompact_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewExpanded_Dark theme_1253e073_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewExpanded_Dark theme_1253e073_0.png new file mode 100644 index 000000000..90ef6d52f Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewExpanded_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewExpanded_Light theme_bcb51276_0.png b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewExpanded_Light theme_bcb51276_0.png new file mode 100644 index 000000000..b17efa949 Binary files /dev/null and b/core/designsystem/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewExpanded_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt index 9ef52dd76..12e6177a9 100644 --- a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt +++ b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt @@ -19,7 +19,6 @@ package com.google.samples.apps.nowinandroid.core.designsystem.component import android.content.res.Configuration import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.size import androidx.compose.material3.LocalAbsoluteTonalElevation import androidx.compose.material3.Surface import androidx.compose.runtime.Composable @@ -37,7 +36,6 @@ import androidx.compose.ui.unit.dp import com.google.samples.apps.nowinandroid.core.designsystem.theme.GradientColors import com.google.samples.apps.nowinandroid.core.designsystem.theme.LocalBackgroundTheme import com.google.samples.apps.nowinandroid.core.designsystem.theme.LocalGradientColors -import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import kotlin.math.tan /** @@ -146,51 +144,3 @@ fun NiaGradientBackground( @Preview(uiMode = Configuration.UI_MODE_NIGHT_NO, name = "Light theme") @Preview(uiMode = Configuration.UI_MODE_NIGHT_YES, name = "Dark theme") annotation class ThemePreviews - -@ThemePreviews -@Composable -fun BackgroundDefault() { - NiaTheme(disableDynamicTheming = true) { - NiaBackground(Modifier.size(100.dp), content = {}) - } -} - -@ThemePreviews -@Composable -fun BackgroundDynamic() { - NiaTheme(disableDynamicTheming = false) { - NiaBackground(Modifier.size(100.dp), content = {}) - } -} - -@ThemePreviews -@Composable -fun BackgroundAndroid() { - NiaTheme(androidTheme = true) { - NiaBackground(Modifier.size(100.dp), content = {}) - } -} - -@ThemePreviews -@Composable -fun GradientBackgroundDefault() { - NiaTheme(disableDynamicTheming = true) { - NiaGradientBackground(Modifier.size(100.dp), content = {}) - } -} - -@ThemePreviews -@Composable -fun GradientBackgroundDynamic() { - NiaTheme(disableDynamicTheming = false) { - NiaGradientBackground(Modifier.size(100.dp), content = {}) - } -} - -@ThemePreviews -@Composable -fun GradientBackgroundAndroid() { - NiaTheme(androidTheme = true) { - NiaGradientBackground(Modifier.size(100.dp), content = {}) - } -} diff --git a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Button.kt b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Button.kt index 795c88d72..0576e24a5 100644 --- a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Button.kt +++ b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Button.kt @@ -242,7 +242,7 @@ fun NiaTextButton( * @param leadingIcon The button leading icon content. Default is `null` for no leading icon.Ï */ @Composable -private fun NiaButtonContent( +internal fun NiaButtonContent( text: @Composable () -> Unit, leadingIcon: @Composable (() -> Unit)? = null, ) { diff --git a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt index ece8e0259..cbca7b131 100644 --- a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt +++ b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt @@ -32,9 +32,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons -import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -73,18 +70,3 @@ fun NiaTopAppBar( modifier = modifier.testTag("niaTopAppBar"), ) } - -@OptIn(ExperimentalMaterial3Api::class) -@Preview("Top App Bar") -@Composable -private fun NiaTopAppBarPreview() { - NiaTheme { - NiaTopAppBar( - titleRes = android.R.string.untitled, - navigationIcon = NiaIcons.Search, - navigationIconContentDescription = "Navigation icon", - actionIcon = NiaIcons.MoreVert, - actionIconContentDescription = "Action icon", - ) - } -} diff --git a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt index d368c46d7..eaa3f6227 100644 --- a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt +++ b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt @@ -24,15 +24,11 @@ import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ProvideTextStyle -import androidx.compose.material3.Surface -import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons -import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme /** * Now in Android view toggle button with included trailing icon as well as compact and expanded @@ -84,7 +80,7 @@ fun NiaViewToggleButton( * @param trailingIcon The button trailing icon content. Default is `null` for no trailing icon. */ @Composable -private fun NiaViewToggleButtonContent( +internal fun NiaViewToggleButtonContent( text: @Composable () -> Unit, trailingIcon: @Composable (() -> Unit)? = null, ) { @@ -109,36 +105,6 @@ private fun NiaViewToggleButtonContent( } } -@ThemePreviews -@Composable -fun ViewTogglePreviewExpanded() { - NiaTheme { - Surface { - NiaViewToggleButton( - expanded = true, - onExpandedChange = { }, - compactText = { Text(text = "Compact view") }, - expandedText = { Text(text = "Expanded view") }, - ) - } - } -} - -@Preview -@Composable -fun ViewTogglePreviewCompact() { - NiaTheme { - Surface { - NiaViewToggleButton( - expanded = false, - onExpandedChange = { }, - compactText = { Text(text = "Compact view") }, - expandedText = { Text(text = "Expanded view") }, - ) - } - } -} - /** * Now in Android view toggle default values. */ diff --git a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/scrollbar/AppScrollbars.kt b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/scrollbar/AppScrollbars.kt index 1086e280b..d68a3e102 100644 --- a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/scrollbar/AppScrollbars.kt +++ b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/scrollbar/AppScrollbars.kt @@ -128,7 +128,7 @@ fun ScrollableState.DecorativeScrollbar( * A scrollbar thumb that is intended to also be a touch target for fast scrolling. */ @Composable -private fun ScrollableState.DraggableScrollbarThumb( +internal fun ScrollableState.DraggableScrollbarThumb( interactionSource: InteractionSource, orientation: Orientation, ) { @@ -148,7 +148,7 @@ private fun ScrollableState.DraggableScrollbarThumb( * A decorative scrollbar thumb used solely for communicating a user's position in a list. */ @Composable -private fun ScrollableState.DecorativeScrollbarThumb( +internal fun ScrollableState.DecorativeScrollbarThumb( interactionSource: InteractionSource, orientation: Orientation, ) { @@ -168,7 +168,7 @@ private fun ScrollableState.DecorativeScrollbarThumb( // remove when project is upgraded @SuppressLint("ComposableModifierFactory") @Composable -private fun Modifier.scrollThumb( +internal fun Modifier.scrollThumb( scrollableState: ScrollableState, interactionSource: InteractionSource, ): Modifier { @@ -214,7 +214,7 @@ private class ScrollThumbNode(var colorProducer: ColorProducer) : DrawModifierNo * @param interactionSource source of interactions in the scrolling container */ @Composable -private fun scrollbarThumbColor( +internal fun scrollbarThumbColor( scrollableState: ScrollableState, interactionSource: InteractionSource, ): State { diff --git a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/scrollbar/ThumbExt.kt b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/scrollbar/ThumbExt.kt index a267ec2ec..2893de8e0 100644 --- a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/scrollbar/ThumbExt.kt +++ b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/scrollbar/ThumbExt.kt @@ -71,7 +71,7 @@ fun LazyStaggeredGridState.rememberDraggableScroller( * @param scroll a function to be invoked when an index has been identified to scroll to. */ @Composable -private inline fun rememberDraggableScroller( +internal inline fun rememberDraggableScroller( itemsAvailable: Int, crossinline scroll: suspend (index: Int) -> Unit, ): (Float) -> Unit { diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundAndroid_Dark theme_1253e073_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundAndroid_Dark theme_1253e073_0.png new file mode 100644 index 000000000..839d73c6e Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundAndroid_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundAndroid_Light theme_bcb51276_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundAndroid_Light theme_bcb51276_0.png new file mode 100644 index 000000000..35c674b2b Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundAndroid_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDefault_Dark theme_1253e073_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDefault_Dark theme_1253e073_0.png new file mode 100644 index 000000000..b3e3f0030 Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDefault_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDefault_Light theme_bcb51276_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDefault_Light theme_bcb51276_0.png new file mode 100644 index 000000000..2aaa0f097 Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDefault_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDynamic_Dark theme_1253e073_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDynamic_Dark theme_1253e073_0.png new file mode 100644 index 000000000..c647e3631 Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDynamic_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDynamic_Light theme_bcb51276_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDynamic_Light theme_bcb51276_0.png new file mode 100644 index 000000000..8ec6829f5 Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/BackgroundDynamic_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundAndroid_Dark theme_1253e073_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundAndroid_Dark theme_1253e073_0.png new file mode 100644 index 000000000..839d73c6e Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundAndroid_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundAndroid_Light theme_bcb51276_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundAndroid_Light theme_bcb51276_0.png new file mode 100644 index 000000000..35c674b2b Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundAndroid_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDefault_Dark theme_1253e073_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDefault_Dark theme_1253e073_0.png new file mode 100644 index 000000000..0aeeddafa Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDefault_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDefault_Light theme_bcb51276_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDefault_Light theme_bcb51276_0.png new file mode 100644 index 000000000..5b127391e Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDefault_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDynamic_Dark theme_1253e073_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDynamic_Dark theme_1253e073_0.png new file mode 100644 index 000000000..c647e3631 Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDynamic_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDynamic_Light theme_bcb51276_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDynamic_Light theme_bcb51276_0.png new file mode 100644 index 000000000..8ec6829f5 Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTestKt/GradientBackgroundDynamic_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBarScreenshotTestKt/NiaTopAppBarPreview_Top App Bar_256d1f55_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBarScreenshotTestKt/NiaTopAppBarPreview_Top App Bar_256d1f55_0.png new file mode 100644 index 000000000..abb8587e2 Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBarScreenshotTestKt/NiaTopAppBarPreview_Top App Bar_256d1f55_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewCompact_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewCompact_0.png new file mode 100644 index 000000000..e6f5387fe Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewCompact_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewExpanded_Dark theme_1253e073_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewExpanded_Dark theme_1253e073_0.png new file mode 100644 index 000000000..90ef6d52f Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewExpanded_Dark theme_1253e073_0.png differ diff --git a/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewExpanded_Light theme_bcb51276_0.png b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewExpanded_Light theme_bcb51276_0.png new file mode 100644 index 000000000..b17efa949 Binary files /dev/null and b/core/designsystem/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTestKt/ViewTogglePreviewExpanded_Light theme_bcb51276_0.png differ diff --git a/core/designsystem/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTest.kt b/core/designsystem/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTest.kt new file mode 100644 index 000000000..3d8b04cc9 --- /dev/null +++ b/core/designsystem/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/BackgroundScreenshotTest.kt @@ -0,0 +1,71 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.core.designsystem.component +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme + +@ThemePreviews +@Composable +fun BackgroundDefault() { + NiaTheme(disableDynamicTheming = true) { + NiaBackground(Modifier.size(100.dp), content = {}) + } +} + +@ThemePreviews +@Composable +fun BackgroundDynamic() { + NiaTheme(disableDynamicTheming = false) { + NiaBackground(Modifier.size(100.dp), content = {}) + } +} + +@ThemePreviews +@Composable +fun BackgroundAndroid() { + NiaTheme(androidTheme = true) { + NiaBackground(Modifier.size(100.dp), content = {}) + } +} + +@ThemePreviews +@Composable +fun GradientBackgroundDefault() { + NiaTheme(disableDynamicTheming = true) { + NiaGradientBackground(Modifier.size(100.dp), content = {}) + } +} + +@ThemePreviews +@Composable +fun GradientBackgroundDynamic() { + NiaTheme(disableDynamicTheming = false) { + NiaGradientBackground(Modifier.size(100.dp), content = {}) + } +} + +@ThemePreviews +@Composable +fun GradientBackgroundAndroid() { + NiaTheme(androidTheme = true) { + NiaGradientBackground(Modifier.size(100.dp), content = {}) + } +} diff --git a/core/designsystem/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBarScreenshotTest.kt b/core/designsystem/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBarScreenshotTest.kt new file mode 100644 index 000000000..0080f74a0 --- /dev/null +++ b/core/designsystem/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBarScreenshotTest.kt @@ -0,0 +1,37 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.core.designsystem.component +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview +import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme + +@OptIn(ExperimentalMaterial3Api::class) +@Preview("Top App Bar") +@Composable +fun NiaTopAppBarPreview() { + NiaTheme { + NiaTopAppBar( + titleRes = android.R.string.untitled, + navigationIcon = NiaIcons.Search, + navigationIconContentDescription = "Navigation icon", + actionIcon = NiaIcons.MoreVert, + actionIconContentDescription = "Action icon", + ) + } +} diff --git a/core/designsystem/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTest.kt b/core/designsystem/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTest.kt new file mode 100644 index 000000000..351b31cbb --- /dev/null +++ b/core/designsystem/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggleScreenshotTest.kt @@ -0,0 +1,52 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.core.designsystem.component +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme + +@ThemePreviews +@Composable +fun ViewTogglePreviewExpanded() { + NiaTheme { + Surface { + NiaViewToggleButton( + expanded = true, + onExpandedChange = { }, + compactText = { Text(text = "Compact view") }, + expandedText = { Text(text = "Expanded view") }, + ) + } + } +} + +@Preview +@Composable +fun ViewTogglePreviewCompact() { + NiaTheme { + Surface { + NiaViewToggleButton( + expanded = false, + onExpandedChange = { }, + compactText = { Text(text = "Compact view") }, + expandedText = { Text(text = "Expanded view") }, + ) + } + } +} diff --git a/core/screenshot-testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/util/ScreenshotHelper.kt b/core/screenshot-testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/util/ScreenshotHelper.kt index 20b9a5deb..2d6382c1d 100644 --- a/core/screenshot-testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/util/ScreenshotHelper.kt +++ b/core/screenshot-testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/util/ScreenshotHelper.kt @@ -228,7 +228,7 @@ fun AndroidComposeTestRule, A>.c } @Composable -private fun generateDescription( +internal fun generateDescription( shouldCompareDarkMode: Boolean, darkMode: Boolean, shouldCompareAndroidTheme: Boolean, diff --git a/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardLongDescriptionPreview_0.png b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardLongDescriptionPreview_0.png new file mode 100644 index 000000000..eb9f60c33 Binary files /dev/null and b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardLongDescriptionPreview_0.png differ diff --git a/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardLongNamePreview_0.png b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardLongNamePreview_0.png new file mode 100644 index 000000000..690595767 Binary files /dev/null and b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardLongNamePreview_0.png differ diff --git a/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardPreview_0.png b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardPreview_0.png new file mode 100644 index 000000000..96c4fba7c Binary files /dev/null and b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardPreview_0.png differ diff --git a/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardSelectedPreview_0.png b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardSelectedPreview_0.png new file mode 100644 index 000000000..c3a7f8ef3 Binary files /dev/null and b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardSelectedPreview_0.png differ diff --git a/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardWithEmptyDescriptionPreview_0.png b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardWithEmptyDescriptionPreview_0.png new file mode 100644 index 000000000..15a48b895 Binary files /dev/null and b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardWithEmptyDescriptionPreview_0.png differ diff --git a/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedContentPreview_d6b1834b_f7c0e3ab_0.png b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedContentPreview_d6b1834b_f7c0e3ab_0.png new file mode 100644 index 000000000..7ff22de0a Binary files /dev/null and b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedContentPreview_d6b1834b_f7c0e3ab_0.png differ diff --git a/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedContentPreview_f7c0e3ab_0.png b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedContentPreview_f7c0e3ab_0.png new file mode 100644 index 000000000..bed73fe0e Binary files /dev/null and b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedContentPreview_f7c0e3ab_0.png differ diff --git a/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedLoadingPreview_0.png b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedLoadingPreview_0.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedLoadingPreview_0.png differ diff --git a/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/BookmarkButtonBookmarkedPreview_Bookmark Button Bookmarked_7e6f06bf_0.png b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/BookmarkButtonBookmarkedPreview_Bookmark Button Bookmarked_7e6f06bf_0.png new file mode 100644 index 000000000..6d04fd56c Binary files /dev/null and b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/BookmarkButtonBookmarkedPreview_Bookmark Button Bookmarked_7e6f06bf_0.png differ diff --git a/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/BookmarkButtonPreview_Bookmark Button_89797fa6_0.png b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/BookmarkButtonPreview_Bookmark Button_89797fa6_0.png new file mode 100644 index 000000000..50dbf874a Binary files /dev/null and b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/BookmarkButtonPreview_Bookmark Button_89797fa6_0.png differ diff --git a/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/ExpandedNewsResourcePreview_NewsResourceCardExpanded_1a51d379_f7c0e3ab_0.png b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/ExpandedNewsResourcePreview_NewsResourceCardExpanded_1a51d379_f7c0e3ab_0.png new file mode 100644 index 000000000..2d0d4dfc1 Binary files /dev/null and b/core/ui/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/ExpandedNewsResourcePreview_NewsResourceCardExpanded_1a51d379_f7c0e3ab_0.png differ diff --git a/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/InterestsItem.kt b/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/InterestsItem.kt index c74a21ed5..d47312a96 100644 --- a/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/InterestsItem.kt +++ b/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/InterestsItem.kt @@ -24,7 +24,6 @@ import androidx.compose.material3.Icon import androidx.compose.material3.ListItem import androidx.compose.material3.ListItemDefaults import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -32,12 +31,10 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.selected import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.google.samples.apps.nowinandroid.core.designsystem.component.DynamicAsyncImage import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaIconToggleButton import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons -import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import com.google.samples.apps.nowinandroid.core.ui.R.string @Composable @@ -100,7 +97,7 @@ fun InterestsItem( } @Composable -private fun InterestsIcon(topicImageUrl: String, modifier: Modifier = Modifier) { +internal fun InterestsIcon(topicImageUrl: String, modifier: Modifier = Modifier) { if (topicImageUrl.isEmpty()) { Icon( modifier = modifier @@ -118,90 +115,3 @@ private fun InterestsIcon(topicImageUrl: String, modifier: Modifier = Modifier) ) } } - -@Preview -@Composable -private fun InterestsCardPreview() { - NiaTheme { - Surface { - InterestsItem( - name = "Compose", - description = "Description", - following = false, - topicImageUrl = "", - onClick = { }, - onFollowButtonClick = { }, - ) - } - } -} - -@Preview -@Composable -private fun InterestsCardLongNamePreview() { - NiaTheme { - Surface { - InterestsItem( - name = "This is a very very very very long name", - description = "Description", - following = true, - topicImageUrl = "", - onClick = { }, - onFollowButtonClick = { }, - ) - } - } -} - -@Preview -@Composable -private fun InterestsCardLongDescriptionPreview() { - NiaTheme { - Surface { - InterestsItem( - name = "Compose", - description = "This is a very very very very very very very " + - "very very very long description", - following = false, - topicImageUrl = "", - onClick = { }, - onFollowButtonClick = { }, - ) - } - } -} - -@Preview -@Composable -private fun InterestsCardWithEmptyDescriptionPreview() { - NiaTheme { - Surface { - InterestsItem( - name = "Compose", - description = "", - following = true, - topicImageUrl = "", - onClick = { }, - onFollowButtonClick = { }, - ) - } - } -} - -@Preview -@Composable -private fun InterestsCardSelectedPreview() { - NiaTheme { - Surface { - InterestsItem( - name = "Compose", - description = "", - following = true, - topicImageUrl = "", - onClick = { }, - onFollowButtonClick = { }, - isSelected = true, - ) - } - } -} diff --git a/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt b/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt index 0b7b9f570..ee4be94b6 100644 --- a/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt +++ b/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt @@ -24,20 +24,13 @@ import androidx.browser.customtabs.CustomTabsIntent import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridScope -import androidx.compose.foundation.lazy.staggeredgrid.LazyVerticalStaggeredGrid -import androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells import androidx.compose.foundation.lazy.staggeredgrid.items import androidx.compose.material3.MaterialTheme -import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.tooling.preview.Devices -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import com.google.samples.apps.nowinandroid.core.analytics.LocalAnalyticsHelper -import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource /** @@ -121,37 +114,3 @@ sealed interface NewsFeedUiState { val feed: List, ) : NewsFeedUiState } - -@Preview -@Composable -private fun NewsFeedLoadingPreview() { - NiaTheme { - LazyVerticalStaggeredGrid(columns = StaggeredGridCells.Adaptive(300.dp)) { - newsFeed( - feedState = NewsFeedUiState.Loading, - onNewsResourcesCheckedChanged = { _, _ -> }, - onNewsResourceViewed = {}, - onTopicClick = {}, - ) - } - } -} - -@Preview -@Preview(device = Devices.TABLET) -@Composable -private fun NewsFeedContentPreview( - @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) - userNewsResources: List, -) { - NiaTheme { - LazyVerticalStaggeredGrid(columns = StaggeredGridCells.Adaptive(300.dp)) { - newsFeed( - feedState = NewsFeedUiState.Success(userNewsResources), - onNewsResourcesCheckedChanged = { _, _ -> }, - onNewsResourceViewed = {}, - onTopicClick = {}, - ) - } - } -} diff --git a/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt b/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt index 862aec6b2..812c6e88e 100644 --- a/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt +++ b/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt @@ -41,10 +41,8 @@ import androidx.compose.material3.CardDefaults import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -61,8 +59,6 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.onClick import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import coil.compose.AsyncImagePainter import coil.compose.rememberAsyncImagePainter @@ -70,7 +66,6 @@ import com.google.samples.apps.nowinandroid.core.designsystem.R.drawable import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaIconToggleButton import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaTopicTag import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons -import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic import com.google.samples.apps.nowinandroid.core.model.data.NewsResource import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource @@ -343,47 +338,3 @@ fun NewsResourceTopics( } } } - -@Preview("Bookmark Button") -@Composable -private fun BookmarkButtonPreview() { - NiaTheme { - Surface { - BookmarkButton(isBookmarked = false, onClick = { }) - } - } -} - -@Preview("Bookmark Button Bookmarked") -@Composable -private fun BookmarkButtonBookmarkedPreview() { - NiaTheme { - Surface { - BookmarkButton(isBookmarked = true, onClick = { }) - } - } -} - -@Preview("NewsResourceCardExpanded") -@Composable -private fun ExpandedNewsResourcePreview( - @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) - userNewsResources: List, -) { - CompositionLocalProvider( - LocalInspectionMode provides true, - ) { - NiaTheme { - Surface { - NewsResourceCardExpanded( - userNewsResource = userNewsResources[0], - isBookmarked = true, - hasBeenViewed = false, - onToggleBookmark = {}, - onClick = {}, - onTopicClick = {}, - ) - } - } - } -} diff --git a/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardLongDescriptionPreview_0.png b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardLongDescriptionPreview_0.png new file mode 100644 index 000000000..eb9f60c33 Binary files /dev/null and b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardLongDescriptionPreview_0.png differ diff --git a/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardLongNamePreview_0.png b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardLongNamePreview_0.png new file mode 100644 index 000000000..690595767 Binary files /dev/null and b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardLongNamePreview_0.png differ diff --git a/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardPreview_0.png b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardPreview_0.png new file mode 100644 index 000000000..96c4fba7c Binary files /dev/null and b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardPreview_0.png differ diff --git a/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardSelectedPreview_0.png b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardSelectedPreview_0.png new file mode 100644 index 000000000..c3a7f8ef3 Binary files /dev/null and b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardSelectedPreview_0.png differ diff --git a/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardWithEmptyDescriptionPreview_0.png b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardWithEmptyDescriptionPreview_0.png new file mode 100644 index 000000000..15a48b895 Binary files /dev/null and b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTestKt/InterestsCardWithEmptyDescriptionPreview_0.png differ diff --git a/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedContentPreview_d6b1834b_f7c0e3ab_0.png b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedContentPreview_d6b1834b_f7c0e3ab_0.png new file mode 100644 index 000000000..7ff22de0a Binary files /dev/null and b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedContentPreview_d6b1834b_f7c0e3ab_0.png differ diff --git a/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedContentPreview_f7c0e3ab_0.png b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedContentPreview_f7c0e3ab_0.png new file mode 100644 index 000000000..bed73fe0e Binary files /dev/null and b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedContentPreview_f7c0e3ab_0.png differ diff --git a/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedLoadingPreview_0.png b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedLoadingPreview_0.png new file mode 100644 index 000000000..bd0192643 Binary files /dev/null and b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTestKt/NewsFeedLoadingPreview_0.png differ diff --git a/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/BookmarkButtonBookmarkedPreview_Bookmark Button Bookmarked_7e6f06bf_0.png b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/BookmarkButtonBookmarkedPreview_Bookmark Button Bookmarked_7e6f06bf_0.png new file mode 100644 index 000000000..6d04fd56c Binary files /dev/null and b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/BookmarkButtonBookmarkedPreview_Bookmark Button Bookmarked_7e6f06bf_0.png differ diff --git a/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/BookmarkButtonPreview_Bookmark Button_89797fa6_0.png b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/BookmarkButtonPreview_Bookmark Button_89797fa6_0.png new file mode 100644 index 000000000..50dbf874a Binary files /dev/null and b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/BookmarkButtonPreview_Bookmark Button_89797fa6_0.png differ diff --git a/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/ExpandedNewsResourcePreview_NewsResourceCardExpanded_1a51d379_f7c0e3ab_0.png b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/ExpandedNewsResourcePreview_NewsResourceCardExpanded_1a51d379_f7c0e3ab_0.png new file mode 100644 index 000000000..2d0d4dfc1 Binary files /dev/null and b/core/ui/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTestKt/ExpandedNewsResourcePreview_NewsResourceCardExpanded_1a51d379_f7c0e3ab_0.png differ diff --git a/core/ui/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTest.kt b/core/ui/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTest.kt new file mode 100644 index 000000000..bf3652f33 --- /dev/null +++ b/core/ui/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/ui/InterestsItemScreenshotTest.kt @@ -0,0 +1,108 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.core.ui +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme + +@Preview +@Composable +fun InterestsCardPreview() { + NiaTheme { + Surface { + InterestsItem( + name = "Compose", + description = "Description", + following = false, + topicImageUrl = "", + onClick = { }, + onFollowButtonClick = { }, + ) + } + } +} + +@Preview +@Composable +fun InterestsCardLongNamePreview() { + NiaTheme { + Surface { + InterestsItem( + name = "This is a very very very very long name", + description = "Description", + following = true, + topicImageUrl = "", + onClick = { }, + onFollowButtonClick = { }, + ) + } + } +} + +@Preview +@Composable +fun InterestsCardLongDescriptionPreview() { + NiaTheme { + Surface { + InterestsItem( + name = "Compose", + description = "This is a very very very very very very very " + + "very very very long description", + following = false, + topicImageUrl = "", + onClick = { }, + onFollowButtonClick = { }, + ) + } + } +} + +@Preview +@Composable +fun InterestsCardWithEmptyDescriptionPreview() { + NiaTheme { + Surface { + InterestsItem( + name = "Compose", + description = "", + following = true, + topicImageUrl = "", + onClick = { }, + onFollowButtonClick = { }, + ) + } + } +} + +@Preview +@Composable +fun InterestsCardSelectedPreview() { + NiaTheme { + Surface { + InterestsItem( + name = "Compose", + description = "", + following = true, + topicImageUrl = "", + onClick = { }, + onFollowButtonClick = { }, + isSelected = true, + ) + } + } +} diff --git a/core/ui/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTest.kt b/core/ui/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTest.kt new file mode 100644 index 000000000..a55fc92d6 --- /dev/null +++ b/core/ui/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeedScreenshotTest.kt @@ -0,0 +1,60 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.core.ui +import androidx.compose.foundation.lazy.staggeredgrid.LazyVerticalStaggeredGrid +import androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Devices +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.unit.dp +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme +import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource + +@Preview +@Composable +fun NewsFeedLoadingPreview() { + NiaTheme { + LazyVerticalStaggeredGrid(columns = StaggeredGridCells.Adaptive(300.dp)) { + newsFeed( + feedState = NewsFeedUiState.Loading, + onNewsResourcesCheckedChanged = { _, _ -> }, + onNewsResourceViewed = {}, + onTopicClick = {}, + ) + } + } +} + +@Preview +@Preview(device = Devices.TABLET) +@Composable +fun NewsFeedContentPreview( + @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) + userNewsResources: List, +) { + NiaTheme { + LazyVerticalStaggeredGrid(columns = StaggeredGridCells.Adaptive(300.dp)) { + newsFeed( + feedState = NewsFeedUiState.Success(userNewsResources), + onNewsResourcesCheckedChanged = { _, _ -> }, + onNewsResourceViewed = {}, + onTopicClick = {}, + ) + } + } +} diff --git a/core/ui/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTest.kt b/core/ui/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTest.kt new file mode 100644 index 000000000..b585f0883 --- /dev/null +++ b/core/ui/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardScreenshotTest.kt @@ -0,0 +1,72 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.core.ui +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.getValue +import androidx.compose.runtime.setValue +import androidx.compose.ui.platform.LocalInspectionMode +import androidx.compose.ui.semantics.onClick +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme +import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource + +@Preview("Bookmark Button") +@Composable +fun BookmarkButtonPreview() { + NiaTheme { + Surface { + BookmarkButton(isBookmarked = false, onClick = { }) + } + } +} + +@Preview("Bookmark Button Bookmarked") +@Composable +fun BookmarkButtonBookmarkedPreview() { + NiaTheme { + Surface { + BookmarkButton(isBookmarked = true, onClick = { }) + } + } +} + +@Preview("NewsResourceCardExpanded") +@Composable +fun ExpandedNewsResourcePreview( + @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) + userNewsResources: List, +) { + CompositionLocalProvider( + LocalInspectionMode provides true, + ) { + NiaTheme { + Surface { + NewsResourceCardExpanded( + userNewsResource = userNewsResources[0], + isBookmarked = true, + hasBeenViewed = false, + onToggleBookmark = {}, + onClick = {}, + onTopicClick = {}, + ) + } + } + } +} diff --git a/feature/bookmarks/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/BookmarksGridPreview_f7c0e3ab_0.png b/feature/bookmarks/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/BookmarksGridPreview_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/bookmarks/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/BookmarksGridPreview_f7c0e3ab_0.png differ diff --git a/feature/bookmarks/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/EmptyStatePreview_0.png b/feature/bookmarks/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/EmptyStatePreview_0.png new file mode 100644 index 000000000..a6d7c4b1a Binary files /dev/null and b/feature/bookmarks/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/EmptyStatePreview_0.png differ diff --git a/feature/bookmarks/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/LoadingStatePreview_0.png b/feature/bookmarks/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/LoadingStatePreview_0.png new file mode 100644 index 000000000..455f72a24 Binary files /dev/null and b/feature/bookmarks/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/LoadingStatePreview_0.png differ diff --git a/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt b/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt index 7c229c5ea..e9335a9c5 100644 --- a/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt +++ b/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt @@ -53,8 +53,6 @@ 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.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.Lifecycle @@ -65,14 +63,11 @@ import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollba import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.rememberDraggableScroller import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.scrollbarState import com.google.samples.apps.nowinandroid.core.designsystem.theme.LocalTintTheme -import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme -import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource 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 import com.google.samples.apps.nowinandroid.core.ui.TrackScreenViewEvent import com.google.samples.apps.nowinandroid.core.ui.TrackScrollJank -import com.google.samples.apps.nowinandroid.core.ui.UserNewsResourcePreviewParameterProvider import com.google.samples.apps.nowinandroid.core.ui.newsFeed @Composable @@ -149,7 +144,7 @@ internal fun BookmarksScreen( } @Composable -private fun LoadingState(modifier: Modifier = Modifier) { +internal fun LoadingState(modifier: Modifier = Modifier) { NiaLoadingWheel( modifier = modifier .fillMaxWidth() @@ -160,7 +155,7 @@ private fun LoadingState(modifier: Modifier = Modifier) { } @Composable -private fun BookmarksGrid( +internal fun BookmarksGrid( feedState: NewsFeedUiState, removeFromBookmarks: (String) -> Unit, onNewsResourceViewed: (String) -> Unit, @@ -216,7 +211,7 @@ private fun BookmarksGrid( } @Composable -private fun EmptyState(modifier: Modifier = Modifier) { +internal fun EmptyState(modifier: Modifier = Modifier) { Column( modifier = modifier .padding(16.dp) @@ -253,35 +248,3 @@ private fun EmptyState(modifier: Modifier = Modifier) { ) } } - -@Preview -@Composable -private fun LoadingStatePreview() { - NiaTheme { - LoadingState() - } -} - -@Preview -@Composable -private fun BookmarksGridPreview( - @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) - userNewsResources: List, -) { - NiaTheme { - BookmarksGrid( - feedState = Success(userNewsResources), - removeFromBookmarks = {}, - onNewsResourceViewed = {}, - onTopicClick = {}, - ) - } -} - -@Preview -@Composable -private fun EmptyStatePreview() { - NiaTheme { - EmptyState() - } -} diff --git a/feature/bookmarks/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/BookmarksGridPreview_f7c0e3ab_0.png b/feature/bookmarks/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/BookmarksGridPreview_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/bookmarks/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/BookmarksGridPreview_f7c0e3ab_0.png differ diff --git a/feature/bookmarks/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/EmptyStatePreview_0.png b/feature/bookmarks/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/EmptyStatePreview_0.png new file mode 100644 index 000000000..a6d7c4b1a Binary files /dev/null and b/feature/bookmarks/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/EmptyStatePreview_0.png differ diff --git a/feature/bookmarks/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/LoadingStatePreview_0.png b/feature/bookmarks/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/LoadingStatePreview_0.png new file mode 100644 index 000000000..455f72a24 Binary files /dev/null and b/feature/bookmarks/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTestKt/LoadingStatePreview_0.png differ diff --git a/feature/bookmarks/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTest.kt b/feature/bookmarks/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTest.kt new file mode 100644 index 000000000..7fd27f883 --- /dev/null +++ b/feature/bookmarks/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenScreenshotTest.kt @@ -0,0 +1,57 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.feature.bookmarks +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme +import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource +import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState.Success +import com.google.samples.apps.nowinandroid.core.ui.UserNewsResourcePreviewParameterProvider + +@Preview +@Composable +fun LoadingStatePreview() { + NiaTheme { + LoadingState() + } +} + +@Preview +@Composable +fun BookmarksGridPreview( + @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) + userNewsResources: List, +) { + NiaTheme { + BookmarksGrid( + feedState = Success(userNewsResources), + removeFromBookmarks = {}, + onNewsResourceViewed = {}, + onTopicClick = {}, + ) + } +} + +@Preview +@Composable +fun EmptyStatePreview() { + NiaTheme { + EmptyState() + } +} diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_foldable_7bbfcf49_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_foldable_7bbfcf49_0.png new file mode 100644 index 000000000..70a43e7c1 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_foldable_7bbfcf49_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_landscape_28420cd9_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_landscape_28420cd9_0.png new file mode 100644 index 000000000..70a43e7c1 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_landscape_28420cd9_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_phone_1aa8ea74_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_phone_1aa8ea74_0.png new file mode 100644 index 000000000..70a43e7c1 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_phone_1aa8ea74_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_tablet_87db82e2_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_tablet_87db82e2_0.png new file mode 100644 index 000000000..70a43e7c1 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_tablet_87db82e2_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_foldable_7bbfcf49_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_foldable_7bbfcf49_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_foldable_7bbfcf49_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_landscape_28420cd9_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_landscape_28420cd9_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_landscape_28420cd9_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_phone_1aa8ea74_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_phone_1aa8ea74_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_phone_1aa8ea74_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_tablet_87db82e2_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_tablet_87db82e2_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_tablet_87db82e2_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_foldable_7bbfcf49_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_foldable_7bbfcf49_f7c0e3ab_0.png new file mode 100644 index 000000000..1f01fcfaa Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_foldable_7bbfcf49_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_landscape_28420cd9_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_landscape_28420cd9_f7c0e3ab_0.png new file mode 100644 index 000000000..1f01fcfaa Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_landscape_28420cd9_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_phone_1aa8ea74_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_phone_1aa8ea74_f7c0e3ab_0.png new file mode 100644 index 000000000..1f01fcfaa Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_phone_1aa8ea74_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_tablet_87db82e2_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_tablet_87db82e2_f7c0e3ab_0.png new file mode 100644 index 000000000..1f01fcfaa Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_tablet_87db82e2_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_foldable_7bbfcf49_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_foldable_7bbfcf49_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_foldable_7bbfcf49_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_landscape_28420cd9_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_landscape_28420cd9_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_landscape_28420cd9_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_phone_1aa8ea74_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_phone_1aa8ea74_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_phone_1aa8ea74_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_tablet_87db82e2_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_tablet_87db82e2_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_tablet_87db82e2_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_foldable_7bbfcf49_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_foldable_7bbfcf49_f7c0e3ab_0.png new file mode 100644 index 000000000..910dbe090 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_foldable_7bbfcf49_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_landscape_28420cd9_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_landscape_28420cd9_f7c0e3ab_0.png new file mode 100644 index 000000000..910dbe090 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_landscape_28420cd9_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_phone_1aa8ea74_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_phone_1aa8ea74_f7c0e3ab_0.png new file mode 100644 index 000000000..910dbe090 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_phone_1aa8ea74_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_tablet_87db82e2_f7c0e3ab_0.png b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_tablet_87db82e2_f7c0e3ab_0.png new file mode 100644 index 000000000..910dbe090 Binary files /dev/null and b/feature/foryou/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_tablet_87db82e2_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt b/feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt index 1a3325996..ecfbfc970 100644 --- a/feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt +++ b/feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt @@ -76,7 +76,6 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.max import androidx.compose.ui.unit.sp @@ -94,13 +93,10 @@ import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollba import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.rememberDraggableScroller import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.scrollbarState import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons -import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource -import com.google.samples.apps.nowinandroid.core.ui.DevicePreviews import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState import com.google.samples.apps.nowinandroid.core.ui.TrackScreenViewEvent import com.google.samples.apps.nowinandroid.core.ui.TrackScrollJank -import com.google.samples.apps.nowinandroid.core.ui.UserNewsResourcePreviewParameterProvider import com.google.samples.apps.nowinandroid.core.ui.launchCustomChromeTab import com.google.samples.apps.nowinandroid.core.ui.newsFeed @@ -315,7 +311,7 @@ private fun LazyStaggeredGridScope.onboarding( } @Composable -private fun TopicSelection( +internal fun TopicSelection( onboardingUiState: OnboardingUiState.Shown, onTopicCheckedChanged: (String, Boolean) -> Unit, modifier: Modifier = Modifier, @@ -374,7 +370,7 @@ private fun TopicSelection( } @Composable -private fun SingleTopicButton( +internal fun SingleTopicButton( name: String, topicId: String, imageUrl: String, @@ -445,7 +441,7 @@ fun TopicIcon( @Composable @OptIn(ExperimentalPermissionsApi::class) -private fun NotificationPermissionEffect() { +internal fun NotificationPermissionEffect() { // Permission requests should only be made from an Activity Context, which is not present // in previews if (LocalInspectionMode.current) return @@ -462,7 +458,7 @@ private fun NotificationPermissionEffect() { } @Composable -private fun DeepLinkEffect( +internal fun DeepLinkEffect( userNewsResource: UserNewsResource?, onDeepLinkOpened: (String) -> Unit, ) { @@ -499,121 +495,3 @@ private fun feedItemsSize( } return feedSize + onboardingSize } - -@DevicePreviews -@Composable -fun ForYouScreenPopulatedFeed( - @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) - userNewsResources: List, -) { - NiaTheme { - ForYouScreen( - isSyncing = false, - onboardingUiState = OnboardingUiState.NotShown, - feedState = NewsFeedUiState.Success( - feed = userNewsResources, - ), - deepLinkedUserNewsResource = null, - onTopicCheckedChanged = { _, _ -> }, - saveFollowedTopics = {}, - onNewsResourcesCheckedChanged = { _, _ -> }, - onNewsResourceViewed = {}, - onTopicClick = {}, - onDeepLinkOpened = {}, - ) - } -} - -@DevicePreviews -@Composable -fun ForYouScreenOfflinePopulatedFeed( - @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) - userNewsResources: List, -) { - NiaTheme { - ForYouScreen( - isSyncing = false, - onboardingUiState = OnboardingUiState.NotShown, - feedState = NewsFeedUiState.Success( - feed = userNewsResources, - ), - deepLinkedUserNewsResource = null, - onTopicCheckedChanged = { _, _ -> }, - saveFollowedTopics = {}, - onNewsResourcesCheckedChanged = { _, _ -> }, - onNewsResourceViewed = {}, - onTopicClick = {}, - onDeepLinkOpened = {}, - ) - } -} - -@DevicePreviews -@Composable -fun ForYouScreenTopicSelection( - @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) - userNewsResources: List, -) { - NiaTheme { - ForYouScreen( - isSyncing = false, - onboardingUiState = OnboardingUiState.Shown( - topics = userNewsResources.flatMap { news -> news.followableTopics } - .distinctBy { it.topic.id }, - ), - feedState = NewsFeedUiState.Success( - feed = userNewsResources, - ), - deepLinkedUserNewsResource = null, - onTopicCheckedChanged = { _, _ -> }, - saveFollowedTopics = {}, - onNewsResourcesCheckedChanged = { _, _ -> }, - onNewsResourceViewed = {}, - onTopicClick = {}, - onDeepLinkOpened = {}, - ) - } -} - -@DevicePreviews -@Composable -fun ForYouScreenLoading() { - NiaTheme { - ForYouScreen( - isSyncing = false, - onboardingUiState = OnboardingUiState.Loading, - feedState = NewsFeedUiState.Loading, - deepLinkedUserNewsResource = null, - onTopicCheckedChanged = { _, _ -> }, - saveFollowedTopics = {}, - onNewsResourcesCheckedChanged = { _, _ -> }, - onNewsResourceViewed = {}, - onTopicClick = {}, - onDeepLinkOpened = {}, - ) - } -} - -@DevicePreviews -@Composable -fun ForYouScreenPopulatedAndLoading( - @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) - userNewsResources: List, -) { - NiaTheme { - ForYouScreen( - isSyncing = true, - onboardingUiState = OnboardingUiState.Loading, - feedState = NewsFeedUiState.Success( - feed = userNewsResources, - ), - deepLinkedUserNewsResource = null, - onTopicCheckedChanged = { _, _ -> }, - saveFollowedTopics = {}, - onNewsResourcesCheckedChanged = { _, _ -> }, - onNewsResourceViewed = {}, - onTopicClick = {}, - onDeepLinkOpened = {}, - ) - } -} diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_foldable_7bbfcf49_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_foldable_7bbfcf49_0.png new file mode 100644 index 000000000..70a43e7c1 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_foldable_7bbfcf49_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_landscape_28420cd9_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_landscape_28420cd9_0.png new file mode 100644 index 000000000..70a43e7c1 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_landscape_28420cd9_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_phone_1aa8ea74_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_phone_1aa8ea74_0.png new file mode 100644 index 000000000..70a43e7c1 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_phone_1aa8ea74_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_tablet_87db82e2_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_tablet_87db82e2_0.png new file mode 100644 index 000000000..70a43e7c1 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenLoading_tablet_87db82e2_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_foldable_7bbfcf49_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_foldable_7bbfcf49_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_foldable_7bbfcf49_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_landscape_28420cd9_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_landscape_28420cd9_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_landscape_28420cd9_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_phone_1aa8ea74_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_phone_1aa8ea74_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_phone_1aa8ea74_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_tablet_87db82e2_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_tablet_87db82e2_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenOfflinePopulatedFeed_tablet_87db82e2_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_foldable_7bbfcf49_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_foldable_7bbfcf49_f7c0e3ab_0.png new file mode 100644 index 000000000..1f01fcfaa Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_foldable_7bbfcf49_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_landscape_28420cd9_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_landscape_28420cd9_f7c0e3ab_0.png new file mode 100644 index 000000000..1f01fcfaa Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_landscape_28420cd9_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_phone_1aa8ea74_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_phone_1aa8ea74_f7c0e3ab_0.png new file mode 100644 index 000000000..1f01fcfaa Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_phone_1aa8ea74_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_tablet_87db82e2_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_tablet_87db82e2_f7c0e3ab_0.png new file mode 100644 index 000000000..1f01fcfaa Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedAndLoading_tablet_87db82e2_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_foldable_7bbfcf49_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_foldable_7bbfcf49_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_foldable_7bbfcf49_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_landscape_28420cd9_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_landscape_28420cd9_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_landscape_28420cd9_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_phone_1aa8ea74_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_phone_1aa8ea74_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_phone_1aa8ea74_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_tablet_87db82e2_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_tablet_87db82e2_f7c0e3ab_0.png new file mode 100644 index 000000000..1a9c2bf33 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenPopulatedFeed_tablet_87db82e2_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_foldable_7bbfcf49_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_foldable_7bbfcf49_f7c0e3ab_0.png new file mode 100644 index 000000000..910dbe090 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_foldable_7bbfcf49_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_landscape_28420cd9_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_landscape_28420cd9_f7c0e3ab_0.png new file mode 100644 index 000000000..910dbe090 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_landscape_28420cd9_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_phone_1aa8ea74_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_phone_1aa8ea74_f7c0e3ab_0.png new file mode 100644 index 000000000..910dbe090 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_phone_1aa8ea74_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_tablet_87db82e2_f7c0e3ab_0.png b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_tablet_87db82e2_f7c0e3ab_0.png new file mode 100644 index 000000000..910dbe090 Binary files /dev/null and b/feature/foryou/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTestKt/ForYouScreenTopicSelection_tablet_87db82e2_f7c0e3ab_0.png differ diff --git a/feature/foryou/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTest.kt b/feature/foryou/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTest.kt new file mode 100644 index 000000000..7ddd58dfa --- /dev/null +++ b/feature/foryou/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTest.kt @@ -0,0 +1,143 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.feature.foryou +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.tooling.preview.PreviewParameter +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme +import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource +import com.google.samples.apps.nowinandroid.core.ui.DevicePreviews +import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState +import com.google.samples.apps.nowinandroid.core.ui.UserNewsResourcePreviewParameterProvider + +@DevicePreviews +@Composable +fun ForYouScreenPopulatedFeed( + @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) + userNewsResources: List, +) { + NiaTheme { + ForYouScreen( + isSyncing = false, + onboardingUiState = OnboardingUiState.NotShown, + feedState = NewsFeedUiState.Success( + feed = userNewsResources, + ), + deepLinkedUserNewsResource = null, + onTopicCheckedChanged = { _, _ -> }, + saveFollowedTopics = {}, + onNewsResourcesCheckedChanged = { _, _ -> }, + onNewsResourceViewed = {}, + onTopicClick = {}, + onDeepLinkOpened = {}, + ) + } +} + +@DevicePreviews +@Composable +fun ForYouScreenOfflinePopulatedFeed( + @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) + userNewsResources: List, +) { + NiaTheme { + ForYouScreen( + isSyncing = false, + onboardingUiState = OnboardingUiState.NotShown, + feedState = NewsFeedUiState.Success( + feed = userNewsResources, + ), + deepLinkedUserNewsResource = null, + onTopicCheckedChanged = { _, _ -> }, + saveFollowedTopics = {}, + onNewsResourcesCheckedChanged = { _, _ -> }, + onNewsResourceViewed = {}, + onTopicClick = {}, + onDeepLinkOpened = {}, + ) + } +} + +@DevicePreviews +@Composable +fun ForYouScreenTopicSelection( + @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) + userNewsResources: List, +) { + NiaTheme { + ForYouScreen( + isSyncing = false, + onboardingUiState = OnboardingUiState.Shown( + topics = userNewsResources.flatMap { news -> news.followableTopics } + .distinctBy { it.topic.id }, + ), + feedState = NewsFeedUiState.Success( + feed = userNewsResources, + ), + deepLinkedUserNewsResource = null, + onTopicCheckedChanged = { _, _ -> }, + saveFollowedTopics = {}, + onNewsResourcesCheckedChanged = { _, _ -> }, + onNewsResourceViewed = {}, + onTopicClick = {}, + onDeepLinkOpened = {}, + ) + } +} + +@DevicePreviews +@Composable +fun ForYouScreenLoading() { + NiaTheme { + ForYouScreen( + isSyncing = false, + onboardingUiState = OnboardingUiState.Loading, + feedState = NewsFeedUiState.Loading, + deepLinkedUserNewsResource = null, + onTopicCheckedChanged = { _, _ -> }, + saveFollowedTopics = {}, + onNewsResourcesCheckedChanged = { _, _ -> }, + onNewsResourceViewed = {}, + onTopicClick = {}, + onDeepLinkOpened = {}, + ) + } +} + +@DevicePreviews +@Composable +fun ForYouScreenPopulatedAndLoading( + @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) + userNewsResources: List, +) { + NiaTheme { + ForYouScreen( + isSyncing = true, + onboardingUiState = OnboardingUiState.Loading, + feedState = NewsFeedUiState.Success( + feed = userNewsResources, + ), + deepLinkedUserNewsResource = null, + onTopicCheckedChanged = { _, _ -> }, + saveFollowedTopics = {}, + onNewsResourcesCheckedChanged = { _, _ -> }, + onNewsResourceViewed = {}, + onTopicClick = {}, + onDeepLinkOpened = {}, + ) + } +} diff --git a/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_foldable_7bbfcf49_0.png b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_foldable_7bbfcf49_0.png new file mode 100644 index 000000000..23f442140 Binary files /dev/null and b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_foldable_7bbfcf49_0.png differ diff --git a/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_landscape_28420cd9_0.png b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_landscape_28420cd9_0.png new file mode 100644 index 000000000..23f442140 Binary files /dev/null and b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_landscape_28420cd9_0.png differ diff --git a/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_phone_1aa8ea74_0.png b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_phone_1aa8ea74_0.png new file mode 100644 index 000000000..23f442140 Binary files /dev/null and b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_phone_1aa8ea74_0.png differ diff --git a/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_tablet_87db82e2_0.png b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_tablet_87db82e2_0.png new file mode 100644 index 000000000..23f442140 Binary files /dev/null and b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_tablet_87db82e2_0.png differ diff --git a/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_foldable_7bbfcf49_0.png b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_foldable_7bbfcf49_0.png new file mode 100644 index 000000000..79a51ea94 Binary files /dev/null and b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_foldable_7bbfcf49_0.png differ diff --git a/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_landscape_28420cd9_0.png b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_landscape_28420cd9_0.png new file mode 100644 index 000000000..79a51ea94 Binary files /dev/null and b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_landscape_28420cd9_0.png differ diff --git a/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_phone_1aa8ea74_0.png b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_phone_1aa8ea74_0.png new file mode 100644 index 000000000..79a51ea94 Binary files /dev/null and b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_phone_1aa8ea74_0.png differ diff --git a/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_tablet_87db82e2_0.png b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_tablet_87db82e2_0.png new file mode 100644 index 000000000..79a51ea94 Binary files /dev/null and b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_tablet_87db82e2_0.png differ diff --git a/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_foldable_7bbfcf49_09c43dba_0.png b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_foldable_7bbfcf49_09c43dba_0.png new file mode 100644 index 000000000..f1bafb126 Binary files /dev/null and b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_foldable_7bbfcf49_09c43dba_0.png differ diff --git a/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_landscape_28420cd9_09c43dba_0.png b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_landscape_28420cd9_09c43dba_0.png new file mode 100644 index 000000000..f1bafb126 Binary files /dev/null and b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_landscape_28420cd9_09c43dba_0.png differ diff --git a/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_phone_1aa8ea74_09c43dba_0.png b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_phone_1aa8ea74_09c43dba_0.png new file mode 100644 index 000000000..f1bafb126 Binary files /dev/null and b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_phone_1aa8ea74_09c43dba_0.png differ diff --git a/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_tablet_87db82e2_09c43dba_0.png b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_tablet_87db82e2_09c43dba_0.png new file mode 100644 index 000000000..f1bafb126 Binary files /dev/null and b/feature/interests/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_tablet_87db82e2_09c43dba_0.png differ diff --git a/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt b/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt index 9b18ac89b..b31667b20 100644 --- a/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt +++ b/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt @@ -23,15 +23,9 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaBackground 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.model.data.FollowableTopic -import com.google.samples.apps.nowinandroid.core.ui.DevicePreviews -import com.google.samples.apps.nowinandroid.core.ui.FollowableTopicPreviewParameterProvider import com.google.samples.apps.nowinandroid.core.ui.TrackScreenViewEvent @Composable @@ -89,54 +83,6 @@ internal fun InterestsScreen( } @Composable -private fun InterestsEmptyScreen() { +internal fun InterestsEmptyScreen() { Text(text = stringResource(id = R.string.feature_interests_empty_header)) } - -@DevicePreviews -@Composable -fun InterestsScreenPopulated( - @PreviewParameter(FollowableTopicPreviewParameterProvider::class) - followableTopics: List, -) { - NiaTheme { - NiaBackground { - InterestsScreen( - uiState = InterestsUiState.Interests( - selectedTopicId = null, - topics = followableTopics, - ), - followTopic = { _, _ -> }, - onTopicClick = {}, - ) - } - } -} - -@DevicePreviews -@Composable -fun InterestsScreenLoading() { - NiaTheme { - NiaBackground { - InterestsScreen( - uiState = InterestsUiState.Loading, - followTopic = { _, _ -> }, - onTopicClick = {}, - ) - } - } -} - -@DevicePreviews -@Composable -fun InterestsScreenEmpty() { - NiaTheme { - NiaBackground { - InterestsScreen( - uiState = InterestsUiState.Empty, - followTopic = { _, _ -> }, - onTopicClick = {}, - ) - } - } -} diff --git a/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_foldable_7bbfcf49_0.png b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_foldable_7bbfcf49_0.png new file mode 100644 index 000000000..23f442140 Binary files /dev/null and b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_foldable_7bbfcf49_0.png differ diff --git a/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_landscape_28420cd9_0.png b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_landscape_28420cd9_0.png new file mode 100644 index 000000000..23f442140 Binary files /dev/null and b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_landscape_28420cd9_0.png differ diff --git a/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_phone_1aa8ea74_0.png b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_phone_1aa8ea74_0.png new file mode 100644 index 000000000..23f442140 Binary files /dev/null and b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_phone_1aa8ea74_0.png differ diff --git a/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_tablet_87db82e2_0.png b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_tablet_87db82e2_0.png new file mode 100644 index 000000000..23f442140 Binary files /dev/null and b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenEmpty_tablet_87db82e2_0.png differ diff --git a/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_foldable_7bbfcf49_0.png b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_foldable_7bbfcf49_0.png new file mode 100644 index 000000000..79a51ea94 Binary files /dev/null and b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_foldable_7bbfcf49_0.png differ diff --git a/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_landscape_28420cd9_0.png b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_landscape_28420cd9_0.png new file mode 100644 index 000000000..79a51ea94 Binary files /dev/null and b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_landscape_28420cd9_0.png differ diff --git a/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_phone_1aa8ea74_0.png b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_phone_1aa8ea74_0.png new file mode 100644 index 000000000..79a51ea94 Binary files /dev/null and b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_phone_1aa8ea74_0.png differ diff --git a/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_tablet_87db82e2_0.png b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_tablet_87db82e2_0.png new file mode 100644 index 000000000..79a51ea94 Binary files /dev/null and b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenLoading_tablet_87db82e2_0.png differ diff --git a/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_foldable_7bbfcf49_09c43dba_0.png b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_foldable_7bbfcf49_09c43dba_0.png new file mode 100644 index 000000000..f1bafb126 Binary files /dev/null and b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_foldable_7bbfcf49_09c43dba_0.png differ diff --git a/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_landscape_28420cd9_09c43dba_0.png b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_landscape_28420cd9_09c43dba_0.png new file mode 100644 index 000000000..f1bafb126 Binary files /dev/null and b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_landscape_28420cd9_09c43dba_0.png differ diff --git a/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_phone_1aa8ea74_09c43dba_0.png b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_phone_1aa8ea74_09c43dba_0.png new file mode 100644 index 000000000..f1bafb126 Binary files /dev/null and b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_phone_1aa8ea74_09c43dba_0.png differ diff --git a/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_tablet_87db82e2_09c43dba_0.png b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_tablet_87db82e2_09c43dba_0.png new file mode 100644 index 000000000..f1bafb126 Binary files /dev/null and b/feature/interests/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTestKt/InterestsScreenPopulated_tablet_87db82e2_09c43dba_0.png differ diff --git a/feature/interests/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTest.kt b/feature/interests/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTest.kt new file mode 100644 index 000000000..2484dbb63 --- /dev/null +++ b/feature/interests/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreenScreenshotTest.kt @@ -0,0 +1,73 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.feature.interests +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.tooling.preview.PreviewParameter +import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaBackground +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme +import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic +import com.google.samples.apps.nowinandroid.core.ui.DevicePreviews +import com.google.samples.apps.nowinandroid.core.ui.FollowableTopicPreviewParameterProvider + +@DevicePreviews +@Composable +fun InterestsScreenPopulated( + @PreviewParameter(FollowableTopicPreviewParameterProvider::class) + followableTopics: List, +) { + NiaTheme { + NiaBackground { + InterestsScreen( + uiState = InterestsUiState.Interests( + selectedTopicId = null, + topics = followableTopics, + ), + followTopic = { _, _ -> }, + onTopicClick = {}, + ) + } + } +} + +@DevicePreviews +@Composable +fun InterestsScreenLoading() { + NiaTheme { + NiaBackground { + InterestsScreen( + uiState = InterestsUiState.Loading, + followTopic = { _, _ -> }, + onTopicClick = {}, + ) + } + } +} + +@DevicePreviews +@Composable +fun InterestsScreenEmpty() { + NiaTheme { + NiaBackground { + InterestsScreen( + uiState = InterestsUiState.Empty, + followTopic = { _, _ -> }, + onTopicClick = {}, + ) + } + } +} diff --git a/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/EmptySearchResultColumnPreview_0.png b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/EmptySearchResultColumnPreview_0.png new file mode 100644 index 000000000..b3151e193 Binary files /dev/null and b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/EmptySearchResultColumnPreview_0.png differ diff --git a/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/RecentSearchesBodyPreview_0.png b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/RecentSearchesBodyPreview_0.png new file mode 100644 index 000000000..5a508e8a6 Binary files /dev/null and b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/RecentSearchesBodyPreview_0.png differ diff --git a/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchNotReadyBodyPreview_0.png b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchNotReadyBodyPreview_0.png new file mode 100644 index 000000000..fd5bf538c Binary files /dev/null and b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchNotReadyBodyPreview_0.png differ diff --git a/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_foldable_7bbfcf49_ff53f181_0.png b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_foldable_7bbfcf49_ff53f181_0.png new file mode 100644 index 000000000..c6cf39a9a Binary files /dev/null and b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_foldable_7bbfcf49_ff53f181_0.png differ diff --git a/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_landscape_28420cd9_ff53f181_0.png b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_landscape_28420cd9_ff53f181_0.png new file mode 100644 index 000000000..c6cf39a9a Binary files /dev/null and b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_landscape_28420cd9_ff53f181_0.png differ diff --git a/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_phone_1aa8ea74_ff53f181_0.png b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_phone_1aa8ea74_ff53f181_0.png new file mode 100644 index 000000000..c6cf39a9a Binary files /dev/null and b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_phone_1aa8ea74_ff53f181_0.png differ diff --git a/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_tablet_87db82e2_ff53f181_0.png b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_tablet_87db82e2_ff53f181_0.png new file mode 100644 index 000000000..c6cf39a9a Binary files /dev/null and b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_tablet_87db82e2_ff53f181_0.png differ diff --git a/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchToolbarPreview_0.png b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchToolbarPreview_0.png new file mode 100644 index 000000000..8648246ce Binary files /dev/null and b/feature/search/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchToolbarPreview_0.png differ diff --git a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt b/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt index b617f98a9..8b98e192e 100644 --- a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt +++ b/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt @@ -75,8 +75,6 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.text.withLink import androidx.compose.ui.text.withStyle -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -84,10 +82,8 @@ import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollba import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.rememberDraggableScroller import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.scrollbarState import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons -import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource -import com.google.samples.apps.nowinandroid.core.ui.DevicePreviews import com.google.samples.apps.nowinandroid.core.ui.InterestsItem import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState.Success import com.google.samples.apps.nowinandroid.core.ui.R.string @@ -267,7 +263,7 @@ fun EmptySearchResultBody( } @Composable -private fun SearchNotReadyBody() { +internal fun SearchNotReadyBody() { Column( horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.padding(horizontal = 48.dp), @@ -282,7 +278,7 @@ private fun SearchNotReadyBody() { } @Composable -private fun SearchResultBody( +internal fun SearchResultBody( searchQuery: String, topics: List, newsResources: List, @@ -388,7 +384,7 @@ private fun SearchResultBody( } @Composable -private fun RecentSearchesBody( +internal fun RecentSearchesBody( recentSearchQueries: List, onClearRecentSearches: () -> Unit, onRecentSearchClicked: (String) -> Unit, @@ -440,7 +436,7 @@ private fun RecentSearchesBody( } @Composable -private fun SearchToolbar( +internal fun SearchToolbar( searchQuery: String, onSearchQueryChanged: (String) -> Unit, onSearchTriggered: (String) -> Unit, @@ -468,7 +464,7 @@ private fun SearchToolbar( } @Composable -private fun SearchTextField( +internal fun SearchTextField( searchQuery: String, onSearchQueryChanged: (String) -> Unit, onSearchTriggered: (String) -> Unit, @@ -548,58 +544,3 @@ private fun SearchTextField( focusRequester.requestFocus() } } - -@Preview -@Composable -private fun SearchToolbarPreview() { - NiaTheme { - SearchToolbar( - searchQuery = "", - onBackClick = {}, - onSearchQueryChanged = {}, - onSearchTriggered = {}, - ) - } -} - -@Preview -@Composable -private fun EmptySearchResultColumnPreview() { - NiaTheme { - EmptySearchResultBody( - onInterestsClick = {}, - searchQuery = "C++", - ) - } -} - -@Preview -@Composable -private fun RecentSearchesBodyPreview() { - NiaTheme { - RecentSearchesBody( - onClearRecentSearches = {}, - onRecentSearchClicked = {}, - recentSearchQueries = listOf("kotlin", "jetpack compose", "testing"), - ) - } -} - -@Preview -@Composable -private fun SearchNotReadyBodyPreview() { - NiaTheme { - SearchNotReadyBody() - } -} - -@DevicePreviews -@Composable -private fun SearchScreenPreview( - @PreviewParameter(SearchUiStatePreviewParameterProvider::class) - searchResultUiState: SearchResultUiState, -) { - NiaTheme { - SearchScreen(searchResultUiState = searchResultUiState) - } -} diff --git a/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/EmptySearchResultColumnPreview_0.png b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/EmptySearchResultColumnPreview_0.png new file mode 100644 index 000000000..b3151e193 Binary files /dev/null and b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/EmptySearchResultColumnPreview_0.png differ diff --git a/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/RecentSearchesBodyPreview_0.png b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/RecentSearchesBodyPreview_0.png new file mode 100644 index 000000000..5a508e8a6 Binary files /dev/null and b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/RecentSearchesBodyPreview_0.png differ diff --git a/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchNotReadyBodyPreview_0.png b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchNotReadyBodyPreview_0.png new file mode 100644 index 000000000..fd5bf538c Binary files /dev/null and b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchNotReadyBodyPreview_0.png differ diff --git a/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_foldable_7bbfcf49_ff53f181_0.png b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_foldable_7bbfcf49_ff53f181_0.png new file mode 100644 index 000000000..c6cf39a9a Binary files /dev/null and b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_foldable_7bbfcf49_ff53f181_0.png differ diff --git a/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_landscape_28420cd9_ff53f181_0.png b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_landscape_28420cd9_ff53f181_0.png new file mode 100644 index 000000000..c6cf39a9a Binary files /dev/null and b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_landscape_28420cd9_ff53f181_0.png differ diff --git a/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_phone_1aa8ea74_ff53f181_0.png b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_phone_1aa8ea74_ff53f181_0.png new file mode 100644 index 000000000..c6cf39a9a Binary files /dev/null and b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_phone_1aa8ea74_ff53f181_0.png differ diff --git a/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_tablet_87db82e2_ff53f181_0.png b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_tablet_87db82e2_ff53f181_0.png new file mode 100644 index 000000000..c6cf39a9a Binary files /dev/null and b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchScreenPreview_tablet_87db82e2_ff53f181_0.png differ diff --git a/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchToolbarPreview_0.png b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchToolbarPreview_0.png new file mode 100644 index 000000000..8648246ce Binary files /dev/null and b/feature/search/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTestKt/SearchToolbarPreview_0.png differ diff --git a/feature/search/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTest.kt b/feature/search/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTest.kt new file mode 100644 index 000000000..64e4d5c46 --- /dev/null +++ b/feature/search/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreenScreenshotTest.kt @@ -0,0 +1,78 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.feature.search +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme +import com.google.samples.apps.nowinandroid.core.ui.DevicePreviews + +@Preview +@Composable +fun SearchToolbarPreview() { + NiaTheme { + SearchToolbar( + searchQuery = "", + onBackClick = {}, + onSearchQueryChanged = {}, + onSearchTriggered = {}, + ) + } +} + +@Preview +@Composable +fun EmptySearchResultColumnPreview() { + NiaTheme { + EmptySearchResultBody( + onInterestsClick = {}, + searchQuery = "C++", + ) + } +} + +@Preview +@Composable +fun RecentSearchesBodyPreview() { + NiaTheme { + RecentSearchesBody( + onClearRecentSearches = {}, + onRecentSearchClicked = {}, + recentSearchQueries = listOf("kotlin", "jetpack compose", "testing"), + ) + } +} + +@Preview +@Composable +fun SearchNotReadyBodyPreview() { + NiaTheme { + SearchNotReadyBody() + } +} + +@DevicePreviews +@Composable +fun SearchScreenPreview( + @PreviewParameter(SearchUiStatePreviewParameterProvider::class) + searchResultUiState: SearchResultUiState, +) { + NiaTheme { + SearchScreen(searchResultUiState = searchResultUiState) + } +} diff --git a/feature/settings/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTestKt/PreviewSettingsDialogLoading_0.png b/feature/settings/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTestKt/PreviewSettingsDialogLoading_0.png new file mode 100644 index 000000000..a3f5ea013 Binary files /dev/null and b/feature/settings/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTestKt/PreviewSettingsDialogLoading_0.png differ diff --git a/feature/settings/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTestKt/PreviewSettingsDialog_0.png b/feature/settings/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTestKt/PreviewSettingsDialog_0.png new file mode 100644 index 000000000..71fbf40bc Binary files /dev/null and b/feature/settings/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTestKt/PreviewSettingsDialog_0.png differ diff --git a/feature/settings/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt b/feature/settings/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt index ad7f30f43..ec574c0a8 100644 --- a/feature/settings/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt +++ b/feature/settings/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt @@ -49,14 +49,12 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.Role -import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.window.DialogProperties import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.google.android.gms.oss.licenses.OssLicensesMenuActivity import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaTextButton -import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import com.google.samples.apps.nowinandroid.core.designsystem.theme.supportsDynamicTheming import com.google.samples.apps.nowinandroid.core.model.data.DarkThemeConfig import com.google.samples.apps.nowinandroid.core.model.data.DarkThemeConfig.DARK @@ -156,7 +154,7 @@ fun SettingsDialog( // [ColumnScope] is used for using the [ColumnScope.AnimatedVisibility] extension overload composable. @Composable -private fun ColumnScope.SettingsPanel( +internal fun ColumnScope.SettingsPanel( settings: UserEditableSettings, supportDynamicColor: Boolean, onChangeThemeBrand: (themeBrand: ThemeBrand) -> Unit, @@ -214,7 +212,7 @@ private fun ColumnScope.SettingsPanel( } @Composable -private fun SettingsDialogSectionTitle(text: String) { +internal fun SettingsDialogSectionTitle(text: String) { Text( text = text, style = MaterialTheme.typography.titleMedium, @@ -250,7 +248,7 @@ fun SettingsDialogThemeChooserRow( @OptIn(ExperimentalLayoutApi::class) @Composable -private fun LinksPanel() { +internal fun LinksPanel() { FlowRow( horizontalArrangement = Arrangement.spacedBy( space = 16.dp, @@ -285,40 +283,6 @@ private fun LinksPanel() { } } -@Preview -@Composable -private fun PreviewSettingsDialog() { - NiaTheme { - SettingsDialog( - onDismiss = {}, - settingsUiState = Success( - UserEditableSettings( - brand = DEFAULT, - darkThemeConfig = FOLLOW_SYSTEM, - useDynamicColor = false, - ), - ), - onChangeThemeBrand = {}, - onChangeDynamicColorPreference = {}, - onChangeDarkThemeConfig = {}, - ) - } -} - -@Preview -@Composable -private fun PreviewSettingsDialogLoading() { - NiaTheme { - SettingsDialog( - onDismiss = {}, - settingsUiState = Loading, - onChangeThemeBrand = {}, - onChangeDynamicColorPreference = {}, - onChangeDarkThemeConfig = {}, - ) - } -} - private const val PRIVACY_POLICY_URL = "https://policies.google.com/privacy" private const val BRAND_GUIDELINES_URL = "https://developer.android.com/distribute/marketing-tools/brand-guidelines" private const val FEEDBACK_URL = "https://goo.gle/nia-app-feedback" diff --git a/feature/settings/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTestKt/PreviewSettingsDialogLoading_0.png b/feature/settings/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTestKt/PreviewSettingsDialogLoading_0.png new file mode 100644 index 000000000..a3f5ea013 Binary files /dev/null and b/feature/settings/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTestKt/PreviewSettingsDialogLoading_0.png differ diff --git a/feature/settings/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTestKt/PreviewSettingsDialog_0.png b/feature/settings/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTestKt/PreviewSettingsDialog_0.png new file mode 100644 index 000000000..71fbf40bc Binary files /dev/null and b/feature/settings/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTestKt/PreviewSettingsDialog_0.png differ diff --git a/feature/settings/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTest.kt b/feature/settings/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTest.kt new file mode 100644 index 000000000..63d9f7517 --- /dev/null +++ b/feature/settings/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogScreenshotTest.kt @@ -0,0 +1,59 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.feature.settings +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.tooling.preview.Preview +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme +import com.google.samples.apps.nowinandroid.core.model.data.DarkThemeConfig.FOLLOW_SYSTEM +import com.google.samples.apps.nowinandroid.core.model.data.ThemeBrand.DEFAULT +import com.google.samples.apps.nowinandroid.feature.settings.SettingsUiState.Loading +import com.google.samples.apps.nowinandroid.feature.settings.SettingsUiState.Success + +@Preview +@Composable +fun PreviewSettingsDialog() { + NiaTheme { + SettingsDialog( + onDismiss = {}, + settingsUiState = Success( + UserEditableSettings( + brand = DEFAULT, + darkThemeConfig = FOLLOW_SYSTEM, + useDynamicColor = false, + ), + ), + onChangeThemeBrand = {}, + onChangeDynamicColorPreference = {}, + onChangeDarkThemeConfig = {}, + ) + } +} + +@Preview +@Composable +fun PreviewSettingsDialogLoading() { + NiaTheme { + SettingsDialog( + onDismiss = {}, + settingsUiState = Loading, + onChangeThemeBrand = {}, + onChangeDynamicColorPreference = {}, + onChangeDarkThemeConfig = {}, + ) + } +} diff --git a/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholderScreenshotTestKt/TopicDetailPlaceholderPreview_4b1edab5_0.png b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholderScreenshotTestKt/TopicDetailPlaceholderPreview_4b1edab5_0.png new file mode 100644 index 000000000..5e3a0344a Binary files /dev/null and b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholderScreenshotTestKt/TopicDetailPlaceholderPreview_4b1edab5_0.png differ diff --git a/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicBodyPreview_0.png b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicBodyPreview_0.png new file mode 100644 index 000000000..43964b3e4 Binary files /dev/null and b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicBodyPreview_0.png differ diff --git a/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_foldable_7bbfcf49_0.png b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_foldable_7bbfcf49_0.png new file mode 100644 index 000000000..160a73a2f Binary files /dev/null and b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_foldable_7bbfcf49_0.png differ diff --git a/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_landscape_28420cd9_0.png b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_landscape_28420cd9_0.png new file mode 100644 index 000000000..160a73a2f Binary files /dev/null and b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_landscape_28420cd9_0.png differ diff --git a/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_phone_1aa8ea74_0.png b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_phone_1aa8ea74_0.png new file mode 100644 index 000000000..160a73a2f Binary files /dev/null and b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_phone_1aa8ea74_0.png differ diff --git a/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_tablet_87db82e2_0.png b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_tablet_87db82e2_0.png new file mode 100644 index 000000000..160a73a2f Binary files /dev/null and b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_tablet_87db82e2_0.png differ diff --git a/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_foldable_7bbfcf49_f7c0e3ab_0.png b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_foldable_7bbfcf49_f7c0e3ab_0.png new file mode 100644 index 000000000..088a284a8 Binary files /dev/null and b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_foldable_7bbfcf49_f7c0e3ab_0.png differ diff --git a/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_landscape_28420cd9_f7c0e3ab_0.png b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_landscape_28420cd9_f7c0e3ab_0.png new file mode 100644 index 000000000..088a284a8 Binary files /dev/null and b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_landscape_28420cd9_f7c0e3ab_0.png differ diff --git a/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_phone_1aa8ea74_f7c0e3ab_0.png b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_phone_1aa8ea74_f7c0e3ab_0.png new file mode 100644 index 000000000..088a284a8 Binary files /dev/null and b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_phone_1aa8ea74_f7c0e3ab_0.png differ diff --git a/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_tablet_87db82e2_f7c0e3ab_0.png b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_tablet_87db82e2_f7c0e3ab_0.png new file mode 100644 index 000000000..088a284a8 Binary files /dev/null and b/feature/topic/src/demoDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_tablet_87db82e2_f7c0e3ab_0.png differ diff --git a/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholder.kt b/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholder.kt index 627fb8fb3..b9539a904 100644 --- a/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholder.kt +++ b/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholder.kt @@ -30,9 +30,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme @Composable fun TopicDetailPlaceholder(modifier: Modifier = Modifier) { @@ -61,11 +59,3 @@ fun TopicDetailPlaceholder(modifier: Modifier = Modifier) { } } } - -@Preview(widthDp = 200, heightDp = 300) -@Composable -fun TopicDetailPlaceholderPreview() { - NiaTheme { - TopicDetailPlaceholder() - } -} diff --git a/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt b/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt index 8ef0d786d..50dc7519c 100644 --- a/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt +++ b/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt @@ -47,26 +47,19 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.google.samples.apps.nowinandroid.core.designsystem.component.DynamicAsyncImage -import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaBackground import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaFilterChip import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaLoadingWheel import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.DraggableScrollbar import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.rememberDraggableScroller import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.scrollbarState import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons -import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic -import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource -import com.google.samples.apps.nowinandroid.core.ui.DevicePreviews import com.google.samples.apps.nowinandroid.core.ui.TrackScreenViewEvent import com.google.samples.apps.nowinandroid.core.ui.TrackScrollJank -import com.google.samples.apps.nowinandroid.core.ui.UserNewsResourcePreviewParameterProvider import com.google.samples.apps.nowinandroid.core.ui.userNewsResourceCardItems import com.google.samples.apps.nowinandroid.feature.topic.R.string @@ -185,7 +178,7 @@ private fun topicItemsSize( } } -private fun LazyListScope.topicBody( +internal fun LazyListScope.topicBody( name: String, description: String, news: NewsUiState, @@ -203,7 +196,7 @@ private fun LazyListScope.topicBody( } @Composable -private fun TopicHeader(name: String, description: String, imageUrl: String) { +internal fun TopicHeader(name: String, description: String, imageUrl: String) { Column( modifier = Modifier.padding(horizontal = 24.dp), ) { @@ -254,26 +247,8 @@ private fun LazyListScope.userNewsResourceCards( } } -@Preview @Composable -private fun TopicBodyPreview() { - NiaTheme { - LazyColumn { - topicBody( - name = "Jetpack Compose", - description = "Lorem ipsum maximum", - news = NewsUiState.Success(emptyList()), - imageUrl = "", - onBookmarkChanged = { _, _ -> }, - onNewsResourceViewed = {}, - onTopicClick = {}, - ) - } - } -} - -@Composable -private fun TopicToolbar( +internal fun TopicToolbar( uiState: FollowableTopic, modifier: Modifier = Modifier, showBackButton: Boolean = true, @@ -314,44 +289,3 @@ private fun TopicToolbar( } } } - -@DevicePreviews -@Composable -fun TopicScreenPopulated( - @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) - userNewsResources: List, -) { - NiaTheme { - NiaBackground { - TopicScreen( - topicUiState = TopicUiState.Success(userNewsResources[0].followableTopics[0]), - newsUiState = NewsUiState.Success(userNewsResources), - showBackButton = true, - onBackClick = {}, - onFollowClick = {}, - onBookmarkChanged = { _, _ -> }, - onNewsResourceViewed = {}, - onTopicClick = {}, - ) - } - } -} - -@DevicePreviews -@Composable -fun TopicScreenLoading() { - NiaTheme { - NiaBackground { - TopicScreen( - topicUiState = TopicUiState.Loading, - newsUiState = NewsUiState.Loading, - showBackButton = true, - onBackClick = {}, - onFollowClick = {}, - onBookmarkChanged = { _, _ -> }, - onNewsResourceViewed = {}, - onTopicClick = {}, - ) - } - } -} diff --git a/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholderScreenshotTestKt/TopicDetailPlaceholderPreview_4b1edab5_0.png b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholderScreenshotTestKt/TopicDetailPlaceholderPreview_4b1edab5_0.png new file mode 100644 index 000000000..5e3a0344a Binary files /dev/null and b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholderScreenshotTestKt/TopicDetailPlaceholderPreview_4b1edab5_0.png differ diff --git a/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicBodyPreview_0.png b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicBodyPreview_0.png new file mode 100644 index 000000000..43964b3e4 Binary files /dev/null and b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicBodyPreview_0.png differ diff --git a/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_foldable_7bbfcf49_0.png b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_foldable_7bbfcf49_0.png new file mode 100644 index 000000000..160a73a2f Binary files /dev/null and b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_foldable_7bbfcf49_0.png differ diff --git a/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_landscape_28420cd9_0.png b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_landscape_28420cd9_0.png new file mode 100644 index 000000000..160a73a2f Binary files /dev/null and b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_landscape_28420cd9_0.png differ diff --git a/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_phone_1aa8ea74_0.png b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_phone_1aa8ea74_0.png new file mode 100644 index 000000000..160a73a2f Binary files /dev/null and b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_phone_1aa8ea74_0.png differ diff --git a/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_tablet_87db82e2_0.png b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_tablet_87db82e2_0.png new file mode 100644 index 000000000..160a73a2f Binary files /dev/null and b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenLoading_tablet_87db82e2_0.png differ diff --git a/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_foldable_7bbfcf49_f7c0e3ab_0.png b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_foldable_7bbfcf49_f7c0e3ab_0.png new file mode 100644 index 000000000..088a284a8 Binary files /dev/null and b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_foldable_7bbfcf49_f7c0e3ab_0.png differ diff --git a/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_landscape_28420cd9_f7c0e3ab_0.png b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_landscape_28420cd9_f7c0e3ab_0.png new file mode 100644 index 000000000..088a284a8 Binary files /dev/null and b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_landscape_28420cd9_f7c0e3ab_0.png differ diff --git a/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_phone_1aa8ea74_f7c0e3ab_0.png b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_phone_1aa8ea74_f7c0e3ab_0.png new file mode 100644 index 000000000..088a284a8 Binary files /dev/null and b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_phone_1aa8ea74_f7c0e3ab_0.png differ diff --git a/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_tablet_87db82e2_f7c0e3ab_0.png b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_tablet_87db82e2_f7c0e3ab_0.png new file mode 100644 index 000000000..088a284a8 Binary files /dev/null and b/feature/topic/src/prodDebug/screenshotTest/reference/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTestKt/TopicScreenPopulated_tablet_87db82e2_f7c0e3ab_0.png differ diff --git a/feature/topic/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholderScreenshotTest.kt b/feature/topic/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholderScreenshotTest.kt new file mode 100644 index 000000000..0a0778168 --- /dev/null +++ b/feature/topic/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholderScreenshotTest.kt @@ -0,0 +1,28 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.feature.topic +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme + +@Preview(widthDp = 200, heightDp = 300) +@Composable +fun TopicDetailPlaceholderPreview() { + NiaTheme { + TopicDetailPlaceholder() + } +} diff --git a/feature/topic/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTest.kt b/feature/topic/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTest.kt new file mode 100644 index 000000000..4a852062f --- /dev/null +++ b/feature/topic/src/screenshotTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenScreenshotTest.kt @@ -0,0 +1,86 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.feature.topic +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaBackground +import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme +import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource +import com.google.samples.apps.nowinandroid.core.ui.DevicePreviews +import com.google.samples.apps.nowinandroid.core.ui.UserNewsResourcePreviewParameterProvider + +@Preview +@Composable +fun TopicBodyPreview() { + NiaTheme { + LazyColumn { + topicBody( + name = "Jetpack Compose", + description = "Lorem ipsum maximum", + news = NewsUiState.Success(emptyList()), + imageUrl = "", + onBookmarkChanged = { _, _ -> }, + onNewsResourceViewed = {}, + onTopicClick = {}, + ) + } + } +} + +@DevicePreviews +@Composable +fun TopicScreenPopulated( + @PreviewParameter(UserNewsResourcePreviewParameterProvider::class) + userNewsResources: List, +) { + NiaTheme { + NiaBackground { + TopicScreen( + topicUiState = TopicUiState.Success(userNewsResources[0].followableTopics[0]), + newsUiState = NewsUiState.Success(userNewsResources), + showBackButton = true, + onBackClick = {}, + onFollowClick = {}, + onBookmarkChanged = { _, _ -> }, + onNewsResourceViewed = {}, + onTopicClick = {}, + ) + } + } +} + +@DevicePreviews +@Composable +fun TopicScreenLoading() { + NiaTheme { + NiaBackground { + TopicScreen( + topicUiState = TopicUiState.Loading, + newsUiState = NewsUiState.Loading, + showBackButton = true, + onBackClick = {}, + onFollowClick = {}, + onBookmarkChanged = { _, _ -> }, + onNewsResourceViewed = {}, + onTopicClick = {}, + ) + } + } +} diff --git a/gradle.properties b/gradle.properties index 2e9d9fc30..dbc43237d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -63,3 +63,6 @@ roborazzi.test.verify=true # Prevent uninstall app after instrumented tests # https://issuetracker.google.com/issues/295039976 android.injected.androidTest.leaveApksInstalledAfterRun=true + +# Enable screenshot tests for compose preview +android.experimental.enableScreenshotTest=true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 46c845404..26941be14 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -31,6 +31,7 @@ androidxUiAutomator = "2.3.0" androidxWindowManager = "1.3.0" androidxWork = "2.10.0" coil = "2.7.0" +composeScreenshotTest = "0.0.1-alpha08" dependencyGuard = "0.5.0" firebaseBom = "33.7.0" firebaseCrashlyticsPlugin = "3.0.6" @@ -167,6 +168,7 @@ android-lint = { id = "com.android.lint", version.ref = "androidGradlePlugin" } android-test = { id = "com.android.test", version.ref = "androidGradlePlugin" } baselineprofile = { id = "androidx.baselineprofile", version.ref = "androidxMacroBenchmark"} compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } +compose-screenshot-test = { id = "com.android.compose.screenshot", version.ref = "composeScreenshotTest" } dependencyGuard = { id = "com.dropbox.dependency-guard", version.ref = "dependencyGuard" } firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebaseCrashlyticsPlugin" } firebase-perf = { id = "com.google.firebase.firebase-perf", version.ref = "firebasePerfPlugin" }