mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 08:17:04 +05:30
android: use AsyncImage for images
* Coil recommends using clip instead of CircleCropTransformation for compose. * Enable crossfade by default * Allow caching images * Run spotlessApply Closes #320 Signed-off-by: Rahul Krishna <Rahulkrishna585@gmail.com>
This commit is contained in:
parent
bb2213ff86
commit
642484a9a9
4 changed files with 29 additions and 19 deletions
|
@ -35,6 +35,7 @@ dependencies {
|
|||
implementation(libs.androidx.lifecycle.compose)
|
||||
implementation(libs.androidx.navigation.compose)
|
||||
implementation(libs.androidx.paging.compose)
|
||||
implementation(libs.coil)
|
||||
implementation(libs.copydown)
|
||||
implementation(libs.dagger.hilt.android)
|
||||
implementation(libs.material.motion.core)
|
||||
|
|
|
@ -5,11 +5,15 @@ import android.os.StrictMode
|
|||
import android.util.Log
|
||||
import androidx.hilt.work.HiltWorkerFactory
|
||||
import androidx.work.Configuration
|
||||
import coil.ImageLoader
|
||||
import coil.ImageLoaderFactory
|
||||
import coil.disk.DiskCache
|
||||
import coil.memory.MemoryCache
|
||||
import dagger.hilt.android.HiltAndroidApp
|
||||
import javax.inject.Inject
|
||||
|
||||
@HiltAndroidApp
|
||||
class ClawApplication : Application(), Configuration.Provider {
|
||||
class ClawApplication : Application(), Configuration.Provider, ImageLoaderFactory {
|
||||
@Inject lateinit var workerFactory: HiltWorkerFactory
|
||||
|
||||
override fun onCreate() {
|
||||
|
@ -26,4 +30,18 @@ class ClawApplication : Application(), Configuration.Provider {
|
|||
.setWorkerFactory(workerFactory)
|
||||
.build()
|
||||
}
|
||||
|
||||
override fun newImageLoader(): ImageLoader {
|
||||
return ImageLoader.Builder(this)
|
||||
.memoryCache { MemoryCache.Builder(this).maxSizePercent(0.25).build() }
|
||||
.diskCache {
|
||||
DiskCache.Builder()
|
||||
.directory(cacheDir.resolve("image_cache"))
|
||||
.maxSizeBytes(25L * 1024 * 1024) // 25 MB
|
||||
.build()
|
||||
}
|
||||
// Show a short crossfade when loading images asynchronously.
|
||||
.crossfade(true)
|
||||
.build()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue