Migrate to Coil 2.x

This commit is contained in:
MM20 2022-07-31 22:42:49 +02:00
parent c423aa2fff
commit 6b33d4fcd7
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
7 changed files with 23 additions and 31 deletions

View File

@ -80,8 +80,8 @@ class LauncherApplication : Application(), CoroutineScope, ImageLoaderFactory {
override fun newImageLoader(): ImageLoader { override fun newImageLoader(): ImageLoader {
return ImageLoader.Builder(applicationContext) return ImageLoader.Builder(applicationContext)
.componentRegistry { .components {
add(SvgDecoder(applicationContext)) add(SvgDecoder.Factory())
} }
.crossfade(true) .crossfade(true)
.crossfade(200) .crossfade(200)

View File

@ -250,7 +250,7 @@ dependencyResolutionManagement {
alias("okhttp") alias("okhttp")
.to("com.squareup.okhttp3", "okhttp") .to("com.squareup.okhttp3", "okhttp")
.version("4.9.1") .version("4.10.0")
alias("retrofit.core") alias("retrofit.core")
.to("com.squareup.retrofit2", "retrofit") .to("com.squareup.retrofit2", "retrofit")
@ -266,7 +266,7 @@ dependencyResolutionManagement {
) )
) )
version("coil", "1.4.0") version("coil", "2.1.0")
alias("coil.core") alias("coil.core")
.to("io.coil-kt", "coil") .to("io.coil-kt", "coil")
.versionRef("coil") .versionRef("coil")

View File

@ -38,7 +38,7 @@ import androidx.compose.ui.unit.dp
import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle
import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.repeatOnLifecycle
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import coil.compose.rememberImagePainter import coil.compose.AsyncImage
import de.mm20.launcher2.ktx.tryStartActivity import de.mm20.launcher2.ktx.tryStartActivity
import de.mm20.launcher2.preferences.LauncherDataStore import de.mm20.launcher2.preferences.LauncherDataStore
import de.mm20.launcher2.preferences.Settings.SearchBarSettings import de.mm20.launcher2.preferences.Settings.SearchBarSettings
@ -332,9 +332,9 @@ fun SearchBar(
) )
) )
} else { } else {
Image( AsyncImage(
modifier = Modifier.size(24.dp), modifier = Modifier.size(24.dp),
painter = rememberImagePainter(File(icon)), model = File(icon),
contentDescription = null contentDescription = null
) )
} }

View File

@ -21,7 +21,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import coil.compose.rememberImagePainter import coil.compose.rememberAsyncImagePainter
import com.google.accompanist.flowlayout.FlowRow import com.google.accompanist.flowlayout.FlowRow
import de.mm20.launcher2.search.data.Application import de.mm20.launcher2.search.data.Application
import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.R
@ -101,11 +101,8 @@ fun AppItem(
val icon = val icon =
remember { not.notification.smallIcon?.loadDrawable(context) }?.let { remember { not.notification.smallIcon?.loadDrawable(context) }?.let {
rememberImagePainter( rememberAsyncImagePainter(
it, it
builder = {
crossfade(false)
}
) )
} }
@ -141,10 +138,7 @@ fun AppItem(
) )
} }
?.let { ?.let {
rememberImagePainter(it, rememberAsyncImagePainter(it)
builder = {
crossfade(false)
})
} }
Chip( Chip(

View File

@ -23,7 +23,7 @@ import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp 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.search.data.Website
import de.mm20.launcher2.ui.component.DefaultToolbarAction import de.mm20.launcher2.ui.component.DefaultToolbarAction
import de.mm20.launcher2.ui.component.Toolbar import de.mm20.launcher2.ui.component.Toolbar
@ -47,15 +47,14 @@ fun WebsiteItem(
} }
) { ) {
if (website.image.isNotBlank()) { if (website.image.isNotBlank()) {
Image( AsyncImage(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.aspectRatio(16f / 9f) .aspectRatio(16f / 9f)
.background(MaterialTheme.colorScheme.secondaryContainer), .background(MaterialTheme.colorScheme.secondaryContainer),
painter = rememberImagePainter(website.image), model = website.image,
contentScale = ContentScale.Crop, contentScale = ContentScale.Crop,
contentDescription = null contentDescription = null)
)
} }
Column( Column(
modifier = Modifier.padding(16.dp), modifier = Modifier.padding(16.dp),

View File

@ -2,7 +2,6 @@ package de.mm20.launcher2.ui.launcher.search.wikipedia
import androidx.compose.animation.* import androidx.compose.animation.*
import androidx.compose.animation.core.tween import androidx.compose.animation.core.tween
import androidx.compose.foundation.Image
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.* 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.platform.LocalContext
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp 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.search.data.Wikipedia
import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.R
import de.mm20.launcher2.ui.component.DefaultToolbarAction import de.mm20.launcher2.ui.component.DefaultToolbarAction
@ -48,12 +47,12 @@ fun WikipediaItem(
} }
) { ) {
if (!wikipedia.image.isNullOrEmpty()) { if (!wikipedia.image.isNullOrEmpty()) {
Image( AsyncImage(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.aspectRatio(16f / 9f) .aspectRatio(16f / 9f)
.background(MaterialTheme.colorScheme.secondaryContainer), .background(MaterialTheme.colorScheme.secondaryContainer),
painter = rememberImagePainter(wikipedia.image), model = wikipedia.image,
contentScale = ContentScale.Crop, contentScale = ContentScale.Crop,
contentDescription = null contentDescription = null
) )

View File

@ -23,7 +23,7 @@ import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import coil.compose.rememberImagePainter import coil.compose.AsyncImage
import com.godaddy.android.colorpicker.ClassicColorPicker import com.godaddy.android.colorpicker.ClassicColorPicker
import de.mm20.launcher2.search.data.Websearch import de.mm20.launcher2.search.data.Websearch
import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.R
@ -107,8 +107,8 @@ fun WebsearchPreference(
?: MaterialTheme.colorScheme.primary, ?: MaterialTheme.colorScheme.primary,
) )
} else { } else {
Image( AsyncImage(
painter = rememberImagePainter(File(icon)), model = File(icon),
contentDescription = null, contentDescription = null,
modifier = Modifier.sizeIn(maxWidth = 24.dp, maxHeight = 24.dp), modifier = Modifier.sizeIn(maxWidth = 24.dp, maxHeight = 24.dp),
contentScale = ContentScale.Inside contentScale = ContentScale.Inside
@ -337,8 +337,8 @@ fun EditWebsearchDialog(
Row( Row(
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
Image( AsyncImage(
painter = rememberImagePainter(icon?.let { File(it) }), model = icon?.let { File(it) },
contentDescription = null, contentDescription = null,
modifier = Modifier modifier = Modifier
.padding(end = 16.dp) .padding(end = 16.dp)