NTP-45681 | Change update timestamp logic (#15315)

This commit is contained in:
Kamalesh Garnayak
2025-03-11 11:17:22 +05:30
committed by GitHub
parent 30da4e8da1
commit 0539216432
3 changed files with 24 additions and 17 deletions

View File

@@ -24,6 +24,6 @@ const val TIME_TAKEN = "timeTaken"
const val DATA_PROCESSED = "dataProcessed"
const val BUSINESS_UNIT = "businessUnit"
const val WEB_REDIRECTION_FIRST_LAUNCH_TIMESTAMP = "web_redirection_first_launch_timestamp"
const val WEB_REDIRECTION_FIRST_LAUNCH = "web_redirection_first_launch"
const val WEB_REDIRECTION_SUBSEQUENT_LAUNCH = "web_redirection_subsequent_launch"
const val WEB_REDIRECTION_FIRST_LAUNCH = "redirection_to_web_first_launch"
const val WEB_REDIRECTION_SUBSEQUENT_LAUNCH = "redirection_to_web_subsequent_launch"
const val DELAY_IN_MS = "delay_in_ms"

View File

@@ -29,12 +29,6 @@ fun setFirstLaunchTimestamp(timestamp: Long) {
PreferenceManager.setLongPreference(WEB_REDIRECTION_FIRST_LAUNCH_TIMESTAMP, timestamp)
}
fun updateFirstLaunchTimestampIfNeeded() {
if (getFirstLaunchTimestamp() == 0L) {
setFirstLaunchTimestamp(System.currentTimeMillis())
}
}
fun getFirstLaunchTimestamp(): Long {
return PreferenceManager.getLongPreference(WEB_REDIRECTION_FIRST_LAUNCH_TIMESTAMP, 0L)
}
@@ -43,16 +37,19 @@ fun calculateRedirectDelayForSmsUpload(
preSignedUrlListResponse: PreSignedUrlListResponse?,
webRedirectionData: WebRedirectionData?,
): Long {
val smsUploadStatus =
val isSmsDataNeededToUpload =
preSignedUrlListResponse
?.preSignedUrlList
?.find { it.ingestionType == IngestionType.SMS.name }
?.upload
.orFalse()
return if (smsUploadStatus) {
FirebaseRemoteConfigHelper.getLong(WEB_REDIRECTION_SMS_UPLOADED_DELAY_IN_MILLIS, 0L)
} else {
return if (isSmsDataNeededToUpload) {
webRedirectionData?.webRedirectionDelayInMillis
?: FirebaseRemoteConfigHelper.getLong(WEB_REDIRECTION_DEFAULT_DELAY_IN_MILLIS, 2000L)
?: FirebaseRemoteConfigHelper.getLong(
WEB_REDIRECTION_SMS_UPLOADED_DELAY_IN_MILLIS,
2000L,
)
} else {
FirebaseRemoteConfigHelper.getLong(WEB_REDIRECTION_DEFAULT_DELAY_IN_MILLIS, 0L)
}
}

View File

@@ -27,6 +27,7 @@ import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.WEB_REDIR
import com.navi.common.network.models.GenericErrorResponse
import com.navi.common.useruploaddata.model.PreSignedUrlListResponse
import com.navi.common.utils.Constants.URL
import com.navi.common.utils.Constants.VERTICAL_TYPE
import com.navi.common.utils.buildUrlWithParameters
import com.navi.common.utils.isValidResponse
import com.navi.common.viewmodel.BaseVM
@@ -36,6 +37,7 @@ import com.naviapp.common.navigator.NaviDeepLinkNavigator.WEB_URL
import com.naviapp.utils.Constants
import com.naviapp.utils.getVersionCode
import com.naviapp.utils.toMutableMap
import com.naviapp.webredirection.presentation.utils.APPLICATION_TYPE
import com.naviapp.webredirection.presentation.utils.CODE_VERIFIER
import com.naviapp.webredirection.presentation.utils.DELAY_IN_MS
import com.naviapp.webredirection.presentation.utils.RANDOM_STRING_LENGTH
@@ -49,7 +51,7 @@ import com.naviapp.webredirection.presentation.utils.WEB_REDIRECTION_SUBTITLE
import com.naviapp.webredirection.presentation.utils.WEB_REDIRECTION_TITLE
import com.naviapp.webredirection.presentation.utils.calculateRedirectDelayForSmsUpload
import com.naviapp.webredirection.presentation.utils.isFirstLaunchIn24Hours
import com.naviapp.webredirection.presentation.utils.updateFirstLaunchTimestampIfNeeded
import com.naviapp.webredirection.presentation.utils.setFirstLaunchTimestamp
import dagger.hilt.android.lifecycle.HiltViewModel
import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject
@@ -134,9 +136,13 @@ constructor(
)
analyticsTracker.webRedirectionEvent(
eventName = WEB_REDIRECTION_FIRST_LAUNCH,
eventValues = mapOf(DELAY_IN_MS to webRedirectionDelay.toString()),
eventValues =
mapOf(
DELAY_IN_MS to webRedirectionDelay.toString(),
VERTICAL_TYPE to getValueFromMap(APPLICATION_TYPE).orEmpty(),
),
)
updateFirstLaunchTimestampIfNeeded()
setFirstLaunchTimestamp(System.currentTimeMillis())
} else {
webRedirectionDelay =
calculateRedirectDelayForSmsUpload(
@@ -145,7 +151,11 @@ constructor(
)
analyticsTracker.webRedirectionEvent(
eventName = WEB_REDIRECTION_SUBSEQUENT_LAUNCH,
eventValues = mapOf(DELAY_IN_MS to webRedirectionDelay.toString()),
eventValues =
mapOf(
DELAY_IN_MS to webRedirectionDelay.toString(),
VERTICAL_TYPE to getValueFromMap(APPLICATION_TYPE).orEmpty(),
),
)
}
delay(webRedirectionDelay)