diff --git a/app/src/main/java/com/paulcoding/hviewer/model/SiteModel.kt b/app/src/main/java/com/paulcoding/hviewer/model/SiteModel.kt index c486a28..fc757c7 100644 --- a/app/src/main/java/com/paulcoding/hviewer/model/SiteModel.kt +++ b/app/src/main/java/com/paulcoding/hviewer/model/SiteModel.kt @@ -6,9 +6,11 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import coil3.compose.AsyncImage +import com.paulcoding.hviewer.R data class SiteConfig( val baseUrl: String = "", @@ -26,6 +28,7 @@ data class SiteConfig( .size(size) .clip(RoundedCornerShape(clip)), contentScale = ContentScale.Crop, + placeholder = painterResource(R.drawable.ic_launcher_foreground) ) } } diff --git a/app/src/main/java/com/paulcoding/hviewer/ui/component/HImage.kt b/app/src/main/java/com/paulcoding/hviewer/ui/component/HImage.kt index 46a6a8e..20d2c50 100644 --- a/app/src/main/java/com/paulcoding/hviewer/ui/component/HImage.kt +++ b/app/src/main/java/com/paulcoding/hviewer/ui/component/HImage.kt @@ -5,22 +5,20 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.painterResource -import coil3.compose.AsyncImage +import coil3.compose.SubcomposeAsyncImage import coil3.request.ImageRequest import coil3.request.crossfade -import com.paulcoding.hviewer.R @Composable fun HImage(url: String, modifier: Modifier = Modifier) { - AsyncImage( + SubcomposeAsyncImage( model = ImageRequest.Builder(LocalContext.current) .data(url) .crossfade(200) .build(), contentDescription = url, - placeholder = painterResource(R.drawable.ic_launcher_foreground), - error = painterResource(R.drawable.ic_launcher_foreground), + loading = { HLoading() }, + error = { HEmpty() }, modifier = modifier.fillMaxWidth(), contentScale = ContentScale.FillWidth, ) diff --git a/app/src/main/java/com/paulcoding/hviewer/ui/component/HLoading.kt b/app/src/main/java/com/paulcoding/hviewer/ui/component/HLoading.kt index cb18021..672f67c 100644 --- a/app/src/main/java/com/paulcoding/hviewer/ui/component/HLoading.kt +++ b/app/src/main/java/com/paulcoding/hviewer/ui/component/HLoading.kt @@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -20,6 +21,7 @@ fun HLoading() { .height(64.dp) .padding(16.dp) .align(Alignment.Center), + trackColor = MaterialTheme.colorScheme.primary, ) } } \ No newline at end of file