Upgrade to coil3

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-11-09 13:41:50 +05:30
parent 476d750504
commit 2e8db03b11
29 changed files with 98 additions and 57 deletions

View File

@@ -164,6 +164,7 @@ dependencies {
//Coil //Coil
implementation(libs.coil.kt) implementation(libs.coil.kt)
implementation(libs.coil.compose) implementation(libs.coil.compose)
implementation(libs.coil.network)
//Shimmer //Shimmer
implementation(libs.facebook.shimmer) implementation(libs.facebook.shimmer)

View File

@@ -21,11 +21,14 @@
package com.aurora.store package com.aurora.store
import android.app.Application import android.app.Application
import android.content.Context
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.hilt.work.HiltWorkerFactory import androidx.hilt.work.HiltWorkerFactory
import androidx.work.Configuration import androidx.work.Configuration
import coil.ImageLoader import coil3.ImageLoader
import coil.ImageLoaderFactory import coil3.SingletonImageLoader
import coil3.network.okhttp.OkHttpNetworkFetcherFactory
import coil3.request.crossfade
import com.aurora.extensions.isPAndAbove import com.aurora.extensions.isPAndAbove
import com.aurora.extensions.setAppTheme import com.aurora.extensions.setAppTheme
import com.aurora.store.data.event.EventFlow import com.aurora.store.data.event.EventFlow
@@ -45,7 +48,7 @@ import org.lsposed.hiddenapibypass.HiddenApiBypass
import javax.inject.Inject import javax.inject.Inject
@HiltAndroidApp @HiltAndroidApp
class AuroraApp : Application(), Configuration.Provider, ImageLoaderFactory { class AuroraApp : Application(), Configuration.Provider, SingletonImageLoader.Factory {
@Inject @Inject
lateinit var okHttpClient: OkHttpClient lateinit var okHttpClient: OkHttpClient
@@ -110,9 +113,10 @@ class AuroraApp : Application(), Configuration.Provider, ImageLoaderFactory {
scope = MainScope() scope = MainScope()
} }
override fun newImageLoader(): ImageLoader { override fun newImageLoader(context: Context): ImageLoader {
return ImageLoader(this).newBuilder() return ImageLoader(this).newBuilder()
.okHttpClient(okHttpClient) .crossfade(true)
.components { add(OkHttpNetworkFetcherFactory(callFactory = okHttpClient)) }
.build() .build()
} }
} }

View File

@@ -24,8 +24,10 @@ import android.content.pm.PackageInfo
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.CompoundButton import android.widget.CompoundButton
import androidx.core.content.pm.PackageInfoCompat import androidx.core.content.pm.PackageInfoCompat
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -21,7 +21,7 @@ package com.aurora.store.view.epoxy.views
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import coil.load import coil3.load
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -21,8 +21,10 @@ package com.aurora.store.view.epoxy.views
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -21,8 +21,9 @@ package com.aurora.store.view.epoxy.views
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -21,8 +21,10 @@ package com.aurora.store.view.epoxy.views
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -22,8 +22,9 @@ package com.aurora.store.view.epoxy.views
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -22,8 +22,10 @@ package com.aurora.store.view.epoxy.views.app
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -28,9 +28,12 @@ import android.view.animation.AccelerateDecelerateInterpolator
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.text.HtmlCompat import androidx.core.text.HtmlCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import coil.load import coil3.asDrawable
import coil.transform.CircleCropTransformation import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.CircleCropTransformation
import coil3.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
@@ -67,7 +70,7 @@ class AppUpdateView @JvmOverloads constructor(
placeholder(R.drawable.bg_placeholder) placeholder(R.drawable.bg_placeholder)
transformations(cornersTransformation) transformations(cornersTransformation)
listener { _, result -> listener { _, result ->
result.drawable.let { iconDrawable = it } result.image.asDrawable(resources).let { iconDrawable = it }
} }
} }

View File

