NTP-19516 | Shiv Natani | enabled christmas celebration experience (#14150)
This commit is contained in:
@@ -41,7 +41,9 @@ import com.navi.pay.common.ui.FullScreenLottie
|
||||
import com.navi.pay.common.ui.FullScreenLottieV2
|
||||
import com.navi.pay.common.ui.NaviPayLottieAnimationV2
|
||||
import com.navi.pay.common.utils.NaviPayMediaPlayer
|
||||
import com.navi.pay.utils.NAVI_PAY_PAYMENT_PROGRESS_CHRISTMAS_CELEBRATION_LOTTIE
|
||||
import com.navi.pay.utils.NAVI_PAY_PAYMENT_PROGRESS_LOTTIE
|
||||
import com.navi.pay.utils.NAVI_PAY_PAYMENT_SUCCESSFUL_CHRISTMAS_CELEBRATION_LOTTIE
|
||||
import com.navi.pay.utils.NAVI_PAY_PAYMENT_SUCCESSFUL_MAIN_LOTTIE_V2
|
||||
import com.navi.pay.utils.clearBackStackUpToAndNavigate
|
||||
import com.navi.pay.utils.getDisplayableAmount
|
||||
@@ -126,6 +128,10 @@ fun TransactionPollingScreen(
|
||||
NaviPayMediaPlayer(activityRef = WeakReference(naviPaymentActivity))
|
||||
}
|
||||
|
||||
val isChristmasCelebrationExperimentEnabled by
|
||||
transactionPollingViewModel.isChristmasCelebrationExperimentEnabled
|
||||
.collectAsStateWithLifecycle()
|
||||
|
||||
val finishWithData: (statusResponse: TransactionStatusResponse?) -> Unit = {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
naviPaymentActivity.setTranslucent(false)
|
||||
@@ -236,7 +242,10 @@ fun TransactionPollingScreen(
|
||||
FullScreenLottie(lottieFileName = "gold_processing_transaction_lottie.json")
|
||||
} else {
|
||||
FullScreenLottieV2(
|
||||
lottieFileName = NAVI_PAY_PAYMENT_PROGRESS_LOTTIE,
|
||||
lottieFileName =
|
||||
if (isChristmasCelebrationExperimentEnabled)
|
||||
NAVI_PAY_PAYMENT_PROGRESS_CHRISTMAS_CELEBRATION_LOTTIE
|
||||
else NAVI_PAY_PAYMENT_PROGRESS_LOTTIE,
|
||||
title =
|
||||
stringResource(
|
||||
id = R.string.payment_in_progress_v2,
|
||||
@@ -248,7 +257,10 @@ fun TransactionPollingScreen(
|
||||
}
|
||||
is PollingScreenState.Success -> {
|
||||
NaviPayLottieAnimationV2(
|
||||
lottieFileName = NAVI_PAY_PAYMENT_SUCCESSFUL_MAIN_LOTTIE_V2,
|
||||
lottieFileName =
|
||||
if (isChristmasCelebrationExperimentEnabled)
|
||||
NAVI_PAY_PAYMENT_SUCCESSFUL_CHRISTMAS_CELEBRATION_LOTTIE
|
||||
else NAVI_PAY_PAYMENT_SUCCESSFUL_MAIN_LOTTIE_V2,
|
||||
onAnimationEnd = {
|
||||
finishWithData.invoke((screenState as PollingScreenState.Success).data)
|
||||
},
|
||||
|
||||
@@ -15,10 +15,13 @@ import com.navi.base.utils.MILLISECONDS_PER_SECOND
|
||||
import com.navi.base.utils.SUCCESS
|
||||
import com.navi.base.utils.isNotNull
|
||||
import com.navi.base.utils.isNotNullAndNotEmpty
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.common.model.RequestConfig
|
||||
import com.navi.common.network.models.isSuccessWithData
|
||||
import com.navi.common.usecase.LitmusExperimentsUseCase
|
||||
import com.navi.pay.R
|
||||
import com.navi.pay.common.theme.color.NaviPayColor
|
||||
import com.navi.pay.utils.LITMUS_EXPERIMENT_NAVIPAY_CHRISTMAS_CELEBRATION
|
||||
import com.navi.payment.model.common.SignalPaymentData
|
||||
import com.navi.payment.nativepayment.NaviPaymentAnalyticScreenName
|
||||
import com.navi.payment.nativepayment.common.usecase.TransactionStatusUseCase
|
||||
@@ -62,7 +65,8 @@ constructor(
|
||||
savedStateHandle: SavedStateHandle,
|
||||
private val paymentRepository: PaymentRepository,
|
||||
private val dataProvider: PaymentDataProvider,
|
||||
private val transactionStatusUseCase: TransactionStatusUseCase
|
||||
private val transactionStatusUseCase: TransactionStatusUseCase,
|
||||
private val litmusExperimentsUseCase: LitmusExperimentsUseCase
|
||||
) : NaviPaymentBaseVM(NaviPaymentAnalyticScreenName.TRANSACTION_POLLING_SCREEN.screenName) {
|
||||
|
||||
private val token = savedStateHandle.get<String>("token").orEmpty()
|
||||
@@ -93,8 +97,13 @@ constructor(
|
||||
private val _statusBarColorForLottieTransition = MutableSharedFlow<Int>()
|
||||
val statusBarColorForLottieTransition = _statusBarColorForLottieTransition.asSharedFlow()
|
||||
|
||||
private val _isChristmasCelebrationExperimentEnabled = MutableStateFlow(false)
|
||||
val isChristmasCelebrationExperimentEnabled =
|
||||
_isChristmasCelebrationExperimentEnabled.asStateFlow()
|
||||
|
||||
init {
|
||||
pollTransactionStatus()
|
||||
setLitmusExperimentValues()
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
transactionStatusUseCase.deleteTransactionStatusRequest(
|
||||
request?.transactionReferenceId.orEmpty()
|
||||
@@ -102,6 +111,18 @@ constructor(
|
||||
}
|
||||
}
|
||||
|
||||
private fun setLitmusExperimentValues() {
|
||||
viewModelScope.safeLaunch(Dispatchers.IO) {
|
||||
_isChristmasCelebrationExperimentEnabled.update {
|
||||
litmusExperimentsUseCase
|
||||
.execute(experimentName = LITMUS_EXPERIMENT_NAVIPAY_CHRISTMAS_CELEBRATION)
|
||||
?.variant
|
||||
?.enabled
|
||||
.orFalse()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun pollTransactionStatus(pollingCount: Int = 0) {
|
||||
viewModelScope.launch {
|
||||
val transactionStatusData =
|
||||
|
||||
Reference in New Issue
Block a user