Skip to content

Commit

Permalink
refactor: upgrade to Coil3 (#7052)
Browse files Browse the repository at this point in the history
  • Loading branch information
Pittvandewitt authored Feb 3, 2025
1 parent e45346f commit 0025782
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 11 deletions.
1 change: 1 addition & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ dependencies {
/* Coil */
coreLibraryDesugaring(libs.desugaring)
implementation(libs.coil)
implementation(libs.coil.network.okhttp)

/* Room */
ksp(libs.room.compiler)
Expand Down
24 changes: 15 additions & 9 deletions app/src/main/java/com/github/libretube/helpers/ImageHelper.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,16 @@ import android.graphics.Color
import android.graphics.drawable.Drawable
import android.net.Uri
import android.widget.ImageView
import androidx.core.graphics.drawable.toBitmapOrNull
import androidx.core.net.toUri
import coil.ImageLoader
import coil.disk.DiskCache
import coil.request.CachePolicy
import coil.request.ImageRequest
import coil3.ImageLoader
import coil3.asDrawable
import coil3.disk.DiskCache
import coil3.disk.directory
import coil3.network.okhttp.OkHttpNetworkFetcherFactory
import coil3.request.CachePolicy
import coil3.request.ImageRequest
import coil3.request.crossfade
import coil3.toBitmap
import com.github.libretube.BuildConfig
import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.extensions.toAndroidUri
Expand Down Expand Up @@ -46,8 +50,10 @@ object ImageHelper {

imageLoader = ImageLoader.Builder(context)
.crossfade(true)
.okHttpClient {
httpClient.build()
.components {
add(
OkHttpNetworkFetcherFactory(httpClient.build())
)
}
.apply {
if (maxCacheSize.isEmpty()) {
Expand Down Expand Up @@ -110,14 +116,14 @@ object ImageHelper {
.data(url)
.build()

return imageLoader.execute(request).drawable?.toBitmapOrNull()
return imageLoader.execute(request).image?.toBitmap()
}

private fun getImageWithCallback(context: Context, url: String?, onSuccess: (Drawable) -> Unit) {
val request = ImageRequest.Builder(context)
.data(url)
.target { drawable ->
onSuccess(drawable)
onSuccess(drawable.asDrawable(context.resources))
}
.build()

Expand Down
5 changes: 3 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ espresso = "3.6.1"
workRuntime = "2.9.1"
retrofit = "2.11.0"
desugaring = "2.1.4"
coil = "2.7.0"
coil = "3.0.4"
room = "2.6.1"
kotlinxSerialization = "1.6.3"
kotlinxDatetime = "0.6.1"
Expand Down Expand Up @@ -62,7 +62,8 @@ newpipeextractor = { module = "com.github.teamnewpipe:NewPipeExtractor", version
square-retrofit = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" }
converter-kotlinx-serialization = { group = "com.squareup.retrofit2", name = "converter-kotlinx-serialization", version.ref = "retrofit" }
desugaring = { group = "com.android.tools", name = "desugar_jdk_libs_nio", version.ref = "desugaring" }
coil = { group = "io.coil-kt", name = "coil", version.ref="coil" }
coil = { group = "io.coil-kt.coil3", name = "coil", version.ref = "coil" }
coil-network-okhttp = { group = "io.coil-kt.coil3", name = "coil-network-okhttp", version.ref = "coil"}
lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycle" }
lifecycle-runtime = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycle" }
lifecycle-livedata = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "lifecycle" }
Expand Down

0 comments on commit 0025782

Please sign in to comment.