@@ -21,8 +21,10 @@ package com.aurora.store.view.epoxy.views.app
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -21,8 +21,10 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -21,7 +21,7 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import coil.load import coil3.load
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.aurora.gplayapi.data.models.details.Badge import com.aurora.gplayapi.data.models.details.Badge

View File

@@ -22,7 +22,8 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.content.res.Resources import android.content.res.Resources
import android.util.AttributeSet import android.util.AttributeSet
import coil.load import coil3.load
import coil3.request.placeholder
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.aurora.gplayapi.data.models.Artwork import com.aurora.gplayapi.data.models.Artwork

View File

@@ -21,8 +21,10 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -22,7 +22,8 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import androidx.core.text.HtmlCompat import androidx.core.text.HtmlCompat
import coil.load import coil3.load
import coil3.request.placeholder
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.aurora.gplayapi.data.models.details.Badge import com.aurora.gplayapi.data.models.details.Badge

View File

@@ -21,8 +21,10 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -21,8 +21,10 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -21,7 +21,7 @@ package com.aurora.store.view.epoxy.views.preference
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import coil.load import coil3.load
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView

View File

@@ -24,7 +24,7 @@ import android.view.View
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import coil.load import coil3.load
import com.aurora.extensions.browse import com.aurora.extensions.browse
import com.aurora.extensions.copyToClipBoard import com.aurora.extensions.copyToClipBoard
import com.aurora.store.BuildConfig import com.aurora.store.BuildConfig

View File

@@ -22,8 +22,10 @@ package com.aurora.store.view.ui.account
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.aurora.Constants.URL_DISCLAIMER import com.aurora.Constants.URL_DISCLAIMER
import com.aurora.Constants.URL_LICENSE import com.aurora.Constants.URL_LICENSE
import com.aurora.Constants.URL_TOS import com.aurora.Constants.URL_TOS

View File

