compose: Rename composables to better reflect the use case

Add ListItem suffix instead of Composable wherever applicable, strip others

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2025-10-26 13:13:53 +08:00
parent 906bb37505
commit 08f32fe093
49 changed files with 236 additions and 236 deletions

View File

@@ -11,8 +11,8 @@ import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.runtime.CompositionLocalProvider
import androidx.core.content.IntentCompat
import com.aurora.store.compose.compositions.UI
import com.aurora.store.compose.compositions.LocalUI
import com.aurora.store.compose.composition.UI
import com.aurora.store.compose.composition.LocalUI
import com.aurora.store.compose.navigation.NavDisplay
import com.aurora.store.compose.navigation.Screen
import com.aurora.store.compose.theme.AuroraTheme

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import android.graphics.Bitmap
import android.graphics.Color
@@ -45,7 +45,7 @@ import com.aurora.store.R
* @param onClick Callback when the composable is clicked
*/
@Composable
fun BlackListComposable(
fun BlackListItem(
modifier: Modifier = Modifier,
icon: Bitmap,
displayName: String,
@@ -102,8 +102,8 @@ fun BlackListComposable(
@Preview(showBackground = true)
@Composable
private fun BlackListComposablePreview() {
BlackListComposable(
private fun BlackListItemPreview() {
BlackListItem(
icon = Color.GRAY.toDrawable().toBitmap(56, 56),
displayName = LocalContext.current.getString(R.string.app_name),
packageName = BuildConfig.APPLICATION_ID,

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
@@ -18,11 +18,11 @@ import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
/**
* Composable to display an indeterminate circular progress indicator
* Composable to display an indeterminate loading indicator that fills all available screen
* @param modifier The modifier to be applied to the composable
*/
@Composable
fun ProgressComposable(modifier: Modifier = Modifier) {
fun ContainedLoadingIndicator(modifier: Modifier = Modifier) {
Box(
modifier = modifier
.fillMaxSize()
@@ -37,6 +37,6 @@ fun ProgressComposable(modifier: Modifier = Modifier) {
@Preview(showBackground = true)
@Composable
private fun ProgressComposablePreview() {
ProgressComposable()
private fun ContainedLoadingIndicatorPreview() {
ContainedLoadingIndicator()
}

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import android.text.format.DateUtils
import android.text.format.Formatter
@@ -51,7 +51,7 @@ 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.composables.app.AnimatedAppIconComposable
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.data.model.DownloadStatus
@@ -68,7 +68,7 @@ import java.util.Date
* @param onClick Callback when this composable is clicked
*/
@Composable
fun DownloadComposable(
fun DownloadListItem(
modifier: Modifier = Modifier,
download: Download,
onClick: () -> Unit = {},
@@ -101,7 +101,7 @@ fun DownloadComposable(
horizontalArrangement = Arrangement.SpaceBetween
) {
Row(modifier = Modifier.weight(1F),) {
AnimatedAppIconComposable(
AnimatedAppIcon(
modifier = Modifier.requiredSize(dimensionResource(R.dimen.icon_size_medium)),
iconUrl = download.iconURL,
inProgress = download.isRunning,
@@ -242,8 +242,8 @@ fun DownloadComposable(
@Preview(showBackground = true)
@Composable
private fun DownloadComposablePreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
private fun DownloadListItemPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
DownloadComposable(download = Download.fromApp(app))
DownloadListItem(download = Download.fromApp(app))
}
}

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
@@ -27,7 +27,7 @@ import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
/**
* Composable to show error message when no apps are available for a request
* Composable to show error message that fills all available screen
* @param modifier The modifier to be applied to the composable
* @param painter Painter to draw the icon
* @param message Message for error
@@ -35,7 +35,7 @@ import com.aurora.store.R
* @param onAction Callback when action button is clicked
*/
@Composable
fun ErrorComposable(
fun Error(
modifier: Modifier = Modifier,
painter: Painter,
message: String,
@@ -77,8 +77,8 @@ fun ErrorComposable(
@Preview(showBackground = true)
@Composable
private fun ErrorComposablePreview() {
ErrorComposable(
private fun ErrorPreview() {
Error(
painter = painterResource(R.drawable.ic_updates),
message = stringResource(R.string.details_no_updates),
actionMessage = stringResource(R.string.check_updates)

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import android.text.format.DateUtils
import androidx.compose.animation.AnimatedVisibility
@@ -59,7 +59,7 @@ import kotlinx.coroutines.launch
* @param onClear Callback when the favourite button is clicked to remove the app from favourites
*/
@Composable
fun FavouriteComposable(
fun FavouriteListItem(
modifier: Modifier = Modifier,
favourite: Favourite,
onClick: () -> Unit = {},
@@ -140,8 +140,8 @@ fun FavouriteComposable(
@Preview(showBackground = true)
@Composable
private fun FavouriteComposablePreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
private fun FavouriteListItemPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
FavouriteComposable(favourite = Favourite.fromApp(app, Favourite.Mode.MANUAL))
FavouriteListItem(favourite = Favourite.fromApp(app, Favourite.Mode.MANUAL))
}
}

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
@@ -35,7 +35,7 @@ import com.aurora.store.R
* @see TextDividerComposable
*/
@Composable
fun HeaderComposable(
fun Header(
modifier: Modifier = Modifier,
title: String,
subtitle: String? = null,
@@ -81,8 +81,8 @@ fun HeaderComposable(
@Preview(showBackground = true)
@Composable
private fun HeaderComposablePreview() {
HeaderComposable(
private fun HeaderPreview() {
Header(
title = stringResource(R.string.details_privacy),
subtitle = stringResource(R.string.exodus_powered),
onClick = {}

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
@@ -39,7 +39,7 @@ import com.aurora.store.compose.preview.AppPreviewProvider
* @param onClick Callback when this composable is clicked
*/
@Composable
fun InfoComposable(
fun Info(
modifier: Modifier = Modifier,
title: AnnotatedString,
description: AnnotatedString? = null,
@@ -78,8 +78,8 @@ fun InfoComposable(
@Preview(showBackground = true)
@Composable
private fun InfoComposablePreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
InfoComposable(
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)

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
@@ -39,7 +39,7 @@ import com.aurora.store.data.model.Link
* @param onClick Callback when the composable is clicked
*/
@Composable
fun LinkComposable(modifier: Modifier = Modifier, link: Link, onClick: () -> Unit = {}) {
fun LinkListItem(modifier: Modifier = Modifier, link: Link, onClick: () -> Unit = {}) {
Row(
modifier = modifier
.fillMaxWidth()
@@ -83,8 +83,8 @@ fun LinkComposable(modifier: Modifier = Modifier, link: Link, onClick: () -> Uni
@Preview(showBackground = true)
@Composable
private fun LinkComposablePreview() {
LinkComposable(
private fun LinkListItemPreview() {
LinkListItem(
link = Link(
id = 0,
title = LocalContext.current.getString(R.string.title_about),

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import androidx.compose.animation.animateColorAsState
import androidx.compose.animation.core.animateDpAsState
@@ -33,7 +33,7 @@ import com.aurora.store.R
* @param currentPage Currently displayed page number
*/
@Composable
fun PageIndicatorComposable(modifier: Modifier = Modifier, totalPages: Int, currentPage: Int = 0) {
fun PageIndicator(modifier: Modifier = Modifier, totalPages: Int, currentPage: Int = 0) {
Row(
modifier = modifier.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically,
@@ -73,6 +73,6 @@ fun PageIndicatorComposable(modifier: Modifier = Modifier, totalPages: Int, curr
@Preview(showBackground = true)
@Composable
private fun PageIndicatorComposablePreview() {
PageIndicatorComposable(totalPages = 5)
private fun PageIndicatorPreview() {
PageIndicator(totalPages = 5)
}

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
@@ -32,7 +32,7 @@ import com.aurora.store.data.model.PermissionType
* @param onAction Callback when the user clicks the action button
*/
@Composable
fun PermissionComposable(
fun PermissionListItem(
modifier: Modifier = Modifier,
permission: Permission,
onAction: () -> Unit = {}
@@ -72,8 +72,8 @@ fun PermissionComposable(
@Preview(showBackground = true)
@Composable
private fun PermissionComposablePreview() {
PermissionComposable(
private fun PermissionListItemPreview() {
PermissionListItem(
permission = Permission(
PermissionType.STORAGE_MANAGER,
LocalContext.current.getString(R.string.onboarding_permission_esm),

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
@@ -38,7 +38,7 @@ import com.aurora.store.R
* @param onAction Callback when action button is clicked
*/
@Composable
fun SearchSuggestionComposable(
fun SearchSuggestionListItem(
modifier: Modifier = Modifier,
searchSuggestEntry: SearchSuggestEntry,
onClick: (query: String) -> Unit = {},
@@ -97,8 +97,8 @@ fun SearchSuggestionComposable(
@Preview(showBackground = true)
@Composable
private fun SearchSuggestionComposablePreview() {
SearchSuggestionComposable(
private fun SearchSuggestionListItemPreview() {
SearchSuggestionListItem(
searchSuggestEntry = SearchSuggestEntry.getDefaultInstance()
)
}

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
@@ -21,7 +21,7 @@ import com.aurora.store.R
* Composable to display a sticky header in a list
* @param modifier The modifier to be applied to the composable
* @param title Title to display
* @see HeaderComposable
* @see Header
*/
@Composable
fun TextDividerComposable(modifier: Modifier = Modifier, title: String) {

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables
package com.aurora.store.compose.composable
import androidx.compose.foundation.layout.RowScope
import androidx.compose.material3.Icon
@@ -27,7 +27,7 @@ import com.aurora.store.R
* @param actions Actions to display on the top app bar (for e.g. menu)
*/
@Composable
fun TopAppBarComposable(
fun TopAppBar(
modifier: Modifier = Modifier,
title: String? = null,
navigationIcon: Painter = painterResource(R.drawable.ic_arrow_back),
@@ -53,8 +53,8 @@ fun TopAppBarComposable(
@Preview(showBackground = true)
@Composable
private fun TopAppBarComposablePreview() {
TopAppBarComposable(
private fun TopAppBarPreview() {
TopAppBar(
title = stringResource(R.string.title_about),
onNavigateUp = {}
)

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables.app
package com.aurora.store.compose.composable.app
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.tween
@@ -43,7 +43,7 @@ import com.aurora.store.compose.preview.coilPreviewProvider
* @param inProgress Whether to show indeterminate or determinate progress bar
*/
@Composable
fun AnimatedAppIconComposable(
fun AnimatedAppIcon(
modifier: Modifier = Modifier,
iconUrl: String,
progress: Float = 0F,
@@ -99,7 +99,7 @@ private class ProgressProvider: PreviewParameterProvider<Float> {
@Composable
private fun AnimatedAppIconPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
AnimatedAppIconComposable(
AnimatedAppIcon(
modifier = Modifier.requiredSize(dimensionResource(R.dimen.icon_size_large)),
iconUrl = app.iconArtwork.url
)
@@ -110,7 +110,7 @@ private fun AnimatedAppIconPreview(@PreviewParameter(AppPreviewProvider::class)
@Composable
private fun AnimatedAppIconPreview(@PreviewParameter(ProgressProvider::class) progress: Float) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
AnimatedAppIconComposable(
AnimatedAppIcon(
modifier = Modifier.requiredSize(dimensionResource(R.dimen.icon_size_large)),
iconUrl = "",
inProgress = true,

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables.app
package com.aurora.store.compose.composable.app
import android.text.format.Formatter
import androidx.compose.foundation.clickable
@@ -38,10 +38,10 @@ import com.aurora.store.compose.preview.coilPreviewProvider
* @param modifier The modifier to be applied to the composable
* @param app [App] to display
* @param onClick Callback when the composable is clicked
* @see AppListComposable
* @see LargeAppListItem
*/
@Composable
fun AppComposable(modifier: Modifier = Modifier, app: App, onClick: () -> Unit = {}) {
fun AppListItem(modifier: Modifier = Modifier, app: App, onClick: () -> Unit = {}) {
val context = LocalContext.current
Column(
@@ -80,8 +80,8 @@ fun AppComposable(modifier: Modifier = Modifier, app: App, onClick: () -> Unit =
@Preview(showBackground = true)
@Composable
private fun AppComposablePreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
private fun AppListItemPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
AppComposable(app = app)
AppListItem(app = app)
}
}

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables.app
package com.aurora.store.compose.composable.app
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
@@ -41,10 +41,10 @@ import com.aurora.store.util.CommonUtil
* @param modifier The modifier to be applied to the composable
* @param app [App] to display
* @param onClick Callback when the composable is clicked
* @see AppComposable
* @see AppListItem
*/
@Composable
fun AppListComposable(modifier: Modifier = Modifier, app: App, onClick: () -> Unit = {}) {
fun LargeAppListItem(modifier: Modifier = Modifier, app: App, onClick: () -> Unit = {}) {
Row(
modifier = modifier
.fillMaxWidth()
@@ -85,9 +85,9 @@ fun AppListComposable(modifier: Modifier = Modifier, app: App, onClick: () -> Un
@Preview(showBackground = true)
@Composable
fun AppListComposablePreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
fun LargeAppListItemPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
AppListComposable(app = app)
LargeAppListItem(app = app)
}
}

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables.app
package com.aurora.store.compose.composable.app
import androidx.compose.material3.FilterChip
import androidx.compose.material3.Icon
@@ -25,7 +25,7 @@ import com.aurora.store.R
* @param onClick Callback when this composable is clicked
*/
@Composable
fun AppTagComposable(
fun TagListItem(
modifier: Modifier = Modifier,
label: String,
painter: Painter,
@@ -42,8 +42,8 @@ fun AppTagComposable(
@Preview(showBackground = true)
@Composable
private fun AppTagComposablePreview() {
AppTagComposable(
private fun TagListItemPreview() {
TagListItem(
label = stringResource(R.string.details_free),
painter = painterResource(R.drawable.ic_paid)
)

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables.details
package com.aurora.store.compose.composable.details
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
@@ -23,7 +23,7 @@ import com.aurora.store.data.model.ExodusTracker
* @param tracker Tracker to display details about
*/
@Composable
fun ExodusComposable(modifier: Modifier = Modifier, tracker: ExodusTracker) {
fun ExodusListItem(modifier: Modifier = Modifier, tracker: ExodusTracker) {
Column(modifier = modifier.padding(dimensionResource(R.dimen.padding_small))) {
Text(
text = tracker.name,
@@ -48,8 +48,8 @@ fun ExodusComposable(modifier: Modifier = Modifier, tracker: ExodusTracker) {
@Preview(showBackground = true)
@Composable
private fun ExodusComposablePreview() {
ExodusComposable(
private fun ExodusListItemPreview() {
ExodusListItem(
tracker = ExodusTracker(
name = "Google Analytics",
signature = "com.google.android.apps.analytics.|com.google.android.gms.analytics.|com.google.analytics.",

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables.details
package com.aurora.store.compose.composable.details
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
@@ -28,7 +28,7 @@ import com.aurora.store.R
* @param rating Current rating, for e.g. 0.3
*/
@Composable
fun RatingComposable(modifier: Modifier = Modifier, label: String, rating: Float) {
fun RatingListItem(modifier: Modifier = Modifier, label: String, rating: Float) {
Row(
modifier = modifier
.fillMaxWidth()
@@ -52,6 +52,6 @@ fun RatingComposable(modifier: Modifier = Modifier, label: String, rating: Float
@Preview(showBackground = true)
@Composable
private fun RatingComposablePreview() {
RatingComposable(label = "5", rating = 0.5F)
private fun RatingListItemPreview() {
RatingListItem(label = "5", rating = 0.5F)
}

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables.details
package com.aurora.store.compose.composable.details
import android.text.format.DateUtils
import android.widget.RatingBar
@@ -41,7 +41,7 @@ import com.aurora.store.compose.preview.coilPreviewProvider
* @param review [Review] about an app
*/
@Composable
fun ReviewComposable(modifier: Modifier = Modifier, review: Review) {
fun ReviewListItem(modifier: Modifier = Modifier, review: Review) {
Row(
modifier = modifier
.fillMaxWidth()
@@ -97,8 +97,8 @@ fun ReviewComposable(modifier: Modifier = Modifier, review: Review) {
@Preview(showBackground = true)
@Composable
private fun ReviewComposablePreview(@PreviewParameter(ReviewPreviewProvider::class) review: Review) {
private fun ReviewListItemPreview(@PreviewParameter(ReviewPreviewProvider::class) review: Review) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
ReviewComposable(review = review)
ReviewListItem(review = review)
}
}

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.composables.details
package com.aurora.store.compose.composable.details
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.aspectRatio
@@ -33,7 +33,7 @@ import com.aurora.store.compose.preview.coilPreviewProvider
* @param url URL of the screenshot
*/
@Composable
fun ScreenshotComposable(modifier: Modifier = Modifier, url: String) {
fun ScreenshotListItem(modifier: Modifier = Modifier, url: String) {
// See https://coil-kt.github.io/coil/compose/#rememberasyncimagepainter
val sizeResolver = rememberConstraintsSizeResolver()
val painter = rememberAsyncImagePainter(
@@ -61,8 +61,8 @@ fun ScreenshotComposable(modifier: Modifier = Modifier, url: String) {
@Preview
@Composable
private fun ScreenshotComposablePreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
private fun ScreenshotListItemPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides coilPreviewProvider) {
ScreenshotComposable(url = app.screenshots.firstOrNull()?.url ?: "")
ScreenshotListItem(url = app.screenshots.firstOrNull()?.url ?: "")
}
}

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.compositions
package com.aurora.store.compose.composition
import androidx.compose.runtime.staticCompositionLocalOf

View File

@@ -39,8 +39,8 @@ import com.aurora.extensions.browse
import com.aurora.store.BuildConfig.VERSION_CODE
import com.aurora.store.BuildConfig.VERSION_NAME
import com.aurora.store.R
import com.aurora.store.compose.composables.LinkComposable
import com.aurora.store.compose.composables.TopAppBarComposable
import com.aurora.store.compose.composable.LinkListItem
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.data.model.Link
@Composable
@@ -91,7 +91,7 @@ private fun ScreenContent(onNavigateUp: () -> Unit = {}, onAboutAurora: () -> Un
Scaffold(
topBar = {
TopAppBarComposable(
TopAppBar(
title = stringResource(R.string.title_about),
onNavigateUp = onNavigateUp
)
@@ -109,7 +109,7 @@ private fun ScreenContent(onNavigateUp: () -> Unit = {}, onAboutAurora: () -> Un
}
}
items(items = links, key = { item -> item.id }) { link ->
LinkComposable(
LinkListItem(
link = link,
onClick = {
when (link.id) {

View File

@@ -46,7 +46,7 @@ import com.aurora.Constants.URL_LICENSE
import com.aurora.Constants.URL_TOS
import com.aurora.extensions.browse
import com.aurora.store.R
import com.aurora.store.compose.composables.TopAppBarComposable
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.data.providers.AccountProvider
import com.aurora.store.viewmodel.accounts.AccountsViewModel
@@ -106,7 +106,7 @@ private fun ScreenContent(
) {
Scaffold(
topBar = {
TopAppBarComposable(
TopAppBar(
title = stringResource(R.string.title_account_manager),
onNavigateUp = onNavigateUp
)

View File

@@ -45,7 +45,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.aurora.Constants
import com.aurora.extensions.toast
import com.aurora.store.R
import com.aurora.store.compose.composables.BlackListComposable
import com.aurora.store.compose.composable.BlackListItem
import com.aurora.store.compose.ui.blacklist.menu.BlacklistMenu
import com.aurora.store.compose.ui.blacklist.menu.MenuItem
import com.aurora.store.util.PackageUtil
@@ -215,7 +215,7 @@ private fun ScreenContent(
items(items = packages ?: emptyList(), key = { p -> p.packageName.hashCode() }) { pkg ->
val isBlacklisted = isPackageBlacklisted(pkg.packageName)
val isFiltered = isPackageFiltered(pkg)
BlackListComposable(
BlackListItem(
icon = PackageUtil.getIconForPackage(context, pkg.packageName)!!,
displayName = pkg.applicationInfo!!.loadLabel(context.packageManager).toString(),
packageName = pkg.packageName,

View File

@@ -41,9 +41,9 @@ import com.aurora.extensions.isTAndAbove
import com.aurora.extensions.toast
import com.aurora.store.BuildConfig
import com.aurora.store.R
import com.aurora.store.compose.composables.PermissionComposable
import com.aurora.store.compose.composables.TextDividerComposable
import com.aurora.store.compose.composables.TopAppBarComposable
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.data.model.Permission
import com.aurora.store.data.model.PermissionType
import com.aurora.store.data.providers.PermissionProvider.Companion.isGranted
@@ -163,7 +163,7 @@ private fun ScreenContent(
Scaffold(
topBar = {
if (!isOnboarding) {
TopAppBarComposable(
TopAppBar(
title = pluralStringResource(R.plurals.permissions_required, permissions.size),
navigationIcon = windowAdaptiveInfo.adaptiveNavigationIcon,
onNavigateUp = onNavigateUp
@@ -191,7 +191,7 @@ private fun ScreenContent(
}
items(items = value, key = { p -> p.type.name }) { permission ->
PermissionComposable(
PermissionListItem(
permission = permission,
onAction = { requestPermission(permission.type) }
)

View File

@@ -55,11 +55,11 @@ import com.aurora.extensions.toast
import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.data.models.Review
import com.aurora.store.R
import com.aurora.store.compose.composables.ErrorComposable
import com.aurora.store.compose.composables.HeaderComposable
import com.aurora.store.compose.composables.ProgressComposable
import com.aurora.store.compose.composables.TopAppBarComposable
import com.aurora.store.compose.composables.app.AppListComposable
import com.aurora.store.compose.composable.Error
import com.aurora.store.compose.composable.Header
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.navigation.Screen
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
@@ -163,9 +163,9 @@ fun AppDetailsScreen(
@Composable
private fun ScreenContentLoading(onNavigateUp: () -> Unit = {}) {
Scaffold(
topBar = { TopAppBarComposable(onNavigateUp = onNavigateUp) }
topBar = { TopAppBar(onNavigateUp = onNavigateUp) }
) { paddingValues ->
ProgressComposable(modifier = Modifier.padding(paddingValues))
ContainedLoadingIndicator(modifier = Modifier.padding(paddingValues))
}
}
@@ -175,9 +175,9 @@ private fun ScreenContentLoading(onNavigateUp: () -> Unit = {}) {
@Composable
private fun ScreenContentError(onNavigateUp: () -> Unit = {}, message: String? = null) {
Scaffold(
topBar = { TopAppBarComposable(onNavigateUp = onNavigateUp) }
topBar = { TopAppBar(onNavigateUp = onNavigateUp) }
) { paddingValues ->
ErrorComposable(
Error(
modifier = Modifier.padding(paddingValues),
painter = painterResource(R.drawable.ic_apps_outage),
message = message ?: stringResource(R.string.toast_app_unavailable)
@@ -330,7 +330,7 @@ private fun ScreenContentApp(
fun MainPane() {
Scaffold(
topBar = {
TopAppBarComposable(
TopAppBar(
onNavigateUp = onNavigateUp,
actions = { if (shouldShowMenuOnMainPane) SetupMenu() }
)
@@ -354,7 +354,7 @@ private fun ScreenContentApp(
Tags(app = app)
Changelog(changelog = app.changes)
HeaderComposable(
Header(
title = stringResource(R.string.details_more_about_app),
subtitle = app.shortDescription,
onClick = { showExtraPane(ExtraScreen.More) }
@@ -380,7 +380,7 @@ private fun ScreenContentApp(
Compatibility(needsGms = app.requiresGMS(), plexusScores = plexusScores)
HeaderComposable(
Header(
title = stringResource(R.string.details_permission),
subtitle = if (app.permissions.isNotEmpty()) {
stringResource(R.string.permissions_requested, app.permissions.size)
@@ -420,7 +420,7 @@ private fun ScreenContentApp(
fun SupportingPane() {
Scaffold(
topBar = {
TopAppBarComposable(actions = { if (!shouldShowMenuOnMainPane) SetupMenu() })
TopAppBar(actions = { if (!shouldShowMenuOnMainPane) SetupMenu() })
}
) { paddingValues ->
Column(
@@ -436,7 +436,7 @@ private fun ScreenContentApp(
painter = painterResource(R.drawable.ic_suggestions),
contentDescription = null
)
HeaderComposable(title = stringResource(R.string.pref_ui_similar_apps))
Header(title = stringResource(R.string.pref_ui_similar_apps))
}
LazyColumn(
modifier = Modifier
@@ -444,7 +444,7 @@ private fun ScreenContentApp(
.padding(vertical = dimensionResource(R.dimen.padding_medium))
) {
items(items = suggestions, key = { item -> item.id }) { app ->
AppListComposable(
LargeAppListItem(
app = app,
onClick = { onNavigateToAppDetails(app.packageName) }
)

View File

@@ -28,9 +28,9 @@ import com.aurora.extensions.browse
import com.aurora.extensions.isWindowCompact
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composables.HeaderComposable
import com.aurora.store.compose.composables.TopAppBarComposable
import com.aurora.store.compose.composables.details.ExodusComposable
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.data.model.ExodusTracker
import com.aurora.store.viewmodel.details.AppDetailsViewModel
@@ -80,7 +80,7 @@ private fun ScreenContent(
Scaffold(
topBar = {
TopAppBarComposable(
TopAppBar(
title = topAppBarTitle,
navigationIcon = windowAdaptiveInfo.adaptiveNavigationIcon,
onNavigateUp = onNavigateUp
@@ -94,7 +94,7 @@ private fun ScreenContent(
.padding(horizontal = dimensionResource(R.dimen.padding_medium))
) {
stickyHeader {
HeaderComposable(
Header(
title = stringResource(R.string.exodus_report_trackers, trackers.size, version),
subtitle = stringResource(R.string.exodus_view_report),
onClick = { context.browse(EXODUS_REPORT_URL + id) }
@@ -102,7 +102,7 @@ private fun ScreenContent(
}
items(items = trackers, key = { item -> item.id }) { tracker ->
ExodusComposable(tracker = tracker)
ExodusListItem(tracker = tracker)
}
}
}

View File

@@ -55,8 +55,8 @@ import com.aurora.extensions.adaptiveNavigationIcon
import com.aurora.extensions.isWindowCompact
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composables.InfoComposable
import com.aurora.store.compose.composables.TopAppBarComposable
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.data.model.AppState
import com.aurora.store.viewmodel.details.AppDetailsViewModel
@@ -126,7 +126,7 @@ private fun ScreenContent(
Scaffold(
modifier = Modifier.imePadding(),
topBar = {
TopAppBarComposable(
TopAppBar(
title = topAppBarTitle,
navigationIcon = windowAdaptiveInfo.adaptiveNavigationIcon,
onNavigateUp = onNavigateUp
@@ -145,7 +145,7 @@ private fun ScreenContent(
modifier = Modifier.fillMaxWidth(),
verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))
) {
InfoComposable(
Info(
painter = painterResource(R.drawable.ic_download_manager),
title = AnnotatedString(text = stringResource(R.string.manual_download_hint))
)

View File

@@ -36,10 +36,10 @@ import com.aurora.extensions.adaptiveNavigationIcon
import com.aurora.extensions.isWindowCompact
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composables.HeaderComposable
import com.aurora.store.compose.composables.InfoComposable
import com.aurora.store.compose.composables.TopAppBarComposable
import com.aurora.store.compose.composables.app.AppComposable
import com.aurora.store.compose.composable.Header
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.viewmodel.details.AppDetailsViewModel
@@ -85,7 +85,7 @@ private fun ScreenContent(
Scaffold(
topBar = {
TopAppBarComposable(
TopAppBar(
title = topAppBarTitle,
navigationIcon = windowAdaptiveInfo.adaptiveNavigationIcon,
onNavigateUp = onNavigateUp
@@ -99,7 +99,7 @@ private fun ScreenContent(
.verticalScroll(rememberScrollState()),
verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))
) {
HeaderComposable(title = stringResource(R.string.details_description))
Header(title = stringResource(R.string.details_description))
Text(
modifier = Modifier.padding(horizontal = dimensionResource(R.dimen.padding_medium)),
text = AnnotatedString.fromHtml(
@@ -128,15 +128,15 @@ private fun AppDependencies(
dependencies: List<App>,
onNavigateToAppDetails: (packageName: String) -> Unit
) {
HeaderComposable(title = stringResource(R.string.details_dependencies))
Header(title = stringResource(R.string.details_dependencies))
if (dependencies.isEmpty()) {
InfoComposable(
Info(
title = AnnotatedString(text = stringResource(R.string.details_no_dependencies))
)
} else {
LazyRow(modifier = Modifier.fillMaxWidth()) {
items(items = dependencies, key = { item -> item.id }) { app ->
AppComposable(
AppListItem(
app = app,
onClick = { onNavigateToAppDetails(app.packageName) }
)
@@ -150,22 +150,22 @@ private fun AppDependencies(
*/
@Composable
private fun AppInfoMore(app: App) {
HeaderComposable(title = stringResource(R.string.details_more_info))
InfoComposable(
Header(title = stringResource(R.string.details_more_info))
Info(
title = AnnotatedString(
text = stringResource(R.string.details_more_package_name)
),
description = AnnotatedString(text = app.packageName)
)
InfoComposable(
Info(
title = AnnotatedString(
text = stringResource(R.string.details_more_target_api)
),
description = AnnotatedString(text = "API ${app.targetSdk}")
)
InfoComposable(
Info(
title = AnnotatedString(
text = stringResource(R.string.details_more_content_rating)
),
@@ -173,7 +173,7 @@ private fun AppInfoMore(app: App) {
)
app.appInfo.appInfoMap.forEach { (title, subtitle) ->
InfoComposable(
Info(
title = AnnotatedString(
text = title.replace("_", " ")
.lowercase(Locale.getDefault())

View File

@@ -29,8 +29,8 @@ import com.aurora.extensions.adaptiveNavigationIcon
import com.aurora.extensions.isWindowCompact
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composables.InfoComposable
import com.aurora.store.compose.composables.TopAppBarComposable
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.viewmodel.details.AppDetailsViewModel
import com.aurora.store.viewmodel.details.PermissionViewModel
@@ -75,7 +75,7 @@ private fun ScreenContent(
Scaffold(
topBar = {
TopAppBarComposable(
TopAppBar(
title = topAppBarTitle,
navigationIcon = windowAdaptiveInfo.adaptiveNavigationIcon,
onNavigateUp = onNavigateUp
@@ -93,7 +93,7 @@ private fun ScreenContent(
// Bail out if this is not a known permission for the OS
val permissionInfo = permissionsInfo.getValue(permission) ?: return@items
InfoComposable(
Info(
title = AnnotatedString(
text = permissionInfo.loadLabel(packageManager)
.toString()

View File

@@ -43,10 +43,10 @@ import com.aurora.extensions.adaptiveNavigationIcon
import com.aurora.extensions.isWindowCompact
import com.aurora.gplayapi.data.models.Review
import com.aurora.store.R
import com.aurora.store.compose.composables.ErrorComposable
import com.aurora.store.compose.composables.ProgressComposable
import com.aurora.store.compose.composables.TopAppBarComposable
import com.aurora.store.compose.composables.details.ReviewComposable
import com.aurora.store.compose.composable.Error
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.store.compose.preview.emptyPagingItems
@@ -95,7 +95,7 @@ private fun ScreenContent(
Scaffold(
topBar = {
TopAppBarComposable(
TopAppBar(
title = topAppBarTitle,
navigationIcon = windowAdaptiveInfo.adaptiveNavigationIcon,
onNavigateUp = onNavigateUp
@@ -111,10 +111,10 @@ private fun ScreenContent(
FilterHeader { filter -> onFilter(filter) }
when (reviews.loadState.refresh) {
is LoadState.Loading -> ProgressComposable()
is LoadState.Loading -> ContainedLoadingIndicator()
is LoadState.Error -> {
ErrorComposable(
Error(
modifier = Modifier.padding(paddingValues),
painter = painterResource(R.drawable.ic_disclaimer),
message = stringResource(R.string.error)
@@ -127,7 +127,7 @@ private fun ScreenContent(
count = reviews.itemCount,
key = reviews.itemKey { it.commentId }
) { index ->
reviews[index]?.let { review -> ReviewComposable(review = review) }
reviews[index]?.let { review -> ReviewListItem(review = review) }
}
}
}

View File

@@ -25,8 +25,8 @@ import com.aurora.extensions.adaptiveNavigationIcon
import com.aurora.extensions.isWindowCompact
import com.aurora.gplayapi.data.models.Artwork
import com.aurora.store.R
import com.aurora.store.compose.composables.TopAppBarComposable
import com.aurora.store.compose.composables.details.ScreenshotComposable
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.composable.details.ScreenshotListItem
import com.aurora.store.viewmodel.details.AppDetailsViewModel
@Composable
@@ -69,7 +69,7 @@ private fun ScreenContent(
Scaffold(
topBar = {
TopAppBarComposable(
TopAppBar(
title = topAppBarTitle,
navigationIcon = windowAdaptiveInfo.adaptiveNavigationIcon,
onNavigateUp = onNavigateUp
@@ -83,7 +83,7 @@ private fun ScreenContent(
state = pagerState
) { page ->
val artwork = screenshots[page]
ScreenshotComposable(
ScreenshotListItem(
modifier = Modifier.fillMaxSize(),
url = "${artwork.url}=rw-w${displayMetrics.widthPixels}-v1-e15"
)

View File

@@ -25,7 +25,7 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composables.HeaderComposable
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.preview.AppPreviewProvider
/**
@@ -35,7 +35,7 @@ import com.aurora.store.compose.preview.AppPreviewProvider
*/
@Composable
fun Changelog(changelog: String) {
HeaderComposable(title = stringResource(R.string.details_changelog))
Header(title = stringResource(R.string.details_changelog))
Box(
modifier = Modifier
.fillMaxWidth()

View File

@@ -14,8 +14,8 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.composables.HeaderComposable
import com.aurora.store.compose.composables.InfoComposable
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.Info
import com.aurora.store.data.model.Scores
/**
@@ -26,13 +26,13 @@ import com.aurora.store.data.model.Scores
*/
@Composable
fun Compatibility(needsGms: Boolean, plexusScores: Scores? = null) {
HeaderComposable(
Header(
title = stringResource(R.string.details_compatibility_title),
subtitle = stringResource(R.string.plexus_powered),
)
if (!needsGms) {
InfoComposable(
Info(
painter = painterResource(R.drawable.ic_menu_about),
title = AnnotatedString(
text = stringResource(R.string.details_compatibility_gms_not_required_title)
@@ -46,7 +46,7 @@ fun Compatibility(needsGms: Boolean, plexusScores: Scores? = null) {
return
}
InfoComposable(
Info(
painter = painterResource(R.drawable.ic_menu_about),
title = AnnotatedString(
text = stringResource(R.string.details_compatibility_gms_required_title)
@@ -61,7 +61,7 @@ fun Compatibility(needsGms: Boolean, plexusScores: Scores? = null) {
R.string.details_compatibility_microg to plexusScores?.microG?.status,
)
scoresStatus.forEach { (title, description) ->
InfoComposable(
Info(
painter = painterResource(R.drawable.ic_android),
title = AnnotatedString(text = stringResource(title)),
description = AnnotatedString(

View File

@@ -21,8 +21,8 @@ import com.aurora.gplayapi.data.models.datasafety.Entry
import com.aurora.gplayapi.data.models.datasafety.EntryType
import com.aurora.gplayapi.data.models.datasafety.Report
import com.aurora.store.R
import com.aurora.store.compose.composables.HeaderComposable
import com.aurora.store.compose.composables.InfoComposable
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.preview.AppPreviewProvider
/**
@@ -35,7 +35,7 @@ import com.aurora.store.compose.preview.AppPreviewProvider
fun DataSafety(report: Report, privacyPolicyUrl: String) {
val context = LocalContext.current
HeaderComposable(
Header(
title = stringResource(R.string.details_data_safety_title),
subtitle = stringResource(R.string.details_data_safety_subtitle),
onClick = { context.browse(privacyPolicyUrl) }
@@ -44,7 +44,7 @@ fun DataSafety(report: Report, privacyPolicyUrl: String) {
report.entries.groupBy { it.type }.forEach { (type, entries) ->
when (type) {
EntryType.DATA_COLLECTED -> {
InfoComposable(
Info(
painter = painterResource(R.drawable.ic_cloud_upload),
title = AnnotatedString(
text = stringResource(R.string.details_data_safety_collect)
@@ -59,7 +59,7 @@ fun DataSafety(report: Report, privacyPolicyUrl: String) {
}
EntryType.DATA_SHARED -> {
InfoComposable(
Info(
painter = painterResource(R.drawable.ic_share),
title = AnnotatedString(
text = stringResource(R.string.details_data_safety_shared)

View File

@@ -28,7 +28,7 @@ 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.composables.app.AnimatedAppIconComposable
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.data.model.AppState
@@ -55,7 +55,7 @@ fun Details(
val timeRemaining = if (state is AppState.Downloading) state.timeRemaining else 0
Row(modifier = Modifier.fillMaxWidth()) {
AnimatedAppIconComposable(
AnimatedAppIcon(
modifier = Modifier.requiredSize(dimensionResource(R.dimen.icon_size_large)),
iconUrl = app.iconArtwork.url,
inProgress = state.inProgress(),

View File

@@ -21,8 +21,8 @@ import com.aurora.extensions.copyToClipBoard
import com.aurora.extensions.mailTo
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composables.HeaderComposable
import com.aurora.store.compose.composables.InfoComposable
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.preview.AppPreviewProvider
/**
@@ -36,10 +36,10 @@ import com.aurora.store.compose.preview.AppPreviewProvider
fun DeveloperDetails(address: String, website: String, email: String) {
val context = LocalContext.current
HeaderComposable(title = stringResource(R.string.details_dev_details))
Header(title = stringResource(R.string.details_dev_details))
Column {
if (website.isNotBlank()) {
InfoComposable(
Info(
title = AnnotatedString(text = stringResource(R.string.details_dev_website)),
description = AnnotatedString(text = website),
painter = painterResource(R.drawable.ic_network),
@@ -48,7 +48,7 @@ fun DeveloperDetails(address: String, website: String, email: String) {
}
if (email.isNotBlank()) {
InfoComposable(
Info(
title = AnnotatedString(text = stringResource(R.string.details_dev_email)),
description = AnnotatedString(text = email),
painter = painterResource(R.drawable.ic_mail),
@@ -57,7 +57,7 @@ fun DeveloperDetails(address: String, website: String, email: String) {
}
if (address.isNotBlank()) {
InfoComposable(
Info(
title = AnnotatedString(text = stringResource(R.string.details_dev_address)),
description = AnnotatedString.fromHtml(htmlString = address),
painter = painterResource(R.drawable.ic_person_location),

View File

@@ -14,8 +14,8 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.composables.HeaderComposable
import com.aurora.store.compose.composables.InfoComposable
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.Info
import com.aurora.store.data.model.Report
/**
@@ -26,7 +26,7 @@ import com.aurora.store.data.model.Report
*/
@Composable
fun Privacy(report: Report?, onNavigateToDetailsExodus: (() -> Unit)? = null) {
HeaderComposable(
Header(
title = stringResource(R.string.details_privacy),
subtitle = stringResource(R.string.exodus_powered),
onClick = onNavigateToDetailsExodus
@@ -42,7 +42,7 @@ fun Privacy(report: Report?, onNavigateToDetailsExodus: (() -> Unit)? = null) {
}
}
InfoComposable(
Info(
painter = painterResource(R.drawable.ic_visibility),
title = AnnotatedString(text = reportStatus),
description = AnnotatedString(text = stringResource(R.string.exodus_tracker_desc))

View File

@@ -35,10 +35,10 @@ import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.data.models.Rating
import com.aurora.gplayapi.data.models.Review
import com.aurora.store.R
import com.aurora.store.compose.composables.HeaderComposable
import com.aurora.store.compose.composables.PageIndicatorComposable
import com.aurora.store.compose.composables.details.RatingComposable
import com.aurora.store.compose.composables.details.ReviewComposable
import com.aurora.store.compose.composable.Header
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 java.util.Locale
@@ -74,7 +74,7 @@ fun RatingAndReviews(
}
}
HeaderComposable(
Header(
title = stringResource(R.string.details_ratings),
onClick = onNavigateToDetailsReview
)
@@ -108,7 +108,7 @@ fun RatingAndReviews(
verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_small))
) {
stars.reversed().fastForEach { star ->
RatingComposable(
RatingListItem(
label = (stars.indexOf(star) + 1).toString(),
rating = star / stars.sum()
)
@@ -130,11 +130,11 @@ fun RatingAndReviews(
.background(color = MaterialTheme.colorScheme.surfaceContainer)
.requiredHeight(dimensionResource(R.dimen.review_height))
) {
ReviewComposable(review = featuredReviews[page])
ReviewListItem(review = featuredReviews[page])
}
}
PageIndicatorComposable(
PageIndicator(
totalPages = featuredReviews.size,
currentPage = pagerState.currentPage
)

View File

@@ -23,7 +23,7 @@ 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.composables.details.ScreenshotComposable
import com.aurora.store.compose.composable.details.ScreenshotListItem
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.compose.preview.coilPreviewProvider
@@ -37,7 +37,7 @@ import com.aurora.store.compose.preview.coilPreviewProvider
fun Screenshots(screenshots: List<Artwork>, onNavigateToScreenshot: (index: Int) -> Unit = {}) {
LazyRow(horizontalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_small))) {
items(items = screenshots, key = { artwork -> artwork.url }) { artwork ->
ScreenshotComposable(
ScreenshotListItem(
modifier = Modifier
.height(dimensionResource(R.dimen.screenshot_height))
.clip(RoundedCornerShape(dimensionResource(R.dimen.radius_small)))

View File

@@ -19,7 +19,7 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composables.app.AppTagComposable
import com.aurora.store.compose.composable.app.TagListItem
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.util.CommonUtil
@@ -62,7 +62,7 @@ fun Tags(app: App) {
horizontalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.padding_medium))
) {
items(items = tags.keys.toList()) { label ->
AppTagComposable(label = label!!, painter = painterResource(tags.getValue(label)))
TagListItem(label = label!!, painter = painterResource(tags.getValue(label)))
}
}
}

View File

@@ -23,8 +23,8 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composables.HeaderComposable
import com.aurora.store.compose.composables.InfoComposable
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.preview.AppPreviewProvider
/**
@@ -36,13 +36,13 @@ import com.aurora.store.compose.preview.AppPreviewProvider
*/
@Composable
fun Testing(isSubscribed: Boolean, onTestingSubscriptionChange: (subscribe: Boolean) -> Unit = {}) {
HeaderComposable(title = stringResource(R.string.details_beta))
Header(title = stringResource(R.string.details_beta))
Row(
modifier = Modifier.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_small))
) {
InfoComposable(
Info(
modifier = Modifier.weight(1F),
painter = painterResource(R.drawable.ic_experiment),
title = AnnotatedString(

View File

@@ -23,7 +23,7 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composables.TopAppBarComposable
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.preview.AppPreviewProvider
import com.aurora.store.data.model.AppState
@@ -103,7 +103,7 @@ fun AppDetailsMenu(
@Preview(showBackground = true)
@Composable
private fun AppDetailsMenuPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
TopAppBarComposable(
TopAppBar(
actions = {
AppDetailsMenu(
isInstalled = app.isInstalled,

View File

@@ -30,10 +30,10 @@ import coil3.compose.LocalAsyncImagePreviewHandler
import com.aurora.extensions.adaptiveNavigationIcon
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composables.ErrorComposable
import com.aurora.store.compose.composables.ProgressComposable
import com.aurora.store.compose.composables.TopAppBarComposable
import com.aurora.store.compose.composables.app.AppListComposable
import com.aurora.store.compose.composable.Error
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.viewmodel.details.DevProfileViewModel
@@ -88,7 +88,7 @@ private fun ScreenContent(
) {
Scaffold(
topBar = {
TopAppBarComposable(
TopAppBar(
title = topAppBarTitle,
navigationIcon = windowAdaptiveInfo.adaptiveNavigationIcon,
onNavigateUp = onNavigateUp
@@ -96,10 +96,10 @@ private fun ScreenContent(
}
) { paddingValues ->
when (apps.loadState.refresh) {
is LoadState.Loading -> ProgressComposable()
is LoadState.Loading -> ContainedLoadingIndicator()
is LoadState.Error -> {
ErrorComposable(
Error(
modifier = Modifier.padding(paddingValues),
painter = painterResource(R.drawable.ic_disclaimer),
message = stringResource(R.string.error)
@@ -115,7 +115,7 @@ private fun ScreenContent(
) {
items(count = apps.itemCount, key = apps.itemKey { it.id }) { index ->
apps[index]?.let { app ->
AppListComposable(
LargeAppListItem(
app = app,
onClick = { onNavigateToAppDetails(app.packageName) }
)

View File

@@ -30,10 +30,10 @@ import androidx.paging.compose.collectAsLazyPagingItems
import androidx.paging.compose.itemKey
import com.aurora.extensions.toast
import com.aurora.store.R
import com.aurora.store.compose.composables.DownloadComposable
import com.aurora.store.compose.composables.ErrorComposable
import com.aurora.store.compose.composables.ProgressComposable
import com.aurora.store.compose.composables.TopAppBarComposable
import com.aurora.store.compose.composable.DownloadListItem
import com.aurora.store.compose.composable.Error
import com.aurora.store.compose.composable.ContainedLoadingIndicator
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.preview.emptyPagingItems
import com.aurora.store.compose.ui.downloads.menu.DownloadsMenu
import com.aurora.store.compose.ui.downloads.menu.MenuItem
@@ -116,7 +116,7 @@ private fun ScreenContent(
Scaffold(
topBar = {
TopAppBarComposable(
TopAppBar(
title = stringResource(R.string.title_download_manager),
onNavigateUp = onNavigateUp,
actions = { if (downloads.itemCount != 0) SetupMenu() }
@@ -131,14 +131,14 @@ private fun ScreenContent(
) {
when {
downloads.loadState.refresh is LoadState.Loading && initialLoad -> {
ProgressComposable()
ContainedLoadingIndicator()
}
else -> {
initialLoad = false
if (downloads.itemCount == 0) {
ErrorComposable(
Error(
modifier = Modifier.padding(paddingValues),
painter = painterResource(R.drawable.ic_download_manager),
message = stringResource(R.string.download_none)
@@ -150,7 +150,7 @@ private fun ScreenContent(
key = downloads.itemKey { it.packageName }
) { index ->
downloads[index]?.let { download ->
DownloadComposable(
DownloadListItem(
modifier = Modifier.animateItem(),
download = download,
onClick = { onNavigateToAppDetails(download.packageName) },

View File

@@ -31,10 +31,10 @@ import androidx.paging.compose.itemKey
import com.aurora.Constants.JSON_MIME_TYPE
import com.aurora.extensions.toast
import com.aurora.store.R
import com.aurora.store.compose.composables.ErrorComposable
import com.aurora.store.compose.composables.FavouriteComposable
import com.aurora.store.compose.composables.ProgressComposable
import com.aurora.store.compose.composables.TopAppBarComposable
import com.aurora.store.compose.composable.Error
import com.aurora.store.compose.composable.FavouriteListItem
import com.aurora.store.compose.composable.ContainedLoadingIndicator
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.preview.emptyPagingItems
import com.aurora.store.compose.ui.favourite.menu.FavouriteMenu
import com.aurora.store.compose.ui.favourite.menu.MenuItem
@@ -120,7 +120,7 @@ private fun ScreenContent(
Scaffold(
topBar = {
TopAppBarComposable(
TopAppBar(
title = stringResource(R.string.title_favourites_manager),
onNavigateUp = onNavigateUp,
actions = { if (favourites.itemCount != 0) SetupMenu() }
@@ -135,14 +135,14 @@ private fun ScreenContent(
) {
when {
favourites.loadState.refresh is LoadState.Loading && initialLoad -> {
ProgressComposable()
ContainedLoadingIndicator()
}
else -> {
initialLoad = false
if (favourites.itemCount == 0) {
ErrorComposable(
Error(
modifier = Modifier.padding(paddingValues),
painter = painterResource(R.drawable.ic_favorite_unchecked),
message = stringResource(R.string.details_no_favourites)
@@ -154,7 +154,7 @@ private fun ScreenContent(
key = favourites.itemKey { it.packageName }
) { index ->
favourites[index]?.let { favourite ->
FavouriteComposable(
FavouriteListItem(
modifier = Modifier.animateItem(),
favourite = favourite,
onClick = { onNavigateToAppDetails(favourite.packageName) },

View File

@@ -64,10 +64,10 @@ import coil3.compose.LocalAsyncImagePreviewHandler
import com.aurora.gplayapi.SearchSuggestEntry
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.compose.composables.ErrorComposable
import com.aurora.store.compose.composables.ProgressComposable
import com.aurora.store.compose.composables.SearchSuggestionComposable
import com.aurora.store.compose.composables.app.AppListComposable
import com.aurora.store.compose.composable.Error
import com.aurora.store.compose.composable.ContainedLoadingIndicator
import com.aurora.store.compose.composable.SearchSuggestionListItem
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.emptyPagingItems
@@ -181,7 +181,7 @@ private fun ScreenContent(
AppBarWithSearch(state = searchBarState, inputField = inputField)
ExpandedDockedSearchBar(state = searchBarState, inputField = inputField) {
suggestions.forEach { suggestion ->
SearchSuggestionComposable(
SearchSuggestionListItem(
searchSuggestEntry = suggestion,
onClick = { query -> onRequestSearch(query) },
onAction = { query -> textFieldState.setTextAndPlaceCursorAtEnd(query.trim()) }
@@ -206,10 +206,10 @@ private fun ScreenContent(
)
when (results.loadState.refresh) {
is LoadState.Loading -> ProgressComposable()
is LoadState.Loading -> ContainedLoadingIndicator()
is LoadState.Error -> {
ErrorComposable(
Error(
modifier = Modifier.padding(paddingValues),
painter = painterResource(R.drawable.ic_disclaimer),
message = stringResource(R.string.error)
@@ -218,7 +218,7 @@ private fun ScreenContent(
else -> {
if (isSearching && results.itemCount == 0) {
ErrorComposable(
Error(
modifier = Modifier.padding(paddingValues),
painter = painterResource(R.drawable.ic_disclaimer),
message = stringResource(R.string.no_apps_available)
@@ -230,7 +230,7 @@ private fun ScreenContent(
key = results.itemKey { it.id }
) { index ->
results[index]?.let { app ->
AppListComposable(
LargeAppListItem(
app = app,
onClick = { showDetailPane(app.packageName) }
)
@@ -261,7 +261,7 @@ private fun ScreenContent(
else -> {
if (isSearching && results.itemCount > 0) {
ErrorComposable(
Error(
painter = painterResource(R.drawable.ic_round_search),
message = stringResource(R.string.select_app_for_details)
)