|
1 | 1 | package com.threegap.bitnagil |
2 | 2 |
|
3 | 3 | import android.app.Application |
| 4 | +import coil3.ImageLoader |
| 5 | +import coil3.PlatformContext |
| 6 | +import coil3.SingletonImageLoader |
| 7 | +import coil3.disk.DiskCache |
| 8 | +import coil3.memory.MemoryCache |
| 9 | +import coil3.network.okhttp.OkHttpNetworkFetcherFactory |
| 10 | +import coil3.request.CachePolicy |
| 11 | +import coil3.request.crossfade |
| 12 | +import coil3.util.DebugLogger |
4 | 13 | import com.kakao.sdk.common.KakaoSdk |
| 14 | +import com.threegap.bitnagil.di.core.CoilEntryPoint |
| 15 | +import dagger.hilt.EntryPoints |
5 | 16 | import dagger.hilt.android.HiltAndroidApp |
| 17 | +import okio.Path.Companion.toOkioPath |
6 | 18 |
|
7 | 19 | @HiltAndroidApp |
8 | | -class BitnagilApplication : Application() { |
| 20 | +class BitnagilApplication : Application(), SingletonImageLoader.Factory { |
| 21 | + |
9 | 22 | override fun onCreate() { |
10 | 23 | super.onCreate() |
11 | 24 | initKakaoSdk() |
12 | 25 | } |
13 | 26 |
|
| 27 | + override fun newImageLoader(context: PlatformContext): ImageLoader { |
| 28 | + val okHttpClient = EntryPoints |
| 29 | + .get(this, CoilEntryPoint::class.java) |
| 30 | + .noneAuthOkHttpClient() |
| 31 | + |
| 32 | + return ImageLoader.Builder(context) |
| 33 | + .components { add(OkHttpNetworkFetcherFactory(callFactory = { okHttpClient })) } |
| 34 | + .memoryCache { |
| 35 | + MemoryCache.Builder() |
| 36 | + .maxSizePercent(context, percent = 0.25) |
| 37 | + .build() |
| 38 | + } |
| 39 | + .diskCache { |
| 40 | + DiskCache.Builder() |
| 41 | + .directory(cacheDir.resolve("image_cache").toOkioPath()) |
| 42 | + .maxSizeBytes(50L * 1024 * 1024) |
| 43 | + .build() |
| 44 | + } |
| 45 | + .memoryCachePolicy(CachePolicy.ENABLED) |
| 46 | + .diskCachePolicy(CachePolicy.ENABLED) |
| 47 | + .crossfade(true) |
| 48 | + .logger(if (BuildConfig.DEBUG) DebugLogger() else null) |
| 49 | + .build() |
| 50 | + } |
| 51 | + |
14 | 52 | private fun initKakaoSdk() { |
15 | 53 | KakaoSdk.init(this, BuildConfig.KAKAO_NATIVE_APP_KEY) |
16 | 54 | } |
|
0 commit comments