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:
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 = {}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 = {}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 = "",
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 ?: "")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 = {})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()}")
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user