compose: Setup and use a default template for previews

Also load default app theme for previews

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2025-11-10 14:01:56 +08:00
parent 1f69ecc9de
commit da7890cffe
54 changed files with 314 additions and 193 deletions

View File

@@ -31,6 +31,7 @@ import androidx.core.graphics.drawable.toBitmap
import androidx.core.graphics.drawable.toDrawable
import com.aurora.store.BuildConfig
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable for displaying package details in a list for blacklisting
@@ -103,13 +104,15 @@ fun BlackListItem(
@Preview(showBackground = true)
@Composable
private fun BlackListItemPreview() {
BlackListItem(
icon = Color.GRAY.toDrawable().toBitmap(56, 56),
displayName = LocalContext.current.getString(R.string.app_name),
packageName = BuildConfig.APPLICATION_ID,
versionName = BuildConfig.VERSION_NAME,
versionCode = BuildConfig.VERSION_CODE.toLong(),
isChecked = true,
isEnabled = false
)
PreviewTemplate {
BlackListItem(
icon = Color.GRAY.toDrawable().toBitmap(56, 56),
displayName = LocalContext.current.getString(R.string.app_name),
packageName = BuildConfig.APPLICATION_ID,
versionName = BuildConfig.VERSION_NAME,
versionCode = BuildConfig.VERSION_CODE.toLong(),
isChecked = true,
isEnabled = false
)
}
}

View File

@@ -16,6 +16,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to display an indeterminate loading indicator that fills all available screen
@@ -38,5 +39,7 @@ fun ContainedLoadingIndicator(modifier: Modifier = Modifier) {
@Preview(showBackground = true)
@Composable
private fun ContainedLoadingIndicatorPreview() {
ContainedLoadingIndicator()
PreviewTemplate {
ContainedLoadingIndicator()
}
}

View File

@@ -33,7 +33,6 @@ import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.material3.VerticalDivider
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
@@ -48,12 +47,11 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import coil3.compose.LocalAsyncImagePreviewHandler
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composable.app.AnimatedAppIcon
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.data.model.DownloadStatus
import com.aurora.store.data.room.download.Download
import com.aurora.store.util.CommonUtil.getETAString
@@ -243,7 +241,7 @@ fun DownloadListItem(
@Preview(showBackground = true)
@Composable
private fun DownloadListItemPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
DownloadListItem(download = Download.fromApp(app))
}
}

View File

@@ -25,6 +25,7 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to show error message that fills all available screen
@@ -78,9 +79,11 @@ fun Error(
@Preview(showBackground = true)
@Composable
private fun ErrorPreview() {
Error(
painter = painterResource(R.drawable.ic_updates),
message = stringResource(R.string.details_no_updates),
actionMessage = stringResource(R.string.check_updates)
)
PreviewTemplate {
Error(
painter = painterResource(R.drawable.ic_updates),
message = stringResource(R.string.details_no_updates),
actionMessage = stringResource(R.string.check_updates)
)
}
}

View File

@@ -22,7 +22,6 @@ import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
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
@@ -40,13 +39,12 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import coil3.compose.AsyncImage
import coil3.compose.LocalAsyncImagePreviewHandler
import coil3.request.ImageRequest
import coil3.request.crossfade
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.data.room.favourite.Favourite
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
@@ -141,7 +139,7 @@ fun FavouriteListItem(
@Preview(showBackground = true)
@Composable
private fun FavouriteListItemPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
FavouriteListItem(favourite = Favourite.fromApp(app, Favourite.Mode.MANUAL))
}
}

View File

@@ -25,6 +25,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to display sticky header in list
@@ -82,9 +83,11 @@ fun Header(
@Preview(showBackground = true)
@Composable
private fun HeaderPreview() {
Header(
title = stringResource(R.string.details_privacy),
subtitle = stringResource(R.string.exodus_powered),
onClick = {}
)
PreviewTemplate {
Header(
title = stringResource(R.string.details_privacy),
subtitle = stringResource(R.string.exodus_powered),
onClick = {}
)
}
}

View File

@@ -30,6 +30,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to show some information
@@ -83,9 +84,11 @@ fun Info(
@Preview(showBackground = true)
@Composable
private fun InfoPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
Info(
title = AnnotatedString(text = stringResource(R.string.details_dev_website)),
description = AnnotatedString.fromHtml(htmlString = app.developerWebsite),
painter = painterResource(R.drawable.ic_network)
)
PreviewTemplate {
Info(
title = AnnotatedString(text = stringResource(R.string.details_dev_website)),
description = AnnotatedString.fromHtml(htmlString = app.developerWebsite),
painter = painterResource(R.drawable.ic_network)
)
}
}

View File

@@ -31,6 +31,8 @@ import coil3.compose.AsyncImage
import coil3.request.ImageRequest
import com.aurora.store.R
import com.aurora.store.data.model.Link
import androidx.compose.ui.res.stringResource
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to show link details in a list
@@ -84,13 +86,15 @@ fun LinkListItem(modifier: Modifier = Modifier, link: Link, onClick: () -> Unit
@Preview(showBackground = true)
@Composable
private fun LinkListItemPreview() {
LinkListItem(
link = Link(
id = 0,
title = LocalContext.current.getString(R.string.title_about),
subtitle = LocalContext.current.getString(R.string.about_aurora_store_subtitle),
url = "https://auroraoss.com/",
icon = R.drawable.ic_menu_about
PreviewTemplate {
LinkListItem(
link = Link(
id = 0,
title = stringResource(R.string.title_about),
subtitle = stringResource(R.string.about_aurora_store_subtitle),
url = "https://auroraoss.com/",
icon = R.drawable.ic_menu_about
)
)
)
}
}

View File

@@ -24,6 +24,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Pager indicator
@@ -74,5 +75,7 @@ fun PageIndicator(modifier: Modifier = Modifier, totalPages: Int, currentPage: I
@Preview(showBackground = true)
@Composable
private fun PageIndicatorPreview() {
PageIndicator(totalPages = 5)
PreviewTemplate {
PageIndicator(totalPages = 5)
}
}

View File

@@ -16,12 +16,12 @@ import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.data.model.Permission
import com.aurora.store.data.model.PermissionType
@@ -73,12 +73,14 @@ fun PermissionListItem(
@Preview(showBackground = true)
@Composable
private fun PermissionListItemPreview() {
PermissionListItem(
permission = Permission(
PermissionType.STORAGE_MANAGER,
LocalContext.current.getString(R.string.onboarding_permission_esm),
LocalContext.current.getString(R.string.onboarding_permission_esa_desc),
false
PreviewTemplate {
PermissionListItem(
permission = Permission(
PermissionType.STORAGE_MANAGER,
stringResource(R.string.onboarding_permission_esm),
stringResource(R.string.onboarding_permission_esa_desc),
false
)
)
)
}
}

View File

@@ -29,6 +29,7 @@ import coil3.request.ImageRequest
import coil3.request.crossfade
import com.aurora.gplayapi.SearchSuggestEntry
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable for displaying search suggestions in a list
@@ -98,7 +99,9 @@ fun SearchSuggestionListItem(
@Preview(showBackground = true)
@Composable
private fun SearchSuggestionListItemPreview() {
SearchSuggestionListItem(
searchSuggestEntry = SearchSuggestEntry.getDefaultInstance()
)
PreviewTemplate {
SearchSuggestionListItem(
searchSuggestEntry = SearchSuggestEntry.getDefaultInstance()
)
}
}

View File

@@ -16,6 +16,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to display a sticky header in a list
@@ -40,5 +41,7 @@ fun TextDividerComposable(modifier: Modifier = Modifier, title: String) {
@Preview(showBackground = true)
@Composable
private fun TextDividerComposablePreview() {
TextDividerComposable(title = stringResource(R.string.item_optional))
PreviewTemplate {
TextDividerComposable(title = stringResource(R.string.item_optional))
}
}

View File

@@ -17,6 +17,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* A top app bar composable to be used with Scaffold in different Screen
@@ -54,8 +55,10 @@ fun TopAppBar(
@Preview(showBackground = true)
@Composable
private fun TopAppBarPreview() {
TopAppBar(
title = stringResource(R.string.title_about),
onNavigateUp = {}
)
PreviewTemplate {
TopAppBar(
title = stringResource(R.string.title_about),
onNavigateUp = {}
)
}
}

View File

@@ -33,6 +33,7 @@ import coil3.request.crossfade
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.compose.preview.coilPreviewProvider
/**
@@ -109,7 +110,7 @@ private fun AnimatedAppIconPreview(@PreviewParameter(AppPreviewProvider::class)
@Preview(showBackground = true)
@Composable
private fun AnimatedAppIconPreview(@PreviewParameter(ProgressProvider::class) progress: Float) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
AnimatedAppIcon(
modifier = Modifier.requiredSize(dimensionResource(R.dimen.icon_size_large)),
iconUrl = "",

View File

@@ -15,7 +15,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.layout.ContentScale
@@ -25,13 +24,12 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import coil3.compose.AsyncImage
import coil3.compose.LocalAsyncImagePreviewHandler
import coil3.request.ImageRequest
import coil3.request.crossfade
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable for displaying minimal app details in a horizontal-scrollable list
@@ -81,7 +79,7 @@ fun AppListItem(modifier: Modifier = Modifier, app: App, onClick: () -> Unit = {
@Preview(showBackground = true)
@Composable
private fun AppListItemPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
AppListItem(app = app)
}
}

View File

@@ -15,7 +15,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.layout.ContentScale
@@ -26,14 +25,13 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import coil3.compose.AsyncImage
import coil3.compose.LocalAsyncImagePreviewHandler
import coil3.request.ImageRequest
import coil3.request.crossfade
import com.aurora.extensions.requiresGMS
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.util.CommonUtil
/**
@@ -86,7 +84,7 @@ fun LargeAppListItem(modifier: Modifier = Modifier, app: App, onClick: () -> Uni
@Preview(showBackground = true)
@Composable
fun LargeAppListItemPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
LargeAppListItem(app = app)
}
}

View File

@@ -16,6 +16,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to show a tag related to an app
@@ -43,8 +44,10 @@ fun TagListItem(
@Preview(showBackground = true)
@Composable
private fun TagListItemPreview() {
TagListItem(
label = stringResource(R.string.details_free),
painter = painterResource(R.drawable.ic_paid)
)
PreviewTemplate {
TagListItem(
label = stringResource(R.string.details_free),
painter = painterResource(R.drawable.ic_paid)
)
}
}

View File

@@ -15,6 +15,7 @@ import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.data.model.ExodusTracker
/**
@@ -49,11 +50,13 @@ fun ExodusListItem(modifier: Modifier = Modifier, tracker: ExodusTracker) {
@Preview(showBackground = true)
@Composable
private fun ExodusListItemPreview() {
ExodusListItem(
tracker = ExodusTracker(
name = "Google Analytics",
signature = "com.google.android.apps.analytics.|com.google.android.gms.analytics.|com.google.analytics.",
date = "2017-09-24"
PreviewTemplate {
ExodusListItem(
tracker = ExodusTracker(
name = "Google Analytics",
signature = "com.google.android.apps.analytics.|com.google.android.gms.analytics.|com.google.analytics.",
date = "2017-09-24"
)
)
)
}
}

View File

@@ -20,6 +20,7 @@ import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to show a progress bar with rating for an app
@@ -53,5 +54,7 @@ fun RatingListItem(modifier: Modifier = Modifier, label: String, rating: Float)
@Preview(showBackground = true)
@Composable
private fun RatingListItemPreview() {
RatingListItem(label = "5", rating = 0.5F)
PreviewTemplate {
RatingListItem(label = "5", rating = 0.5F)
}
}

View File

@@ -16,7 +16,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.layout.ContentScale
@@ -27,13 +26,12 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.viewinterop.AndroidView
import coil3.compose.AsyncImage
import coil3.compose.LocalAsyncImagePreviewHandler
import coil3.request.ImageRequest
import coil3.request.crossfade
import com.aurora.gplayapi.data.models.Review
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.compose.preview.ReviewPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
/**
* Composable for viewing a review about an app
@@ -98,7 +96,7 @@ fun ReviewListItem(modifier: Modifier = Modifier, review: Review) {
@Preview(showBackground = true)
@Composable
private fun ReviewListItemPreview(@PreviewParameter(ReviewPreviewProvider::class) review: Review) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
ReviewListItem(review = review)
}
}

View File

@@ -8,7 +8,6 @@ package com.aurora.store.compose.composable.details
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.aspectRatio
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.ContentScale
@@ -17,7 +16,6 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import coil3.compose.AsyncImagePainter
import coil3.compose.LocalAsyncImagePreviewHandler
import coil3.compose.rememberAsyncImagePainter
import coil3.compose.rememberConstraintsSizeResolver
import coil3.request.ImageRequest
@@ -25,7 +23,7 @@ import coil3.request.crossfade
import com.aurora.extensions.shimmer
import com.aurora.gplayapi.data.models.App
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to display a screenshot of an app
@@ -63,7 +61,7 @@ fun ScreenshotListItem(modifier: Modifier = Modifier, url: String) {
@Preview
@Composable
private fun ScreenshotListItemPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
ScreenshotListItem(url = app.screenshots.firstOrNull()?.url ?: "")
}
}

View File

@@ -0,0 +1,23 @@
/*
* SPDX-FileCopyrightText: 2025 The Calyx Institute
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.preview
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import coil3.compose.LocalAsyncImagePreviewHandler
import com.aurora.store.compose.theme.AuroraTheme
/**
* Template for previewing composable with default theme and remote image handling
*/
@Composable
fun PreviewTemplate(content : @Composable () -> Unit) {
AuroraTheme {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
content()
}
}
}

View File

@@ -12,6 +12,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Dialog for displaying information about Aurora Store
@@ -36,5 +37,7 @@ fun AboutDialog(onDismiss: () -> Unit = {}) {
@Preview
@Composable
private fun AboutDialogPreview() {
AboutDialog()
PreviewTemplate {
AboutDialog()
}
}

View File

@@ -41,6 +41,7 @@ import com.aurora.store.BuildConfig.VERSION_NAME
import com.aurora.store.R
import com.aurora.store.compose.composable.LinkListItem
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.data.model.Link
@Composable
@@ -166,5 +167,7 @@ private fun BrandHeader() {
@Preview
@Composable
private fun AboutScreenPreview() {
ScreenContent()
PreviewTemplate {
ScreenContent()
}
}

View File

@@ -47,6 +47,7 @@ import com.aurora.Constants.URL_TOS
import com.aurora.extensions.browse
import com.aurora.store.R
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.data.providers.AccountProvider
import com.aurora.store.viewmodel.accounts.AccountsViewModel
@@ -206,5 +207,7 @@ private fun AssistHeader() {
@Preview
@Composable
private fun AccountsScreenPreview() {
ScreenContent()
PreviewTemplate {
ScreenContent()
}
}

View File

@@ -12,6 +12,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Dialog for confirming log out
@@ -42,5 +43,7 @@ fun LogoutDialog(onConfirm: () -> Unit = {}, onDismiss: () -> Unit = {}) {
@Preview
@Composable
private fun LogoutDialogPreview() {
LogoutDialog()
PreviewTemplate {
LogoutDialog()
}
}

View File

@@ -46,6 +46,7 @@ import com.aurora.Constants
import com.aurora.extensions.toast
import com.aurora.store.R
import com.aurora.store.compose.composable.BlackListItem
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.compose.ui.blacklist.menu.BlacklistMenu
import com.aurora.store.compose.ui.blacklist.menu.MenuItem
import com.aurora.store.util.PackageUtil
@@ -239,5 +240,7 @@ private fun ScreenContent(
@Preview
@Composable
private fun BlacklistScreenPreview() {
ScreenContent()
PreviewTemplate {
ScreenContent()
}
}

View File

@@ -21,6 +21,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Menu for the blacklist screen
@@ -71,5 +72,7 @@ fun BlacklistMenu(
@Preview(showBackground = true)
@Composable
private fun BlacklistMenuPreview() {
BlacklistMenu(isExpanded = true)
PreviewTemplate {
BlacklistMenu(isExpanded = true)
}
}

View File

@@ -44,6 +44,7 @@ import com.aurora.store.R
import com.aurora.store.compose.composable.PermissionListItem
import com.aurora.store.compose.composable.TextDividerComposable
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.data.model.Permission
import com.aurora.store.data.model.PermissionType
import com.aurora.store.data.providers.PermissionProvider.Companion.isGranted
@@ -213,5 +214,7 @@ private fun PermissionsScreenPreview() {
isGranted = Random.nextBoolean()
)
}
ScreenContent(permissions = permissions)
PreviewTemplate {
ScreenContent(permissions = permissions)
}
}

View File

@@ -28,7 +28,6 @@ import androidx.compose.material3.adaptive.layout.calculatePaneScaffoldDirective
import androidx.compose.material3.adaptive.navigation.NavigableSupportingPaneScaffold
import androidx.compose.material3.adaptive.navigation.rememberSupportingPaneScaffoldNavigator
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberCoroutineScope
@@ -44,7 +43,6 @@ import androidx.compose.ui.tooling.preview.PreviewScreenSizes
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation3.runtime.NavKey
import coil3.compose.LocalAsyncImagePreviewHandler
import com.aurora.Constants.SHARE_URL
import com.aurora.extensions.appInfo
import com.aurora.extensions.browse
@@ -53,7 +51,6 @@ import com.aurora.extensions.requiresObbDir
import com.aurora.extensions.share
import com.aurora.extensions.toast
import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.data.models.Artwork
import com.aurora.gplayapi.data.models.Review
import com.aurora.store.R
import com.aurora.store.compose.composable.Error
@@ -63,7 +60,7 @@ import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.composable.app.LargeAppListItem
import com.aurora.store.compose.navigation.Screen
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.compose.ui.commons.PermissionRationaleScreen
import com.aurora.store.compose.ui.details.components.Actions
import com.aurora.store.compose.ui.details.components.Changelog
@@ -522,7 +519,7 @@ private fun ScreenContentApp(
@PreviewScreenSizes
@Composable
private fun AppDetailsScreenPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
ScreenContentApp(
app = app,
isAnonymous = false,
@@ -534,11 +531,15 @@ private fun AppDetailsScreenPreview(@PreviewParameter(AppPreviewProvider::class)
@Preview
@Composable
private fun AppDetailsScreenPreviewLoading() {
ScreenContentLoading()
PreviewTemplate {
ScreenContentLoading()
}
}
@Preview
@Composable
private fun AppDetailsScreenPreviewError() {
ScreenContentError()
PreviewTemplate {
ScreenContentError()
}
}

View File

@@ -32,6 +32,7 @@ import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.composable.details.ExodusListItem
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.data.model.ExodusTracker
import com.aurora.store.viewmodel.details.AppDetailsViewModel
import com.aurora.store.viewmodel.details.ExodusViewModel
@@ -111,8 +112,10 @@ private fun ScreenContent(
@Preview
@Composable
private fun ExodusScreenPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
ScreenContent(
topAppBarTitle = app.displayName,
version = app.versionName
)
PreviewTemplate {
ScreenContent(
topAppBarTitle = app.displayName,
version = app.versionName
)
}
}

View File

@@ -58,6 +58,7 @@ import com.aurora.store.R
import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.data.model.AppState
import com.aurora.store.viewmodel.details.AppDetailsViewModel
import kotlinx.coroutines.android.awaitFrame
@@ -214,8 +215,10 @@ private fun ScreenContent(
@Preview
@Composable
private fun ManualDownloadScreenPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
ScreenContent(
topAppBarTitle = app.displayName,
currentVersionCode = app.versionCode
)
PreviewTemplate {
ScreenContent(
topAppBarTitle = app.displayName,
currentVersionCode = app.versionCode
)
}
}

View File

@@ -20,7 +20,6 @@ import androidx.compose.material3.Text
import androidx.compose.material3.adaptive.WindowAdaptiveInfo
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.dimensionResource
@@ -31,7 +30,6 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import coil3.compose.LocalAsyncImagePreviewHandler
import com.aurora.extensions.adaptiveNavigationIcon
import com.aurora.extensions.isWindowCompact
import com.aurora.gplayapi.data.models.App
@@ -41,7 +39,7 @@ import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.composable.app.AppListItem
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.viewmodel.details.AppDetailsViewModel
import com.aurora.store.viewmodel.details.MoreViewModel
import java.util.Locale
@@ -193,7 +191,7 @@ private fun AppInfoMore(app: App) {
@Preview
@Composable
private fun MoreScreenPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
ScreenContent(app = app)
}
}

View File

@@ -32,6 +32,7 @@ import com.aurora.store.R
import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.viewmodel.details.AppDetailsViewModel
import com.aurora.store.viewmodel.details.PermissionViewModel
import java.util.Locale
@@ -117,7 +118,9 @@ private fun ScreenContent(
@Preview
@Composable
private fun PermissionScreenPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
ScreenContent(
topAppBarTitle = app.displayName
)
PreviewTemplate {
ScreenContent(
topAppBarTitle = app.displayName
)
}
}

View File

@@ -20,7 +20,6 @@ import androidx.compose.material3.Text
import androidx.compose.material3.adaptive.WindowAdaptiveInfo
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
@@ -38,7 +37,6 @@ import androidx.paging.PagingData
import androidx.paging.compose.LazyPagingItems
import androidx.paging.compose.collectAsLazyPagingItems
import androidx.paging.compose.itemKey
import coil3.compose.LocalAsyncImagePreviewHandler
import com.aurora.extensions.adaptiveNavigationIcon
import com.aurora.extensions.isWindowCompact
import com.aurora.gplayapi.data.models.Review
@@ -48,8 +46,8 @@ import com.aurora.store.compose.composable.ContainedLoadingIndicator
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.composable.details.ReviewListItem
import com.aurora.store.compose.preview.ReviewPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.extensions.emptyPagingItems
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.viewmodel.details.AppDetailsViewModel
import com.aurora.store.viewmodel.details.ReviewViewModel
import kotlinx.coroutines.flow.MutableStateFlow
@@ -186,10 +184,10 @@ private fun FilterHeader(onClick: (filter: Review.Filter) -> Unit) {
@Preview
@Composable
private fun ReviewScreenPreview(@PreviewParameter(ReviewPreviewProvider::class) review: Review) {
val reviews = List(10) { review.copy(commentId = Random.nextInt().toString()) }
val reviewsFlow = MutableStateFlow(PagingData.from(reviews)).collectAsLazyPagingItems()
PreviewTemplate {
val reviews = List(10) { review.copy(commentId = Random.nextInt().toString()) }
val reviewsFlow = MutableStateFlow(PagingData.from(reviews)).collectAsLazyPagingItems()
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
ScreenContent(reviews = reviewsFlow)
}
}

View File

@@ -27,6 +27,7 @@ import com.aurora.gplayapi.data.models.Artwork
import com.aurora.store.R
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.composable.details.ScreenshotListItem
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.viewmodel.details.AppDetailsViewModel
@Composable
@@ -94,7 +95,9 @@ private fun ScreenContent(
@Preview
@Composable
private fun ScreenshotScreenPreview() {
ScreenContent(
topAppBarTitle = stringResource(R.string.app_name)
)
PreviewTemplate {
ScreenContent(
topAppBarTitle = stringResource(R.string.app_name)
)
}
}

View File

@@ -23,6 +23,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.extensions.isWindowCompact
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to display primary and secondary actions available for the app, supposed to be used
@@ -83,10 +84,12 @@ fun Actions(
@Preview(showBackground = true)
@Composable
private fun ActionsPreview() {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Actions(
primaryActionDisplayName = stringResource(R.string.action_install),
secondaryActionDisplayName = stringResource(R.string.title_manual_download)
)
PreviewTemplate {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Actions(
primaryActionDisplayName = stringResource(R.string.action_install),
secondaryActionDisplayName = stringResource(R.string.title_manual_download)
)
}
}
}

View File

@@ -27,6 +27,7 @@ import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to display app changelog, supposed to be used as a part
@@ -57,7 +58,9 @@ fun Changelog(changelog: String) {
@Preview(showBackground = true)
@Composable
private fun ChangelogPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Changelog(changelog = app.changes)
PreviewTemplate {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Changelog(changelog = app.changes)
}
}
}

View File

@@ -16,6 +16,7 @@ import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.compose.theme.successColor
import com.aurora.store.compose.theme.warningColor
import com.aurora.store.data.model.Scores
@@ -78,7 +79,9 @@ fun Compatibility(needsGms: Boolean, plexusScores: Scores? = null) {
@Preview(showBackground = true)
@Composable
private fun CompatibilityPreview() {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Compatibility(needsGms = true)
PreviewTemplate {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Compatibility(needsGms = true)
}
}
}

View File

@@ -24,6 +24,7 @@ import com.aurora.store.R
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to display app's data safety report, supposed to be used as a part
@@ -82,16 +83,26 @@ fun DataSafety(report: Report, privacyPolicyUrl: String) {
@Preview(showBackground = true)
@Composable
private fun DataSafetyPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
DataSafety(
privacyPolicyUrl = app.privacyPolicyUrl,
report = Report(
packageName = app.packageName,
entries = listOf(
Entry(type = EntryType.DATA_COLLECTED, name = String(), description = String()),
Entry(type = EntryType.DATA_SHARED, name = String(), description = String())
PreviewTemplate {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
DataSafety(
privacyPolicyUrl = app.privacyPolicyUrl,
report = Report(
packageName = app.packageName,
entries = listOf(
Entry(
type = EntryType.DATA_COLLECTED,
name = String(),
description = String()
),
Entry(
type = EntryType.DATA_SHARED,
name = String(),
description = String()
)
)
)
)
)
}
}
}

View File

@@ -17,7 +17,6 @@ import androidx.compose.foundation.layout.requiredSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.dimensionResource
@@ -25,12 +24,11 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import coil3.compose.LocalAsyncImagePreviewHandler
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composable.app.AnimatedAppIcon
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.data.model.AppState
import com.aurora.store.util.CommonUtil
import com.aurora.store.util.PackageUtil
@@ -113,8 +111,8 @@ fun Details(
@Preview(showBackground = true)
@Composable
private fun DetailsPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Details(app = app)
}
}

View File

@@ -24,6 +24,7 @@ import com.aurora.store.R
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to display details of the app developer, supposed to be used as a part
@@ -70,11 +71,13 @@ fun DeveloperDetails(address: String, website: String, email: String) {
@Preview(showBackground = true)
@Composable
private fun DeveloperDetailsPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
DeveloperDetails(
address = app.developerAddress,
website = app.developerWebsite,
email = app.developerEmail
)
PreviewTemplate {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
DeveloperDetails(
address = app.developerAddress,
website = app.developerWebsite,
email = app.developerEmail
)
}
}
}

View File

@@ -16,6 +16,7 @@ import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.compose.theme.successColor
import com.aurora.store.compose.theme.warningColor
import com.aurora.store.data.model.Report
@@ -58,7 +59,9 @@ fun Privacy(report: Report?, onNavigateToDetailsExodus: (() -> Unit)? = null) {
@Preview(showBackground = true)
@Composable
private fun PrivacyPreview() {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Privacy(report = Report(), onNavigateToDetailsExodus = {})
PreviewTemplate {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Privacy(report = Report(), onNavigateToDetailsExodus = {})
}
}
}

View File

@@ -40,6 +40,7 @@ import com.aurora.store.compose.composable.PageIndicator
import com.aurora.store.compose.composable.details.RatingListItem
import com.aurora.store.compose.composable.details.ReviewListItem
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import java.util.Locale
/**
@@ -144,7 +145,9 @@ fun RatingAndReviews(
@Preview(showBackground = true)
@Composable
private fun RatingAndReviewsPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
RatingAndReviews(rating = app.rating)
PreviewTemplate {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
RatingAndReviews(rating = app.rating)
}
}
}

View File

@@ -13,19 +13,17 @@ import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import coil3.compose.LocalAsyncImagePreviewHandler
import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.data.models.Artwork
import com.aurora.store.R
import com.aurora.store.compose.composable.details.ScreenshotListItem
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to display screenshots of the app, supposed to be used as a part
@@ -51,8 +49,8 @@ fun Screenshots(screenshots: List<Artwork>, onNavigateToScreenshot: (index: Int)
@Preview(showBackground = true)
@Composable
private fun ScreenshotsPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Screenshots(screenshots = app.screenshots)
}
}

View File

@@ -21,6 +21,7 @@ import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composable.app.TagListItem
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.util.CommonUtil
/**
@@ -70,7 +71,9 @@ fun Tags(app: App) {
@Preview(showBackground = true)
@Composable
private fun TagsPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Tags(app = app)
PreviewTemplate {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Tags(app = app)
}
}
}

View File

@@ -26,6 +26,7 @@ import com.aurora.store.R
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Composable to display app's beta testing status, supposed to be used as a part of the
@@ -71,7 +72,9 @@ fun Testing(isSubscribed: Boolean, onTestingSubscriptionChange: (subscribe: Bool
@Preview(showBackground = true)
@Composable
private fun TestingPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Testing(isSubscribed = app.testingProgram!!.isSubscribed)
PreviewTemplate {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
Testing(isSubscribed = app.testingProgram!!.isSubscribed)
}
}
}

View File

@@ -25,6 +25,7 @@ import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.data.model.AppState
/**
@@ -103,13 +104,15 @@ fun AppDetailsMenu(
@Preview(showBackground = true)
@Composable
private fun AppDetailsMenuPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
TopAppBar(
actions = {
AppDetailsMenu(
isInstalled = app.isInstalled,
isFavorite = true,
isExpanded = true
)
}
)
PreviewTemplate {
TopAppBar(
actions = {
AppDetailsMenu(
isInstalled = app.isInstalled,
isFavorite = true,
isExpanded = true
)
}
)
}
}

View File

@@ -12,7 +12,6 @@ import androidx.compose.material3.Scaffold
import androidx.compose.material3.adaptive.WindowAdaptiveInfo
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.dimensionResource
@@ -26,7 +25,6 @@ import androidx.paging.PagingData
import androidx.paging.compose.LazyPagingItems
import androidx.paging.compose.collectAsLazyPagingItems
import androidx.paging.compose.itemKey
import coil3.compose.LocalAsyncImagePreviewHandler
import com.aurora.extensions.adaptiveNavigationIcon
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
@@ -35,7 +33,7 @@ import com.aurora.store.compose.composable.ContainedLoadingIndicator
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.composable.app.LargeAppListItem
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.viewmodel.details.DevProfileViewModel
import com.aurora.store.viewmodel.search.SearchViewModel
import kotlinx.coroutines.flow.MutableStateFlow
@@ -130,7 +128,7 @@ private fun ScreenContent(
@Preview
@Composable
private fun DevProfileScreenPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
val apps = List(10) { app.copy(id = Random.nextInt()) }
val pagedApps = MutableStateFlow(PagingData.from(apps)).collectAsLazyPagingItems()

View File

@@ -13,7 +13,6 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
@@ -31,7 +30,6 @@ import androidx.paging.PagingData
import androidx.paging.compose.LazyPagingItems
import androidx.paging.compose.collectAsLazyPagingItems
import androidx.paging.compose.itemKey
import coil3.compose.LocalAsyncImagePreviewHandler
import com.aurora.extensions.toast
import com.aurora.store.R
import com.aurora.store.compose.composable.DownloadListItem
@@ -41,7 +39,7 @@ import com.aurora.store.compose.composable.TopAppBar
import com.aurora.extensions.emptyPagingItems
import com.aurora.gplayapi.data.models.App
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.compose.ui.downloads.menu.DownloadsMenu
import com.aurora.store.compose.ui.downloads.menu.MenuItem
import com.aurora.store.data.model.DownloadStatus
@@ -182,7 +180,7 @@ private fun ScreenContent(
@Preview
@Composable
private fun DownloadsScreenPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
val downloads = List(10) {
Download.fromApp(app).copy(
packageName = Random.nextInt().toString(),

View File

@@ -21,6 +21,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Menu for the blacklist screen
@@ -67,5 +68,7 @@ fun DownloadsMenu(
@Preview(showBackground = true)
@Composable
private fun DownloadsMenuPreview() {
DownloadsMenu(isExpanded = true)
PreviewTemplate {
DownloadsMenu(isExpanded = true)
}
}

View File

@@ -13,7 +13,6 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
@@ -31,7 +30,6 @@ import androidx.paging.PagingData
import androidx.paging.compose.LazyPagingItems
import androidx.paging.compose.collectAsLazyPagingItems
import androidx.paging.compose.itemKey
import coil3.compose.LocalAsyncImagePreviewHandler
import com.aurora.Constants.JSON_MIME_TYPE
import com.aurora.extensions.toast
import com.aurora.store.R
@@ -41,7 +39,7 @@ import com.aurora.store.compose.composable.ContainedLoadingIndicator
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.extensions.emptyPagingItems
import com.aurora.store.compose.preview.FavouritePreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.compose.ui.favourite.menu.FavouriteMenu
import com.aurora.store.compose.ui.favourite.menu.MenuItem
import com.aurora.store.data.room.favourite.Favourite
@@ -183,7 +181,7 @@ private fun ScreenContent(
private fun FavouriteScreenPreview(
@PreviewParameter(FavouritePreviewProvider ::class) favourite: Favourite
) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
PreviewTemplate {
val favourites = List(10) {
favourite.copy(packageName = "${favourite.packageName}.${Random.nextInt()}")
}

View File

@@ -21,6 +21,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.preview.PreviewTemplate
/**
* Menu for the favourite screen
@@ -63,5 +64,7 @@ fun FavouriteMenu(
@Preview(showBackground = true)
@Composable
private fun FavouriteMenuPreview() {
FavouriteMenu(isExpanded = true)
PreviewTemplate {
FavouriteMenu(isExpanded = true)
}
}

View File

@@ -72,6 +72,7 @@ import com.aurora.store.compose.composable.app.LargeAppListItem
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
import com.aurora.extensions.emptyPagingItems
import com.aurora.store.compose.preview.PreviewTemplate
import com.aurora.store.compose.ui.details.AppDetailsScreen
import com.aurora.store.data.model.SearchFilter
import com.aurora.store.viewmodel.search.SearchViewModel
@@ -416,10 +417,12 @@ private fun FilterHeader(
@PreviewScreenSizes
@Composable
private fun SearchScreenPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
val apps = List(10) { app.copy(id = Random.nextInt()) }
val results = MutableStateFlow(PagingData.from(apps)).collectAsLazyPagingItems()
PreviewTemplate {
val apps = List(10) { app.copy(id = Random.nextInt()) }
val results = MutableStateFlow(PagingData.from(apps)).collectAsLazyPagingItems()
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
ScreenContent(results = results)
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
ScreenContent(results = results)
}
}
}