Refactor: Upgrade Coil to v3 and update dependencies
- Upgraded image loading library from Coil 2 to Coil 3, updating related APIs across the app. - Migrated `viewModel()` to a singleton pattern for `AgentViewModel` to optimize instantiation. - Updated various dependencies, including Android Gradle Plugin, Kotlin, Compose, and other libraries. - Upgraded Gradle wrapper to version 8.11.1. - Removed deprecated `windowInsets` and `animateItemPlacement` parameters in Compose components to align with latest API versions.
This commit is contained in:
@@ -4,14 +4,16 @@ import android.content.ContentValues
|
||||
import android.content.Context
|
||||
import android.database.Cursor
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Environment
|
||||
import android.provider.MediaStore
|
||||
import android.widget.Toast
|
||||
import coil.request.ImageRequest
|
||||
import coil.request.SuccessResult
|
||||
import androidx.core.graphics.drawable.toBitmap
|
||||
import coil3.asDrawable
|
||||
import coil3.request.ImageRequest
|
||||
import coil3.request.SuccessResult
|
||||
import coil3.request.allowHardware
|
||||
import com.aiosman.ravenow.utils.Utils.getImageLoader
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
@@ -30,8 +32,9 @@ object FileUtil {
|
||||
.allowHardware(false) // Disable hardware bitmaps.
|
||||
.build()
|
||||
|
||||
val result = (loader.execute(request) as SuccessResult).drawable
|
||||
val bitmap = (result as BitmapDrawable).bitmap
|
||||
val result = loader.execute(request) as? SuccessResult ?: return
|
||||
val drawable = result.image.asDrawable(context.resources)
|
||||
val bitmap = drawable.toBitmap()
|
||||
|
||||
val contentValues = ContentValues().apply {
|
||||
put(MediaStore.Images.Media.DISPLAY_NAME, "image_${System.currentTimeMillis()}.jpg")
|
||||
|
||||
@@ -4,8 +4,9 @@ import android.content.Context
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.BitmapFactory
|
||||
import android.net.Uri
|
||||
import coil.ImageLoader
|
||||
import coil.request.CachePolicy
|
||||
import coil3.ImageLoader
|
||||
import coil3.network.okhttp.OkHttpNetworkFetcherFactory
|
||||
import coil3.request.CachePolicy
|
||||
import com.aiosman.ravenow.data.api.AuthInterceptor
|
||||
import com.aiosman.ravenow.data.api.getSafeOkHttpClient
|
||||
import java.io.File
|
||||
@@ -32,7 +33,15 @@ object Utils {
|
||||
|
||||
val okHttpClient = getSafeOkHttpClient(authInterceptor = AuthInterceptor())
|
||||
val loader = ImageLoader.Builder(appContext)
|
||||
.okHttpClient(okHttpClient)
|
||||
.components {
|
||||
add(
|
||||
OkHttpNetworkFetcherFactory(
|
||||
callFactory = {
|
||||
okHttpClient
|
||||
}
|
||||
)
|
||||
)
|
||||
}
|
||||
.memoryCachePolicy(CachePolicy.ENABLED)
|
||||
.diskCachePolicy(CachePolicy.ENABLED)
|
||||
.build()
|
||||
|
||||
Reference in New Issue
Block a user