From d66f8ebee4f0e6929c8f71a72fc96e5f388ef295 Mon Sep 17 00:00:00 2001 From: LooKeR Date: Wed, 13 Oct 2021 09:15:13 +0530 Subject: [PATCH] Basic conversion from Picasso to Coil (Not working yet) --- .../com/looker/droidify/MainApplication.kt | 9 --------- .../looker/droidify/screen/ProductAdapter.kt | 19 +++---------------- .../droidify/screen/ScreenshotsFragment.kt | 12 ++---------- .../droidify/utility/extension/Resources.kt | 15 ++++++++++----- 4 files changed, 15 insertions(+), 40 deletions(-) diff --git a/src/main/kotlin/com/looker/droidify/MainApplication.kt b/src/main/kotlin/com/looker/droidify/MainApplication.kt index 7d75bc4a..0d327b01 100644 --- a/src/main/kotlin/com/looker/droidify/MainApplication.kt +++ b/src/main/kotlin/com/looker/droidify/MainApplication.kt @@ -11,13 +11,10 @@ import com.looker.droidify.content.ProductPreferences import com.looker.droidify.database.Database import com.looker.droidify.index.RepositoryUpdater import com.looker.droidify.network.Downloader -import com.looker.droidify.network.PicassoDownloader import com.looker.droidify.service.Connection import com.looker.droidify.service.SyncService import com.looker.droidify.utility.Utils.toInstalledItem import com.looker.droidify.utility.extension.android.Android -import com.squareup.picasso.OkHttp3Downloader -import com.squareup.picasso.Picasso import java.net.InetSocketAddress import java.net.Proxy @@ -34,12 +31,6 @@ class MainApplication : Application() { listenApplications() listenPreferences() - Picasso.setSingletonInstance( - Picasso.Builder(this) - .downloader(OkHttp3Downloader(PicassoDownloader.Factory(Cache.getImagesDir(this)))) - .build() - ) - if (databaseUpdated) { forceSyncAll() } diff --git a/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt b/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt index 88faae7b..46e4bc31 100644 --- a/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt +++ b/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt @@ -32,7 +32,6 @@ import com.looker.droidify.content.Preferences import com.looker.droidify.content.ProductPreferences import com.looker.droidify.entity.* import com.looker.droidify.graphics.PaddingDrawable -import com.looker.droidify.network.PicassoDownloader import com.looker.droidify.utility.KParcelable import com.looker.droidify.utility.PackageItemResolver import com.looker.droidify.utility.Utils @@ -1118,12 +1117,7 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int) val updateAll = !updateStatus if (updateAll) { if (item.product.icon.isNotEmpty() || item.product.metadataIcon.isNotEmpty()) { - holder.icon.load( - PicassoDownloader.createIconUri( - holder.icon, item.product.packageName, - item.product.icon, item.product.metadataIcon, item.repository - ) - ) { + holder.icon.load(item.product.icon) { placeholder(holder.progressIcon) error(holder.defaultIcon) } @@ -1321,17 +1315,10 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int) val outer = context.resources.sizeScaled(GRID_SPACING_OUTER_DP) val inner = context.resources.sizeScaled(GRID_SPACING_INNER_DP) val cellSize = (screenWidth - 2 * outer - (columns - 1) * inner) / columns - holder.image.load( - PicassoDownloader.createScreenshotUri( - item.repository, - item.packageName, - item.screenshot - ) - ) { + holder.image.load(item.screenshot.path) { placeholder(holder.placeholder) error(holder.placeholder) - resize(cellSize, cellSize) - centerCrop() + size(cellSize) } } ViewType.RELEASE -> { diff --git a/src/main/kotlin/com/looker/droidify/screen/ScreenshotsFragment.kt b/src/main/kotlin/com/looker/droidify/screen/ScreenshotsFragment.kt index f944f31a..54802734 100644 --- a/src/main/kotlin/com/looker/droidify/screen/ScreenshotsFragment.kt +++ b/src/main/kotlin/com/looker/droidify/screen/ScreenshotsFragment.kt @@ -22,7 +22,6 @@ import com.looker.droidify.database.Database import com.looker.droidify.entity.Product import com.looker.droidify.entity.Repository import com.looker.droidify.graphics.PaddingDrawable -import com.looker.droidify.network.PicassoDownloader import com.looker.droidify.utility.RxUtils import com.looker.droidify.utility.extension.android.Android import com.looker.droidify.utility.extension.resources.* @@ -255,17 +254,10 @@ class ScreenshotsFragment() : DialogFragment() { val (width, height) = size if (width > 0 && height > 0) { repository?.let { - holder.image.load( - PicassoDownloader.createScreenshotUri( - it, - packageName, - screenshot - ) - ) { + holder.image.load(screenshot.path) { placeholder(holder.placeholder) error(holder.placeholder) - resize(width, height) - centerInside() + size(width, height) } } } else { diff --git a/src/main/kotlin/com/looker/droidify/utility/extension/Resources.kt b/src/main/kotlin/com/looker/droidify/utility/extension/Resources.kt index feaaa775..d71850ea 100644 --- a/src/main/kotlin/com/looker/droidify/utility/extension/Resources.kt +++ b/src/main/kotlin/com/looker/droidify/utility/extension/Resources.kt @@ -17,9 +17,10 @@ import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView import androidx.core.content.ContextCompat +import coil.load +import coil.request.ImageRequest +import coil.util.CoilUtils import com.looker.droidify.utility.extension.android.Android -import com.squareup.picasso.Picasso -import com.squareup.picasso.RequestCreator import org.xmlpull.v1.XmlPullParser import kotlin.math.roundToInt @@ -91,10 +92,14 @@ fun ViewGroup.inflate(layoutResId: Int): View { return LayoutInflater.from(context).inflate(layoutResId, this, false) } -fun ImageView.load(uri: Uri, builder: RequestCreator.() -> Unit) { - Picasso.get().load(uri).noFade().apply(builder).into(this) +fun ImageView.load(uri: String, builder: ImageRequest.Builder.() -> Unit = {}) { + this.load(uri = uri, builder = builder) +} + +fun ImageView.load(uri: Uri, builder: ImageRequest.Builder.() -> Unit = {}) { + this.load(uri = uri, builder = builder) } fun ImageView.clear() { - Picasso.get().cancelRequest(this) + CoilUtils.clear(this) }