NTP-65280 | Shiv Natani | clickstream experiment fix (#16220)

This commit is contained in:
Shiv Natani
2025-05-20 12:49:53 +05:30
committed by GitHub
parent 44b1791bad
commit 78d13c542f
2 changed files with 15 additions and 12 deletions

View File

@@ -564,6 +564,7 @@ val NAVI_PAY_CONFIG_LIST =
UPI_SETTING_NON_ONBOARDING_CONFIG,
UPI_DEFAULT_ACCOUNT_SELECTION_CONFIG,
CHECK_BALANCE_TRANSACTION_ENTRY_POINT_CONFIG,
UPI_PSP_SELECTION_CONFIG,
)
enum class NaviPayExperimentVariantType(val value: String) {

View File

@@ -23,6 +23,7 @@ import com.navi.base.utils.orElse
import com.navi.base.utils.orFalse
import com.navi.base.utils.orTrue
import com.navi.base.utils.orZero
import com.navi.common.extensions.or
import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper
import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.NAVI_PMT_ONE_CLICK_CHECKOUT_API_TIMEOUT_MILLIS
import com.navi.common.network.models.isSuccessWithData
@@ -236,16 +237,14 @@ constructor(
pmsLinkedAccountUseCase.clear()
viewModelScope.safeLaunch {
val isOneClickCheckoutExperienceEnabled = isOneClickCheckoutExperienceEnabled()
naviPaymentAnalytics.onScreenLanded(
experimentVariantName = state.value.experimentVariantName
)
naviPaymentAnalytics.onScreenLanded(experimentVariantName = experimentVariant)
if (isOneClickCheckoutExperienceEnabled) {
linkedAccountChangeObserver()
} else {
naviPaymentAnalytics.onFallBackToPreviousFlow(
isOneCliCkCheckoutExperimentEnabled = false,
baseAttributes = paymentDataProvider.getAnalyticsParams(),
experimentVariantName = state.value.experimentVariantName,
experimentVariantName = experimentVariant,
)
_state.update { state.value.copy(isGetMethodsInProgress = false) }
}
@@ -283,7 +282,7 @@ constructor(
naviPaymentAnalytics.onBankAccountClicked(
selectedBankAccountId =
state.value.selectedAccount?.accountId.orEmpty(),
experimentVariantName = state.value.experimentVariantName,
experimentVariantName = experimentVariant,
)
updateIsBankAccountClicked(isBankAccountClicked = true)
triggerTokenGeneration(event.generateToken)
@@ -309,7 +308,7 @@ constructor(
naviPaymentAnalytics.onOtherMethodsCtaClicked(
selectedBankAccountId =
state.value.selectedAccount?.accountId.orEmpty(),
experimentVariantName = state.value.experimentVariantName,
experimentVariantName = experimentVariant,
)
updateOtherMethodsCtaLoader(isLoaderEnabled = true)
triggerTokenGeneration(event.generateToken)
@@ -568,7 +567,7 @@ constructor(
naviPaymentAnalytics.onFallBackToPreviousFlow(
isGetMethodsFailure = true,
baseAttributes = paymentDataProvider.getAnalyticsParams(),
experimentVariantName = state.value.experimentVariantName,
experimentVariantName = experimentVariant,
)
}
}
@@ -577,7 +576,7 @@ constructor(
naviPaymentAnalytics.onFallBackToPreviousFlow(
isTimeoutCancellationException = true,
baseAttributes = paymentDataProvider.getAnalyticsParams(),
experimentVariantName = state.value.experimentVariantName,
experimentVariantName = experimentVariant,
)
}
_state.update { state.value.copy(isGetMethodsInProgress = false) }
@@ -764,7 +763,7 @@ constructor(
screenLandToClickTime = (System.currentTimeMillis() - screenLandTime).toString(),
isMpinSetOfSelectedAccount = linkedAccountEntity.isMPinSet,
ctaAction = state.value.ctaAction.toString(),
experimentVariantName = state.value.experimentVariantName,
experimentVariantName = experimentVariant,
)
pspManagerAnalytics.onSetPinWithPspManager(
@@ -818,7 +817,7 @@ constructor(
screenLandToClickTime = (System.currentTimeMillis() - screenLandTime).toString(),
isMpinSetOfSelectedAccount = state.value.selectedAccount?.isMPinSet.orFalse(),
ctaAction = state.value.ctaAction.toString(),
experimentVariantName = state.value.experimentVariantName,
experimentVariantName = experimentVariant,
)
state.value.selectedAccount?.let {
val isPaymentFromLiteAccount = it.accountId.isAccountIdOfTypeUpiLite()
@@ -1209,7 +1208,7 @@ constructor(
isZeroConnectedAccounts = true,
isTimeoutCancellationException = false,
baseAttributes = paymentDataProvider.getAnalyticsParams(),
experimentVariantName = state.value.experimentVariantName,
experimentVariantName = experimentVariant,
)
return
}
@@ -1250,7 +1249,10 @@ constructor(
litmusExperimentsUseCase
.execute(experimentName = LITMUS_EXPERIMENT_NAVI_PMT_ONE_CLICK_CHECKOUT)
?.variant
experimentVariant = oneClickCheckoutExperimentVariant?.name.orEmpty()
experimentVariant =
oneClickCheckoutExperimentVariant
?.name
.or(Constants.OneClickCheckoutExperiment.CHEVRON_DOWN.experimentName)
val oneClickCheckoutExperiencePayloadJson =
(oneClickCheckoutExperimentVariant?.payload?.get("value") as? String)?.let {
JSONObject(it).optJSONObject(EXPERIMENT_DATA)