NTP-58558 put home screen hash in preference manager and pass it in h… (#15950)
This commit is contained in:
@@ -10,6 +10,7 @@ package com.naviapp.home.usecase
|
||||
import com.google.gson.Gson
|
||||
import com.navi.base.AppServiceManager
|
||||
import com.navi.base.cache.model.NaviCacheAltSourceEntity
|
||||
import com.navi.base.sharedpref.PreferenceManager
|
||||
import com.navi.base.utils.ConnectivityObserver
|
||||
import com.navi.common.alchemist.model.AlchemistScreenDefinition
|
||||
import com.navi.common.alchemist.model.AlchemistScreenRequest
|
||||
@@ -23,6 +24,7 @@ import com.naviapp.app.NaviApplication
|
||||
import com.naviapp.home.respository.HomeRepository
|
||||
import com.naviapp.network.di.DataSerializers
|
||||
import com.naviapp.utils.Constants.HOME_SCREEN_IN_CAPS
|
||||
import com.naviapp.utils.Constants.HOME_SCREEN_SCREEN_HASH
|
||||
import javax.inject.Inject
|
||||
|
||||
class FetchHomeItemsUseCase
|
||||
@@ -48,7 +50,21 @@ constructor(
|
||||
FirebaseRemoteConfigHelper.getBoolean(
|
||||
FirebaseRemoteConfigHelper.SEND_SCREEN_HASH_IN_HOME_SCREEN_API
|
||||
)
|
||||
val screenHashForApi = if (shouldSendScreenHashInApi) screenHash else null
|
||||
|
||||
val preferenceScreenHash = PreferenceManager.getStringPreference(HOME_SCREEN_SCREEN_HASH)
|
||||
val refreshScreenHashOnAppRelaunch =
|
||||
FirebaseRemoteConfigHelper.getBoolean(
|
||||
FirebaseRemoteConfigHelper.REFRESH_HOME_SCREEN_HASH_ON_APP_RELAUNCH
|
||||
)
|
||||
|
||||
val overridenScreenHash =
|
||||
when {
|
||||
screenHash.isNullOrEmpty() && !refreshScreenHashOnAppRelaunch ->
|
||||
preferenceScreenHash
|
||||
else -> screenHash
|
||||
}
|
||||
|
||||
val screenHashForApi = if (shouldSendScreenHashInApi) overridenScreenHash else null
|
||||
|
||||
val deviceInfoDetails =
|
||||
(AppServiceManager.application as NaviApplication)
|
||||
|
||||
@@ -51,6 +51,7 @@ import com.naviapp.home.usecase.HandleUpiUseCase
|
||||
import com.naviapp.home.usecase.HomeContentProcessingUseCase
|
||||
import com.naviapp.nux.handler.NewUserExperienceHandler
|
||||
import com.naviapp.utils.Constants.EmailConstants.IS_USER_EMAIL_SUBMITTED
|
||||
import com.naviapp.utils.Constants.HOME_SCREEN_SCREEN_HASH
|
||||
import com.naviapp.utils.Constants.HomePageConstants.FETCH_HOME_ITEMS_TIMEOUT
|
||||
import com.naviapp.utils.SelectiveRefreshHandler
|
||||
import dagger.Lazy
|
||||
@@ -204,6 +205,12 @@ constructor(
|
||||
viewModelScope.safeLaunch(Dispatchers.IO) {
|
||||
handleDataModification()
|
||||
val screenHash = state.value.screenMetaData?.get(SCREEN_HASH)
|
||||
if (screenHash.isNotNullAndNotEmpty()) {
|
||||
PreferenceManager.setStringPreference(
|
||||
HOME_SCREEN_SCREEN_HASH,
|
||||
screenHash.orEmpty(),
|
||||
)
|
||||
}
|
||||
with(viewModelScope) {
|
||||
homeContentProcessingUseCase.syncHomeContentData(
|
||||
isFirstTimeRender = state.value.isRenderingFirstTime,
|
||||
|
||||
@@ -230,6 +230,7 @@ object Constants {
|
||||
const val BLOCK_NOTIFICATION = "blockNotification"
|
||||
const val TOPIC = "topic"
|
||||
const val UNKNOWN_ERROR = "Unknown error"
|
||||
const val HOME_SCREEN_SCREEN_HASH = "HOME_SCREEN_SCREEN_HASH"
|
||||
|
||||
object Notification {
|
||||
const val HIDE_NOTIFICATION_COUNT = "hideNotificationCount"
|
||||
|
||||
@@ -24,6 +24,7 @@ object FirebaseRemoteConfigHelper {
|
||||
|
||||
private const val CONFIG_SYNC_INTERVAL: Long = 60 * 60
|
||||
const val SEND_SCREEN_HASH_IN_HOME_SCREEN_API = "SEND_SCREEN_HASH_IN_HOME_SCREEN_API"
|
||||
const val REFRESH_HOME_SCREEN_HASH_ON_APP_RELAUNCH = "REFRESH_HOME_SCREEN_HASH_ON_APP_RELAUNCH"
|
||||
const val HOME_SCREEN_IMPRESSION_THRESHOLD = "HOME_SCREEN_IMPRESSION_THRESHOLD"
|
||||
const val ADS_IMPRESSION_THRESHOLD = "ADS_IMPRESSION_THRESHOLD"
|
||||
const val ADVERSE_EVENT_SYNC_BATCH_SIZE = "ADVERSE_EVENT_SYNC_BATCH_SIZE"
|
||||
|
||||
@@ -557,6 +557,10 @@
|
||||
<key>NAVI_PAY_SEND_MONEY_FTUE_LIMIT</key>
|
||||
<value>3</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>REFRESH_HOME_SCREEN_HASH_ON_APP_RELAUNCH</key>
|
||||
<value>true</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>HOME_SCREEN_IMPRESSION_THRESHOLD</key>
|
||||
<value>1.0</value>
|
||||
|
||||
Reference in New Issue
Block a user