diff --git a/app/src/main/java/de/mm20/launcher2/LauncherApplication.kt b/app/src/main/java/de/mm20/launcher2/LauncherApplication.kt index e9052a59..5229eec5 100644 --- a/app/src/main/java/de/mm20/launcher2/LauncherApplication.kt +++ b/app/src/main/java/de/mm20/launcher2/LauncherApplication.kt @@ -80,8 +80,8 @@ class LauncherApplication : Application(), CoroutineScope, ImageLoaderFactory { override fun newImageLoader(): ImageLoader { return ImageLoader.Builder(applicationContext) - .componentRegistry { - add(SvgDecoder(applicationContext)) + .components { + add(SvgDecoder.Factory()) } .crossfade(true) .crossfade(200) diff --git a/settings.gradle.kts b/settings.gradle.kts index 5ddafaef..35fb4d5a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -250,7 +250,7 @@ dependencyResolutionManagement { alias("okhttp") .to("com.squareup.okhttp3", "okhttp") - .version("4.9.1") + .version("4.10.0") alias("retrofit.core") .to("com.squareup.retrofit2", "retrofit") @@ -266,7 +266,7 @@ dependencyResolutionManagement { ) ) - version("coil", "1.4.0") + version("coil", "2.1.0") alias("coil.core") .to("io.coil-kt", "coil") .versionRef("coil") diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/SearchBar.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/SearchBar.kt index 425addb3..d7c5128f 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/SearchBar.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/SearchBar.kt @@ -38,7 +38,7 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import coil.compose.rememberImagePainter +import coil.compose.AsyncImage import de.mm20.launcher2.ktx.tryStartActivity import de.mm20.launcher2.preferences.LauncherDataStore import de.mm20.launcher2.preferences.Settings.SearchBarSettings @@ -332,9 +332,9 @@ fun SearchBar( ) ) } else { - Image( + AsyncImage( modifier = Modifier.size(24.dp), - painter = rememberImagePainter(File(icon)), + model = File(icon), contentDescription = null ) } diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/apps/AppItem.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/apps/AppItem.kt index 4cd3719c..1542f5a5 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/apps/AppItem.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/apps/AppItem.kt @@ -21,7 +21,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.core.app.NotificationCompat import androidx.lifecycle.lifecycleScope -import coil.compose.rememberImagePainter +import coil.compose.rememberAsyncImagePainter import com.google.accompanist.flowlayout.FlowRow import de.mm20.launcher2.search.data.Application import de.mm20.launcher2.ui.R @@ -101,11 +101,8 @@ fun AppItem( val icon = remember { not.notification.smallIcon?.loadDrawable(context) }?.let { - rememberImagePainter( - it, - builder = { - crossfade(false) - } + rememberAsyncImagePainter( + it ) } @@ -141,10 +138,7 @@ fun AppItem( ) } ?.let { - rememberImagePainter(it, - builder = { - crossfade(false) - }) + rememberAsyncImagePainter(it) } Chip( diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/website/WebsiteItem.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/website/WebsiteItem.kt index b39b105c..39d0965a 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/website/WebsiteItem.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/website/WebsiteItem.kt @@ -23,7 +23,7 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import coil.compose.rememberImagePainter +import coil.compose.AsyncImage import de.mm20.launcher2.search.data.Website import de.mm20.launcher2.ui.component.DefaultToolbarAction import de.mm20.launcher2.ui.component.Toolbar @@ -47,15 +47,14 @@ fun WebsiteItem( } ) { if (website.image.isNotBlank()) { - Image( + AsyncImage( modifier = Modifier .fillMaxWidth() .aspectRatio(16f / 9f) .background(MaterialTheme.colorScheme.secondaryContainer), - painter = rememberImagePainter(website.image), + model = website.image, contentScale = ContentScale.Crop, - contentDescription = null - ) + contentDescription = null) } Column( modifier = Modifier.padding(16.dp), diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/wikipedia/WikipediaItem.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/wikipedia/WikipediaItem.kt index fecd4e7c..7527328e 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/wikipedia/WikipediaItem.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/wikipedia/WikipediaItem.kt @@ -2,7 +2,6 @@ package de.mm20.launcher2.ui.launcher.search.wikipedia import androidx.compose.animation.* import androidx.compose.animation.core.tween -import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -23,7 +22,7 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import coil.compose.rememberImagePainter +import coil.compose.AsyncImage import de.mm20.launcher2.search.data.Wikipedia import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.DefaultToolbarAction @@ -48,12 +47,12 @@ fun WikipediaItem( } ) { if (!wikipedia.image.isNullOrEmpty()) { - Image( + AsyncImage( modifier = Modifier .fillMaxWidth() .aspectRatio(16f / 9f) .background(MaterialTheme.colorScheme.secondaryContainer), - painter = rememberImagePainter(wikipedia.image), + model = wikipedia.image, contentScale = ContentScale.Crop, contentDescription = null ) diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/websearch/WebSearchSettingsScreen.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/websearch/WebSearchSettingsScreen.kt index 4cd7171a..cd780e5d 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/websearch/WebSearchSettingsScreen.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/websearch/WebSearchSettingsScreen.kt @@ -23,7 +23,7 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import coil.compose.rememberImagePainter +import coil.compose.AsyncImage import com.godaddy.android.colorpicker.ClassicColorPicker import de.mm20.launcher2.search.data.Websearch import de.mm20.launcher2.ui.R @@ -107,8 +107,8 @@ fun WebsearchPreference( ?: MaterialTheme.colorScheme.primary, ) } else { - Image( - painter = rememberImagePainter(File(icon)), + AsyncImage( + model = File(icon), contentDescription = null, modifier = Modifier.sizeIn(maxWidth = 24.dp, maxHeight = 24.dp), contentScale = ContentScale.Inside @@ -337,8 +337,8 @@ fun EditWebsearchDialog( Row( verticalAlignment = Alignment.CenterVertically ) { - Image( - painter = rememberImagePainter(icon?.let { File(it) }), + AsyncImage( + model = icon?.let { File(it) }, contentDescription = null, modifier = Modifier .padding(end = 16.dp)