refactor(di): move out Coil configuration to an AppPlugin

This commit is contained in:
Harsh Shandilya 2022-11-13 21:10:57 +05:30
parent 93db17e6d7
commit 157fe2c221
No known key found for this signature in database
3 changed files with 42 additions and 24 deletions

View file

@ -7,10 +7,6 @@
package dev.msfjarvis.claw.android
import android.app.Application
import coil.ImageLoader
import coil.ImageLoaderFactory
import coil.disk.DiskCache
import coil.memory.MemoryCache
import dev.msfjarvis.claw.core.injection.AppPlugin
import dev.msfjarvis.claw.injection.Components
import dev.msfjarvis.claw.injection.scopes.AppScope
@ -19,7 +15,7 @@ import tangle.inject.TangleGraph
import tangle.inject.TangleScope
@TangleScope(AppScope::class)
class ClawApplication : Application(), ImageLoaderFactory {
class ClawApplication : Application() {
@Inject lateinit var plugins: Set<@JvmSuppressWildcards AppPlugin>
@ -31,23 +27,4 @@ class ClawApplication : Application(), ImageLoaderFactory {
TangleGraph.inject(this)
plugins.forEach { plugin -> plugin.apply(this) }
}
override fun newImageLoader(): ImageLoader {
return ImageLoader.Builder(this)
.memoryCache { MemoryCache.Builder(this).maxSizePercent(MEMORY_CACHE_RATIO).build() }
.diskCache {
DiskCache.Builder()
.directory(cacheDir.resolve("image_cache"))
.maxSizeBytes(DISK_CACHE_MAX_SIZE)
.build()
}
// Show a short crossfade when loading images asynchronously.
.crossfade(true)
.build()
}
private companion object {
private const val MEMORY_CACHE_RATIO = 0.25
private const val DISK_CACHE_MAX_SIZE = 25L * 1024 * 1024 // 25 MB
}
}