@@ -49,8 +49,9 @@ import androidx.compose.ui.unit.sp
import androidx.compose.ui.util.fastForEach import androidx.compose.ui.util.fastForEach
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import coil.compose.SubcomposeAsyncImage import coil3.compose.AsyncImage
import coil.request.ImageRequest import coil3.request.ImageRequest
import coil3.request.crossfade
import com.aurora.Constants import com.aurora.Constants
import com.aurora.Constants.URL_TOS import com.aurora.Constants.URL_TOS
import com.aurora.extensions.browse import com.aurora.extensions.browse
@@ -236,7 +237,7 @@ class MoreDialogFragment : DialogFragment() {
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(15.dp, Alignment.Start) horizontalArrangement = Arrangement.spacedBy(15.dp, Alignment.Start)
) { ) {
SubcomposeAsyncImage( AsyncImage(
model = ImageRequest.Builder(LocalContext.current) model = ImageRequest.Builder(LocalContext.current)
.data( .data(
if (authProvider.isAnonymous) { if (authProvider.isAnonymous) {
@@ -245,10 +246,10 @@ class MoreDialogFragment : DialogFragment() {
authProvider.authData?.userProfile?.artwork?.url authProvider.authData?.userProfile?.artwork?.url
} }
) )
.placeholder(R.drawable.ic_account)
.crossfade(true) .crossfade(true)
.build(), .build(),
contentDescription = stringResource(id = R.string.title_account_manager), contentDescription = stringResource(id = R.string.title_account_manager),
placeholder = painterResource(R.drawable.ic_account),
contentScale = ContentScale.Crop, contentScale = ContentScale.Crop,
modifier = Modifier modifier = Modifier
.requiredSize(36.dp) .requiredSize(36.dp)

View File

@@ -39,8 +39,10 @@ import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.aurora.Constants import com.aurora.Constants
import com.aurora.Constants.EXODUS_SUBMIT_PAGE import com.aurora.Constants.EXODUS_SUBMIT_PAGE
import com.aurora.extensions.browse import com.aurora.extensions.browse

View File

@@ -24,7 +24,7 @@ import android.view.View
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import coil.load import coil3.load
import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.data.models.StreamCluster import com.aurora.gplayapi.data.models.StreamCluster
import com.aurora.gplayapi.data.models.details.DevStream import com.aurora.gplayapi.data.models.details.DevStream

View File

@@ -22,8 +22,9 @@ package com.aurora.store.view.ui.sheets
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.SheetAppPeekBinding import com.aurora.store.databinding.SheetAppPeekBinding
import com.aurora.store.util.CommonUtil import com.aurora.store.util.CommonUtil

View File

@@ -23,8 +23,9 @@ import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.provider.Settings import android.provider.Settings
import android.view.View import android.view.View
import coil.load import coil3.load
import coil.transform.CircleCropTransformation import coil3.request.transformations
import coil3.transform.CircleCropTransformation
import com.aurora.extensions.toast import com.aurora.extensions.toast
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.SheetDeviceMiuiBinding import com.aurora.store.databinding.SheetDeviceMiuiBinding

View File

@@ -22,8 +22,9 @@ package com.aurora.store.view.ui.sheets
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import coil.load import coil3.load
import coil.transform.CircleCropTransformation import coil3.request.transformations
import coil3.transform.CircleCropTransformation
import com.aurora.extensions.copyToClipBoard import com.aurora.extensions.copyToClipBoard
import com.aurora.extensions.toast import com.aurora.extensions.toast
import com.aurora.store.R import com.aurora.store.R

View File

@@ -25,8 +25,10 @@ import android.view.View
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import coil.load import coil3.load
import coil.transform.RoundedCornersTransformation import coil3.request.placeholder
import coil3.request.transformations
import coil3.transform.RoundedCornersTransformation
import com.aurora.extensions.toast import com.aurora.extensions.toast
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.SheetManualDownloadBinding import com.aurora.store.databinding.SheetManualDownloadBinding

View File

@@ -2,7 +2,7 @@
activityCompose = "1.9.3" activityCompose = "1.9.3"
androidGradlePlugin = "8.7.2" androidGradlePlugin = "8.7.2"
browserVersion = "1.8.0" browserVersion = "1.8.0"
coilVersion = "2.7.0" coilVersion = "3.0.1"
composeBom = "2024.10.01" composeBom = "2024.10.01"
coreVersion = "1.15.0" coreVersion = "1.15.0"
epoxyVersion = "5.1.4" epoxyVersion = "5.1.4"
@@ -63,8 +63,9 @@ androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit
androidx-viewpager2 = { module = "androidx.viewpager2:viewpager2", version.ref = "viewpager2Version" } androidx-viewpager2 = { module = "androidx.viewpager2:viewpager2", version.ref = "viewpager2Version" }
androidx-work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "workVersion" } androidx-work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "workVersion" }
auroraoss-gplayapi = { module = "com.auroraoss:gplayapi", version.ref = "gplayapiVersion" } auroraoss-gplayapi = { module = "com.auroraoss:gplayapi", version.ref = "gplayapiVersion" }
coil-kt = { module = "io.coil-kt:coil", version.ref = "coilVersion" } coil-kt = { module = "io.coil-kt.coil3:coil", version.ref = "coilVersion" }
coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coilVersion" } coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coilVersion" }
coil-network = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coilVersion" }
facebook-shimmer = { module = "com.facebook.shimmer:shimmer", version.ref = "shimmerVersion" } facebook-shimmer = { module = "com.facebook.shimmer:shimmer", version.ref = "shimmerVersion" }
github-topjohnwu-libsu = { module = "com.github.topjohnwu.libsu:core", version.ref = "libsu" } github-topjohnwu-libsu = { module = "com.github.topjohnwu.libsu:core", version.ref = "libsu" }
google-android-material = { module = "com.google.android.material:material", version.ref = "materialVersion" } google-android-material = { module = "com.google.android.material:material", version.ref = "materialVersion" }