From bc5d12aef2811708d120dea97848d288baed2cf2 Mon Sep 17 00:00:00 2001 From: lihenggui Date: Tue, 12 Mar 2024 13:48:41 -0700 Subject: [PATCH] Fix errors in the designsystem module --- .../designsystem/component/DynamicAsyncImage.kt | 15 ++++++++------- .../core/designsystem/component/TopAppBar.kt | 12 +++++------- .../core/designsystem/component/ViewToggle.kt | 2 +- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/DynamicAsyncImage.kt b/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/DynamicAsyncImage.kt index 2c936cf13..c0e88b81b 100644 --- a/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/DynamicAsyncImage.kt +++ b/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/DynamicAsyncImage.kt @@ -30,18 +30,15 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color.Companion.Unspecified import androidx.compose.ui.graphics.ColorFilter -import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalInspectionMode -import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp +import coil3.ImageLoader import coil3.compose.AsyncImage import coil3.compose.AsyncImagePainter.State.Error import coil3.compose.AsyncImagePainter.State.Loading import coil3.compose.rememberAsyncImagePainter -import com.google.samples.apps.nowinandroid.core.designsystem.R import com.google.samples.apps.nowinandroid.core.designsystem.theme.LocalTintTheme -import org.jetbrains.compose.resources.painterResource /** * A wrapper around [AsyncImage] which determines the colorFilter based on the theme @@ -49,19 +46,22 @@ import org.jetbrains.compose.resources.painterResource @Composable fun DynamicAsyncImage( imageUrl: String, + imageLoader: ImageLoader, contentDescription: String?, modifier: Modifier = Modifier, - placeholder: Painter = painterResource(R.drawable.core_designsystem_ic_placeholder_default), + //TODO Use Compose resources to present a placeholder +// placeholder: Painter = painterResource(R.drawable.core_designsystem_ic_placeholder_default), ) { val iconTint = LocalTintTheme.current.iconTint var isLoading by remember { mutableStateOf(true) } var isError by remember { mutableStateOf(false) } - val imageLoader = rememberAsyncImagePainter( + val asyncImagePainter = rememberAsyncImagePainter( model = imageUrl, onState = { state -> isLoading = state is Loading isError = state is Error }, + imageLoader = imageLoader, ) val isLocalInspection = LocalInspectionMode.current Box( @@ -79,7 +79,8 @@ fun DynamicAsyncImage( } Image( contentScale = ContentScale.Crop, - painter = if (isError.not() && !isLocalInspection) imageLoader else placeholder, + painter = asyncImagePainter, +// painter = if (isError.not() && !isLocalInspection) imageLoader else placeholder, contentDescription = contentDescription, colorFilter = if (iconTint != Unspecified) ColorFilter.tint(iconTint) else null, ) diff --git a/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt b/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt index f85c65677..074dc0025 100644 --- a/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt +++ b/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt @@ -18,7 +18,6 @@ package com.google.samples.apps.nowinandroid.core.designsystem.component -import androidx.annotation.StringRes import androidx.compose.material3.CenterAlignedTopAppBar import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -31,15 +30,14 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme +import org.jetbrains.compose.ui.tooling.preview.Preview @OptIn(ExperimentalMaterial3Api::class) @Composable fun NiaTopAppBar( - @StringRes titleRes: Int, + title: String, navigationIcon: ImageVector, navigationIconContentDescription: String, actionIcon: ImageVector, @@ -50,7 +48,7 @@ fun NiaTopAppBar( onActionClick: () -> Unit = {}, ) { CenterAlignedTopAppBar( - title = { Text(text = stringResource(id = titleRes)) }, + title = { Text(text = title) }, navigationIcon = { IconButton(onClick = onNavigationClick) { Icon( @@ -75,12 +73,12 @@ fun NiaTopAppBar( } @OptIn(ExperimentalMaterial3Api::class) -@Preview("Top App Bar") +@Preview @Composable private fun NiaTopAppBarPreview() { NiaTheme { NiaTopAppBar( - titleRes = android.R.string.untitled, + title = "Untitled", navigationIcon = NiaIcons.Search, navigationIconContentDescription = "Navigation icon", actionIcon = NiaIcons.MoreVert, diff --git a/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt b/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt index d368c46d7..3f9eb99cf 100644 --- a/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt +++ b/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt @@ -29,10 +29,10 @@ import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme +import org.jetbrains.compose.ui.tooling.preview.Preview /** * Now in Android view toggle button with included trailing icon as well as compact and expanded