From 34a14b65e97cf74d89f0eeb95661b52e241f8c44 Mon Sep 17 00:00:00 2001 From: Shiv Natani Date: Fri, 27 Dec 2024 17:33:17 +0530 Subject: [PATCH] NTP-23190 | Shiv Natani | burn banner coroutine initialise fix (#14362) --- .../nativepayment/viewmodel/MPSViewModel.kt | 57 +++++++++---------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/viewmodel/MPSViewModel.kt b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/viewmodel/MPSViewModel.kt index da7f70f870..5dd76b3856 100644 --- a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/viewmodel/MPSViewModel.kt +++ b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/viewmodel/MPSViewModel.kt @@ -221,7 +221,6 @@ constructor( } viewModelScope.launch(Dispatchers.IO) { getNaviUpiConnectedAccounts() } viewModelScope.safeLaunch { collectIsDiscountAlreadyApplied() } - viewModelScope.safeLaunch { getRewardInfoV2() } } private fun getPaymentMethodData() { @@ -282,8 +281,12 @@ constructor( ) updatePaymentAmount(methodDetails.amount?.value.orZero()) updateLottieConfig(methodDetails.loaderConfig) - _coinBurnDetails.update { methodDetails.coinDetails } - _coinEarnBannerDetails.update { methodDetails.bannerDetails?.coinRewards } + if (paymentSdkInitParams?.rewardsInfo?.isEnabled.orFalse()) { + getRewardInfoV2() + } else { + _coinBurnDetails.update { methodDetails.coinDetails } + _coinEarnBannerDetails.update { methodDetails.bannerDetails?.coinRewards } + } methodDetails.availablePaymentInstruments?.let { processAvailablePaymentMethods(it) } } } @@ -913,35 +916,27 @@ constructor( } private fun getRewardInfoV2() { - if (paymentSdkInitParams?.rewardsInfo?.isEnabled.orFalse()) { - naviPaymentAnalytics.onOfferExperienceBannerShown( - rewardsInfoV2 = paymentSdkInitParams?.rewardsInfo, - baseAttributes = paymentDataProvider.getAnalyticsParams() + naviPaymentAnalytics.onOfferExperienceBannerShown( + rewardsInfoV2 = paymentSdkInitParams?.rewardsInfo, + baseAttributes = paymentDataProvider.getAnalyticsParams() + ) + _rewardsInfoV2.update { + RewardsInfoV2( + burnDetails = paymentSdkInitParams?.rewardsInfo?.burnDetails, + earnDetails = paymentSdkInitParams?.rewardsInfo?.earnDetails ) - _rewardsInfoV2.update { - RewardsInfoV2( - burnDetails = paymentSdkInitParams?.rewardsInfo?.burnDetails, - earnDetails = paymentSdkInitParams?.rewardsInfo?.earnDetails - ) - } - paymentSdkInitParams?.rewardsInfo?.burnDetails?.isOfferApplied?.let { isOfferApplied -> - _showDiscountedAmount.update { isOfferApplied } - _isDiscountApplied.update { isOfferApplied } - _isDiscountPreApplied.update { isOfferApplied } - } - paymentDataProvider.updateDiscountAppliedStatus( - paymentSdkInitParams?.rewardsInfo?.burnDetails?.isOfferApplied.orFalse() - ) - if ( - paymentSdkInitParams?.rewardsInfo?.burnDetails?.isDiscountApplyLottieShown == true - ) { - _discountApplyCount.update { - 2 - } // only need to show lottie once for the entire journey - paymentDataProvider.updateDiscountApplyLottieShown( - isDiscountApplyLottieShown = true - ) - } + } + paymentSdkInitParams?.rewardsInfo?.burnDetails?.isOfferApplied?.let { isOfferApplied -> + _showDiscountedAmount.update { isOfferApplied } + _isDiscountApplied.update { isOfferApplied } + _isDiscountPreApplied.update { isOfferApplied } + } + paymentDataProvider.updateDiscountAppliedStatus( + paymentSdkInitParams?.rewardsInfo?.burnDetails?.isOfferApplied.orFalse() + ) + if (paymentSdkInitParams?.rewardsInfo?.burnDetails?.isDiscountApplyLottieShown == true) { + _discountApplyCount.update { 2 } // only need to show lottie once for the entire journey + paymentDataProvider.updateDiscountApplyLottieShown(isDiscountApplyLottieShown = true) } } }