From 0a33c12cdedc9bc3c5bde95e61b9346bf58fa57a Mon Sep 17 00:00:00 2001 From: Fawkes100 Date: Tue, 29 Apr 2025 20:34:17 +0200 Subject: [PATCH] UPD: Improve Performance by using coil to load image preview --- app/build.gradle.kts | 2 +- .../notevault/ui/screens/MainScreen.kt | 13 ++++++------- gradle/libs.versions.toml | 1 + 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f8d2be3..beb33ad 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -61,6 +61,6 @@ dependencies { implementation(libs.androidx.room.ktx) implementation(libs.lifecycle.livedata.ktx) implementation(libs.compose.runtime.livedata) - + implementation(libs.coil.compose) ksp(libs.androidx.room.compiler) } \ No newline at end of file diff --git a/app/src/main/java/come/stormborntales/notevault/ui/screens/MainScreen.kt b/app/src/main/java/come/stormborntales/notevault/ui/screens/MainScreen.kt index 686ec1c..9ade2e9 100644 --- a/app/src/main/java/come/stormborntales/notevault/ui/screens/MainScreen.kt +++ b/app/src/main/java/come/stormborntales/notevault/ui/screens/MainScreen.kt @@ -29,6 +29,7 @@ import come.stormborntales.notevault.data.model.NoteEntry import come.stormborntales.notevault.ui.viewmodel.NoteViewModel import java.io.InputStream import androidx.core.net.toUri +import coil.compose.AsyncImage fun loadImageBitmap(context: Context, uriString: String): ImageBitmap? { return try { @@ -45,9 +46,7 @@ fun loadImageBitmap(context: Context, uriString: String): ImageBitmap? { @Composable fun NoteCard(note: NoteEntity) { val context = LocalContext.current - val imageBitmap = remember(note.images) { - note.images.firstOrNull()?.let { loadImageBitmap(context, it) } - } + Card( modifier = Modifier @@ -58,15 +57,15 @@ fun NoteCard(note: NoteEntity) { ) { Row(modifier = Modifier.padding(16.dp)) { // Linkes Vorschaubild - imageBitmap?.let { - Image( - bitmap = it, + + note.images.firstOrNull()?.let { uriString -> + AsyncImage( + model = uriString, contentDescription = "Vorschaubild", modifier = Modifier .size(120.dp) .clip(RoundedCornerShape(12.dp)) ) - Spacer(modifier = Modifier.width(16.dp)) } // Rechte Info-Spalte diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 757f10d..a4f3bb2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,6 +15,7 @@ ksp="2.1.21-RC-2.0.0" compose = "1.6.0" # oder was immer deine aktuelle Compose-Version ist [libraries] +coil-compose = { group = "io.coil-kt", name = "coil-compose", version = "2.5.0" } # oder aktueller compose-runtime-livedata = { group = "androidx.compose.runtime", name = "runtime-livedata", version.ref = "compose" } lifecycle-livedata-ktx = "androidx.lifecycle:lifecycle-livedata-ktx:2.8.7" androidx-compose-bom-v20240100 = { module = "androidx.compose:compose-bom", version.ref = "composeBomVersion" }