Fix errors in the designsystem module

pull/1323/head
lihenggui 2 years ago
parent 20a8d5c9af
commit bc5d12aef2

@ -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,
)

@ -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,

@ -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

Loading…
Cancel
Save