Api caching (#5509)
* Added Caching on all home page * removed cache files * Added flag for api caching * Fix multiple api calls * added fragment safe check * added in clear * refector * Fix loader issue on background * Fix issues * code cleanup * skip device details modifiy api * Fix Api Call missing * Code cleanup
This commit is contained in:
committed by
GitHub Enterprise
parent
4e84db2b5f
commit
8d07fb1417
@@ -191,9 +191,6 @@ class NewDashboardActivity :
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If you are adding new fragment here, please add in the hideFragments(fragmentTransaction) method too
|
||||
* */
|
||||
private fun getFragment(screen: String, bundle: Bundle?): Fragment {
|
||||
return when (screen) {
|
||||
HomeFragment.TAG -> HomeFragment.newInstance(bundle)
|
||||
@@ -412,9 +409,8 @@ class NewDashboardActivity :
|
||||
}
|
||||
|
||||
private fun checkForAppUpdate() {
|
||||
updateApp(screenName = com.navi.common.utils.Constants.HOME_LOAN) {
|
||||
updateAppDetails,
|
||||
startUpdatingApp ->
|
||||
updateApp(screenName = com.navi.common.utils.Constants.HOME_LOAN) { updateAppDetails,
|
||||
startUpdatingApp ->
|
||||
updateInAppDialog =
|
||||
UpdateInAppDialog(updateAppDetails, this) { startUpdatingApp.invoke() }
|
||||
updateInAppDialog.safelyShowDialog()
|
||||
@@ -629,14 +625,9 @@ class NewDashboardActivity :
|
||||
}
|
||||
|
||||
private fun hideFragments(fragmentTransaction: FragmentTransaction) {
|
||||
hideFragments(HomeFragment.TAG, fragmentTransaction)
|
||||
hideFragments(DashboardFragment.TAG, fragmentTransaction)
|
||||
hideFragments(ProfileFragment.TAG, fragmentTransaction)
|
||||
hideFragments(FundListingFragmentV2.TAG, fragmentTransaction)
|
||||
}
|
||||
|
||||
private fun hideFragments(tag: String, fragmentTransaction: FragmentTransaction) {
|
||||
val currentFragment: Fragment? = supportFragmentManager.findFragmentByTag(tag)
|
||||
currentFragment?.let { fragmentTransaction.hide(it) }
|
||||
val fragments = supportFragmentManager.fragments
|
||||
fragments.forEach { currentFragment ->
|
||||
currentFragment?.let { fragmentTransaction.hide(it) }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,6 @@ object FirebaseRemoteConfigHelper {
|
||||
const val RAGE_TAP_COUNT = "RAGE_TAP_COUNT"
|
||||
const val API_CACHING_TIME = "API_CACHING_TIME"
|
||||
const val API_CACHING_DISABLE = "API_CACHING_DISABLE"
|
||||
const val API_CACHING_DISABLE_SCREENS = "API_CACHING_DISABLE_SCREENS"
|
||||
const val RAGE_TAP_DELAY_TIME = "RAGE_TAP_DELAY_TIME"
|
||||
const val RETRY_COUNT_OF_SMS_INGESTION = "RETRY_COUNT_OF_SMS_INGESTION"
|
||||
const val GST_USERNAME_PASSWORD_MAX_LIMIT = "GST_USERNAME_PASSWORD_MAX_LIMIT"
|
||||
|
||||
@@ -22,7 +22,6 @@ import androidx.annotation.LayoutRes
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import com.google.android.play.core.appupdate.AppUpdateInfo
|
||||
@@ -121,7 +120,6 @@ abstract class BaseActivity :
|
||||
if (BaseUtils.isUserLoggedIn()) checkLocationPermission()
|
||||
inAppUpdate.addLifeCycleObserver(lifecycle)
|
||||
inAppUpdate.addInAppUpdateListener(this)
|
||||
TemporaryStorageHelper.addScreen(screenName)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
||||
@@ -18,7 +18,6 @@ import androidx.databinding.DataBindingUtil
|
||||
import androidx.databinding.ViewDataBinding
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import com.navi.common.R
|
||||
import com.navi.common.utils.TemporaryStorageHelper
|
||||
|
||||
abstract class BaseDialogFragment<T : ViewDataBinding>(
|
||||
@LayoutRes val layoutId: Int,
|
||||
@@ -41,7 +40,6 @@ abstract class BaseDialogFragment<T : ViewDataBinding>(
|
||||
savedInstanceState: Bundle?,
|
||||
): View? {
|
||||
binding = DataBindingUtil.inflate(inflater, layoutId, container, false, null)
|
||||
TemporaryStorageHelper.addScreen(screenName)
|
||||
return binding.root
|
||||
}
|
||||
|
||||
|
||||
@@ -158,7 +158,6 @@ abstract class BaseFragment : Fragment() {
|
||||
if (screenName.isNotBlank()) {
|
||||
NaviTrackEvent.startScreen(screenName, getStartScreenEventAttributes())
|
||||
}
|
||||
TemporaryStorageHelper.addScreen(screenName)
|
||||
NaviTrackEvent.sendScreenTransitionEvent(screenName)
|
||||
setupQueryMap()
|
||||
}
|
||||
|
||||
@@ -28,7 +28,6 @@ object TemporaryStorageHelper {
|
||||
private var viewVisible = HashMap<String, Boolean>()
|
||||
private var apiTs = HashMap<String, Long>()
|
||||
private var isScreenDataNeedsToUpdated = HashMap<String, Boolean>()
|
||||
private var screens = arrayListOf<String>()
|
||||
|
||||
fun clear() {
|
||||
homePageResponse = null
|
||||
@@ -62,10 +61,6 @@ object TemporaryStorageHelper {
|
||||
}
|
||||
|
||||
if (FirebaseRemoteConfigHelper.getBoolean(FirebaseRemoteConfigHelper.API_CACHING_DISABLE)
|
||||
|| isCachingDisableForThisFlow(
|
||||
screens,
|
||||
FirebaseRemoteConfigHelper.getString(FirebaseRemoteConfigHelper.API_CACHING_DISABLE_SCREENS)
|
||||
)
|
||||
|| isScreenDataNeedsToUpdated[key].orFalse()
|
||||
) {
|
||||
return true
|
||||
@@ -75,12 +70,4 @@ object TemporaryStorageHelper {
|
||||
|
||||
return lastApiCallTime > FirebaseRemoteConfigHelper.getLong(FirebaseRemoteConfigHelper.API_CACHING_TIME)
|
||||
}
|
||||
|
||||
fun addScreen(screenName: String) {
|
||||
screens.add(screenName)
|
||||
}
|
||||
|
||||
fun clearScreens() {
|
||||
screens.clear()
|
||||
}
|
||||
}
|
||||
@@ -13,8 +13,6 @@ import android.net.ConnectivityManager
|
||||
import android.os.Environment
|
||||
import android.view.View
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import com.google.common.reflect.TypeToken
|
||||
import com.google.gson.Gson
|
||||
import com.navi.analytics.appsflyer.AppsFlyerUtil
|
||||
import com.navi.base.sharedpref.CommonPrefConstants
|
||||
import com.navi.base.sharedpref.PreferenceManager
|
||||
@@ -224,18 +222,5 @@ fun cacheDirUri(fileName: String, applicationContext: Context): String {
|
||||
return "file://${applicationContext.externalCacheDir?.path}/$fileName"
|
||||
}
|
||||
|
||||
fun isCachingDisableForThisFlow(firstList: List<String>, secondData: String): Boolean {
|
||||
if (firstList.isEmpty() || secondData.isEmpty())
|
||||
return false
|
||||
val secondList =
|
||||
Gson().fromJson<List<String>>(secondData, object : TypeToken<List<String>>() {}.type)
|
||||
secondList.forEach {
|
||||
if (firstList.contains(it).orFalse()) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun downloadsDirUri(fileName: String) =
|
||||
"file://${Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).path}/$fileName"
|
||||
|
||||
@@ -95,7 +95,6 @@ abstract class BaseActivity : AppCompatActivity() {
|
||||
mapOf(Pair("type", "activity"))
|
||||
)
|
||||
}
|
||||
TemporaryStorageHelper.addScreen(screenName)
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
|
||||
@@ -27,7 +27,6 @@ import com.navi.common.network.models.ErrorMessage
|
||||
import com.navi.common.network.models.GenericErrorResponse
|
||||
import com.navi.common.ui.fragment.CommonDialogBox
|
||||
import com.navi.common.utils.CommonNaviAnalytics
|
||||
import com.navi.common.utils.TemporaryStorageHelper
|
||||
import com.navi.common.utils.getNetworkType
|
||||
import com.navi.insurance.R
|
||||
import com.navi.insurance.analytics.NaviInsuranceAnalytics
|
||||
@@ -73,7 +72,6 @@ abstract class BaseFragment : Fragment() {
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
NaviTrackEvent.sendScreenTransitionEvent(screenName)
|
||||
TemporaryStorageHelper.addScreen(screenName)
|
||||
return super.onCreateView(inflater, container, savedInstanceState)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user