HapeLee 5 месяцев назад
Родитель
Сommit
1e8365ec47

+ 8 - 1
app/src/main/java/io/legado/app/App.kt

@@ -10,6 +10,8 @@ import android.content.res.Configuration
 import android.graphics.BitmapFactory
 import android.os.Build
 import androidx.core.graphics.scale
+import coil.ImageLoader
+import coil.ImageLoaderFactory
 import com.github.liuyueyi.quick.transfer.constants.TransType
 import com.google.android.material.color.DynamicColors
 import com.google.android.material.color.DynamicColorsOptions
@@ -64,6 +66,7 @@ import io.legado.app.utils.getPrefString
 import io.legado.app.utils.isDebuggable
 import kotlinx.coroutines.launch
 import org.chromium.base.ThreadUtils
+import org.koin.android.ext.android.get
 import org.koin.android.ext.koin.androidContext
 import org.koin.core.context.GlobalContext.startKoin
 import splitties.init.appCtx
@@ -73,10 +76,14 @@ import java.net.URL
 import java.util.concurrent.TimeUnit
 import java.util.logging.Level
 
-class App : Application() {
+class App : Application(), ImageLoaderFactory {
 
     private lateinit var oldConfig: Configuration
 
+    override fun newImageLoader(): ImageLoader {
+        return get()
+    }
+
     override fun onCreate() {
         startKoin {
             androidContext(this@App)

+ 3 - 2
app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt

@@ -7,7 +7,7 @@ import android.graphics.Bitmap
 import android.net.Uri
 import androidx.core.graphics.drawable.toBitmap
 import androidx.lifecycle.viewModelScope
-import coil.imageLoader
+import coil.ImageLoader
 import coil.request.SuccessResult
 import io.legado.app.R
 import io.legado.app.base.BaseViewModel
@@ -78,6 +78,7 @@ class BookInfoViewModel(
     private val changeBookSourceUseCase: ChangeBookSourceUseCase,
     private val clearBookCacheUseCase: ClearBookCacheUseCase,
     private val bookGroupRepository: BookGroupRepository,
+    private val imageLoader: ImageLoader,
 ) : BaseViewModel(application) {
 
     val allGroups = bookGroupRepository.flowAll()
@@ -467,7 +468,7 @@ class BookInfoViewModel(
                 loadOnlyWifi = CoverConfig.loadCoverOnlyWifi,
                 crossfade = false
             )
-            val result = context.imageLoader.execute(request)
+            val result = imageLoader.execute(request)
             if (result is SuccessResult) {
                 val bitmap = result.drawable.toBitmap()
                 val outputStream = ByteArrayOutputStream()