NTP-76716 | Coil and Pager version Bump (#16769)

Co-authored-by: Shivam Goyal <shivam.goyal@navi.com>
This commit is contained in:
Soumya Ranjan Patra
2025-07-02 16:19:38 +05:30
committed by GitHub
parent b9616f7d8a
commit f5f9e30e83
71 changed files with 233 additions and 167 deletions

View File

@@ -121,6 +121,7 @@ android {
}
}
compileOptions {
coreLibraryDesugaringEnabled true
incremental true
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
@@ -286,6 +287,7 @@ dependencies {
implementation libs.androidx.ui.viewbinding
implementation libs.androidx.work.runtimeKtx
implementation libs.branch
implementation libs.coil.network.cache.control
implementation libs.coil.svg
implementation libs.dagger.hiltAndroid
implementation libs.facebook.applinks
@@ -334,6 +336,8 @@ dependencies {
implementation("com.facebook.react:hermes-engine:+") {
exclude group: 'com.facebook.fbjni'
}
coreLibraryDesugaring libs.android.desugarJdkLibs
}
apply from: project(':react-native-config').projectDir.getPath() + '/dotenv.gradle'

View File

@@ -11,8 +11,9 @@ import android.util.Log
import androidx.appcompat.app.AppCompatDelegate
import androidx.hilt.work.HiltWorkerFactory
import androidx.work.Configuration
import coil.ImageLoader
import coil.ImageLoaderFactory
import coil3.ImageLoader
import coil3.PlatformContext
import coil3.SingletonImageLoader
import com.navi.base.cache.repository.NaviCacheRepository
import com.navi.base.utils.TrustedTimeClientAccessor
import com.navi.bbps.common.model.NaviBbpsManager
@@ -30,7 +31,8 @@ import dagger.hilt.android.HiltAndroidApp
import javax.inject.Inject
@HiltAndroidApp
open class NaviApplication : BaseApplication(), ImageLoaderFactory, Configuration.Provider {
open class NaviApplication :
BaseApplication(), SingletonImageLoader.Factory, Configuration.Provider {
companion object {
lateinit var instance: NaviApplication
}
@@ -75,7 +77,8 @@ open class NaviApplication : BaseApplication(), ImageLoaderFactory, Configuratio
fun isDifferentPackage() = isDifferentPackageValue
override fun newImageLoader(): ImageLoader = imageLoaderProvider.createImageLoader()
override fun newImageLoader(context: PlatformContext): ImageLoader =
imageLoaderProvider.createImageLoader()
override val workManagerConfiguration: Configuration
get() =

View File

@@ -8,11 +8,15 @@
package com.naviapp.app.image
import android.content.Context
import coil.ImageLoader
import coil.annotation.ExperimentalCoilApi
import coil.decode.SvgDecoder
import coil.imageLoader
import coil.memory.MemoryCache
import coil3.ImageLoader
import coil3.annotation.ExperimentalCoilApi
import coil3.imageLoader
import coil3.memory.MemoryCache
import coil3.network.NetworkFetcher
import coil3.network.cachecontrol.CacheControlCacheStrategy
import coil3.network.okhttp.OkHttpNetworkFetcherFactory
import coil3.request.allowHardware
import coil3.svg.SvgDecoder
import com.navi.analytics.utils.NaviTrackEvent
import com.navi.common.di.CoroutineDispatcherProvider
import dagger.hilt.android.qualifiers.ApplicationContext
@@ -27,12 +31,19 @@ constructor(
) : ImageLibraryHandler {
fun createImageLoader(): ImageLoader {
return ImageLoader.Builder(context)
.components { add(SvgDecoder.Factory()) }
.components {
add(SvgDecoder.Factory())
add(cacheControlEnabledCustomFactory())
}
.allowHardware(false)
.build()
}
@OptIn(ExperimentalCoilApi::class)
private fun cacheControlEnabledCustomFactory(): NetworkFetcher.Factory {
return OkHttpNetworkFetcherFactory(cacheStrategy = { CacheControlCacheStrategy() })
}
override suspend fun removeImageCache(imageUrl: String) {
withContext(coroutineDispatcherProvider.io) {
NaviTrackEvent.trackEventOnClickStream(
@@ -50,7 +61,6 @@ constructor(
return imageUrl.hashCode().toString()
}
@OptIn(ExperimentalCoilApi::class)
override suspend fun clearImageCache() {
withContext(coroutineDispatcherProvider.io) {
NaviTrackEvent.trackEventOnClickStream(eventName = "CacheCleaner_clearImageCache")

View File

@@ -33,8 +33,9 @@ import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import coil.compose.AsyncImage
import coil.request.ImageRequest
import coil3.compose.AsyncImage
import coil3.request.ImageRequest
import coil3.request.allowHardware
import com.navi.naviwidgets.R
import com.navi.naviwidgets.utils.NaviWidgetIconUtils.getImageFromIconCode
import com.naviapp.home.utils.shimmerEffect

View File

@@ -32,7 +32,7 @@ import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.Observer
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.lifecycle.distinctUntilChanged
import coil.compose.AsyncImage
import coil3.compose.AsyncImage
import com.navi.base.model.ActionData
import com.navi.common.utils.EMPTY
import com.navi.common.utils.toActionData

View File

@@ -32,8 +32,9 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import coil.compose.AsyncImage
import coil.request.ImageRequest
import coil3.compose.AsyncImage
import coil3.request.ImageRequest
import coil3.request.allowHardware
import com.navi.design.font.FontWeightEnum
import com.navi.design.font.getFontWeight
import com.navi.design.font.naviFontFamily

View File

@@ -71,8 +71,9 @@ import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import coil.compose.AsyncImage
import coil.request.ImageRequest
import coil3.compose.AsyncImage
import coil3.request.ImageRequest
import coil3.request.allowHardware
import com.google.gson.Gson
import com.navi.adverse.sdk.ui.AdverseViewRoot
import com.navi.base.utils.orTrue

View File

@@ -32,8 +32,9 @@ import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.Density
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import coil.compose.AsyncImage
import coil.request.ImageRequest
import coil3.compose.AsyncImage
import coil3.request.ImageRequest
import coil3.request.allowHardware
import com.airbnb.lottie.compose.LottieAnimation
import com.airbnb.lottie.compose.LottieCompositionSpec
import com.airbnb.lottie.compose.LottieConstants

View File

@@ -31,8 +31,9 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import coil.compose.AsyncImage
import coil.request.ImageRequest
import coil3.compose.AsyncImage
import coil3.request.ImageRequest
import coil3.request.allowHardware
import com.airbnb.lottie.compose.LottieAnimation
import com.airbnb.lottie.compose.LottieCompositionSpec
import com.airbnb.lottie.compose.animateLottieCompositionAsState