NTP-7179 | Narayan | Rewards auto popup animation button logic fixed (#13782)
This commit is contained in:
committed by
GitHub
parent
f3b6e0f717
commit
4fddcafaad
@@ -151,6 +151,8 @@ fun PaymentSummaryScreen(
|
||||
paymentSummaryViewModel.naviPayDefaultConfig.collectAsStateWithLifecycle()
|
||||
val upiAppLogoS3BaseUrl =
|
||||
remember(naviPayDefaultConfig) { naviPayDefaultConfig.value.config.upiAppLogoS3BaseUrl }
|
||||
val shouldPlayScratchAndWinCtaAnimation by
|
||||
paymentSummaryViewModel.shouldPlayScratchAndWinCtaAnimation.collectAsStateWithLifecycle()
|
||||
|
||||
val upiAppsIconList =
|
||||
remember(naviPayDefaultConfig) { naviPayDefaultConfig.value.config.upiAppsIconList }
|
||||
@@ -488,6 +490,8 @@ fun PaymentSummaryScreen(
|
||||
paymentSummaryViewModel.rewardsBottomStripeSectionAnimationDuration,
|
||||
scratchCardBottomMovementAnimationDuration =
|
||||
paymentSummaryViewModel.scratchCardBottomMovementAnimationDuration,
|
||||
shouldPlayScratchAndWinCtaAnimation =
|
||||
shouldPlayScratchAndWinCtaAnimation
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,7 +139,8 @@ fun SharedTransitionScope.PaymentSummaryTransactionDetailSection(
|
||||
isRewardsCtaVisible: Boolean,
|
||||
scratchCardRotationAnimationDuration: Int,
|
||||
rewardsBottomStripeSectionAnimationDuration: Int,
|
||||
scratchCardBottomMovementAnimationDuration: Int
|
||||
scratchCardBottomMovementAnimationDuration: Int,
|
||||
shouldPlayScratchAndWinCtaAnimation: Boolean
|
||||
) {
|
||||
|
||||
val onViewDetailCtaClicked = {
|
||||
@@ -268,7 +269,8 @@ fun SharedTransitionScope.PaymentSummaryTransactionDetailSection(
|
||||
rewardsBottomStripeSectionAnimationDuration =
|
||||
rewardsBottomStripeSectionAnimationDuration,
|
||||
scratchCardBottomMovementAnimationDuration =
|
||||
scratchCardBottomMovementAnimationDuration
|
||||
scratchCardBottomMovementAnimationDuration,
|
||||
shouldPlayScratchAndWinCtaAnimation = shouldPlayScratchAndWinCtaAnimation
|
||||
)
|
||||
}
|
||||
)
|
||||
@@ -577,7 +579,8 @@ private fun SharedTransitionScope.BottomBarSection(
|
||||
isRewardsCtaVisible: Boolean,
|
||||
scratchCardRotationAnimationDuration: Int,
|
||||
rewardsBottomStripeSectionAnimationDuration: Int,
|
||||
scratchCardBottomMovementAnimationDuration: Int
|
||||
scratchCardBottomMovementAnimationDuration: Int,
|
||||
shouldPlayScratchAndWinCtaAnimation: Boolean
|
||||
) {
|
||||
Column(modifier = Modifier.padding(top = 16.dp)) {
|
||||
if (isRewardsCtaVisible) {
|
||||
@@ -615,12 +618,24 @@ private fun SharedTransitionScope.BottomBarSection(
|
||||
Spacer(modifier = Modifier.width(16.dp))
|
||||
|
||||
if (isRewardsCtaVisible) {
|
||||
ScratchAndWinButtonSection(
|
||||
modifier = Modifier.weight(1f),
|
||||
onClick = onRewardsCtaClicked,
|
||||
scratchAndWinButtonAnimationDuration = scratchAndWinButtonAnimationDuration,
|
||||
scratchAndWinButtonAnimationDelay = scratchAndWinButtonAnimationDelay
|
||||
)
|
||||
if (shouldPlayScratchAndWinCtaAnimation)
|
||||
ScratchAndWinButtonSectionWithProgressAnimation(
|
||||
modifier = Modifier.weight(1f),
|
||||
onClick = onRewardsCtaClicked,
|
||||
scratchAndWinButtonAnimationDuration = scratchAndWinButtonAnimationDuration,
|
||||
scratchAndWinButtonAnimationDelay = scratchAndWinButtonAnimationDelay
|
||||
)
|
||||
else {
|
||||
ThemeRoundedButtonWithImage(
|
||||
text = stringResource(id = R.string.np_scratch_and_win),
|
||||
imageResId = CommonR.drawable.ic_scratch_card,
|
||||
fontSize = 12.sp,
|
||||
modifier = Modifier.weight(1f),
|
||||
onClick = onTransactionDetailSectionBottomNavigationCtaButtonClicked,
|
||||
paddingValues = PaddingValues(horizontal = 16.dp, vertical = 12.dp),
|
||||
rippleColor = NaviPayColor.bgDefault
|
||||
)
|
||||
}
|
||||
} else {
|
||||
ThemeRoundedButtonV2(
|
||||
text = stringResource(id = R.string.done),
|
||||
@@ -850,7 +865,7 @@ private fun RewardsWonGratificationSection(
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun ScratchAndWinButtonSection(
|
||||
private fun ScratchAndWinButtonSectionWithProgressAnimation(
|
||||
modifier: Modifier,
|
||||
onClick: (String) -> Unit,
|
||||
scratchAndWinButtonAnimationDuration: Long,
|
||||
|
||||
@@ -145,6 +145,9 @@ constructor(
|
||||
private val _isScratchCardRotationVisible = MutableStateFlow(false)
|
||||
val isScratchCardRotationVisible = _isScratchCardRotationVisible.asStateFlow()
|
||||
|
||||
private val _shouldPlayScratchAndWinCtaAnimation = MutableStateFlow(false)
|
||||
val shouldPlayScratchAndWinCtaAnimation = _shouldPlayScratchAndWinCtaAnimation.asStateFlow()
|
||||
|
||||
private val isNotificationPermissionAllowed = MutableStateFlow(true)
|
||||
|
||||
private val _requestForPushNotificationPermission = MutableSharedFlow<Boolean>()
|
||||
@@ -577,9 +580,15 @@ constructor(
|
||||
.get(key = NAVI_PAY_AUTO_POPUP_SCRATCH_CARD_COUNTER)
|
||||
?.value
|
||||
?.toIntOrNull() ?: 0
|
||||
|
||||
if (autoPopupCounter < naviPayDefaultConfig.value.config.scratchCardAutoPopupMaxCount) {
|
||||
_shouldPlayScratchAndWinCtaAnimation.update { true }
|
||||
}
|
||||
|
||||
delay(scratchCardAutoPopupDelay)
|
||||
|
||||
if (
|
||||
autoPopupCounter <= naviPayDefaultConfig.value.config.scratchCardAutoPopupMaxCount &&
|
||||
autoPopupCounter < naviPayDefaultConfig.value.config.scratchCardAutoPopupMaxCount &&
|
||||
rewardsGratificationUIState.value is
|
||||
PaymentSummaryRewardsGratificationUIState.Gratification
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user