From 81fb98e046523b9ae1e65c753746adcf52b5ae20 Mon Sep 17 00:00:00 2001 From: Sidharth Bamba Date: Fri, 11 Apr 2025 16:51:23 +0530 Subject: [PATCH] NTP-55113| Sidharth Bamba | Fix/scratch card tstore status bar (#15644) --- .../ui/common/OrderDetailsScreenContent.kt | 10 +- .../details/ui/common/ScratchCardSection.kt | 124 ++++++++++-------- 2 files changed, 78 insertions(+), 56 deletions(-) diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/ui/common/OrderDetailsScreenContent.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/ui/common/OrderDetailsScreenContent.kt index 4b76317c69..112cada05c 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/ui/common/OrderDetailsScreenContent.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/ui/common/OrderDetailsScreenContent.kt @@ -28,6 +28,7 @@ import androidx.lifecycle.compose.LocalLifecycleOwner import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.MultiplePermissionsState import com.navi.base.utils.EMPTY +import com.navi.pay.R import com.navi.pay.analytics.NaviPayAnalytics import com.navi.pay.common.model.config.NotifyWidgetTextMessage import com.navi.pay.common.theme.color.NaviPayColor @@ -120,7 +121,11 @@ fun OrderDetailsScreenContent( } } - DisposableEffect(key1 = orderHistoryDetailItemProperty, key2 = lifecycleOwner) { + DisposableEffect( + key1 = orderHistoryDetailItemProperty, + key2 = lifecycleOwner, + key3 = showRewardsPopUp, + ) { val observer = LifecycleEventObserver { _, event -> when (event) { Lifecycle.Event.ON_RESUME, @@ -128,7 +133,8 @@ fun OrderDetailsScreenContent( naviPayActivity.window.statusBarColor = ContextCompat.getColor( naviPayActivity, - orderHistoryDetailItemProperty.statusBarColorId, + if (showRewardsPopUp) R.color.navi_pay_scratch_card_bg + else orderHistoryDetailItemProperty.statusBarColorId, ) } else -> Unit diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/ui/common/ScratchCardSection.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/ui/common/ScratchCardSection.kt index e79f06d9c1..36287bc6b5 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/ui/common/ScratchCardSection.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/ui/common/ScratchCardSection.kt @@ -21,7 +21,6 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width @@ -37,6 +36,7 @@ import androidx.compose.ui.text.Placeholder import androidx.compose.ui.text.PlaceholderVerticalAlign import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp @@ -164,8 +164,7 @@ private fun ScratchCardLocked( ) { AnimatedVisibility( visible = - (rewardsGratificationUIState - is PaymentSummaryRewardsGratificationUIState.Gratification), + rewardsGratificationUIState is PaymentSummaryRewardsGratificationUIState.Gratification, enter = slideInHorizontally( initialOffsetX = { it }, @@ -177,7 +176,8 @@ private fun ScratchCardLocked( Modifier.fillMaxSize().clickableDebounce { naviPayAnalytics.scratchCardClicked() onRewardPopUpStateUpdate(true) - } + }, + contentAlignment = Alignment.Center, ) { AsyncImage( model = SCRATCH_CARD_BANNER_BG, @@ -185,56 +185,74 @@ private fun ScratchCardLocked( contentScale = ContentScale.FillWidth, modifier = Modifier.fillMaxSize(), ) - Column( - modifier = Modifier.fillMaxWidth().offset(x = 124.dp, y = 42.dp), - horizontalAlignment = Alignment.CenterHorizontally, - ) { - Row(modifier = Modifier.fillMaxWidth()) { - NaviText( - text = stringResource(id = R.string.np_scratch_and_win_upto), - fontSize = 14.sp, - fontFamily = naviFontFamily, - fontWeight = getFontWeight(FontWeightEnum.NAVI_BODY_DEMI_BOLD), - color = NaviPayColor.textWhite, - lineHeight = 18.sp, - ) - Spacer(modifier = Modifier.width(4.dp)) - Image( - painter = painterResource(id = CommonR.drawable.ic_np_coin), - contentDescription = EMPTY, - modifier = Modifier.size(14.dp).align(Alignment.CenterVertically), - ) - Spacer(modifier = Modifier.width(4.dp)) - NaviText( - text = stringResource(id = R.string.np_thousand), - fontSize = 14.sp, - fontFamily = naviFontFamily, - fontWeight = getFontWeight(FontWeightEnum.NAVI_BODY_DEMI_BOLD), - color = NaviPayColor.textWhite, - lineHeight = 18.sp, - ) - } + Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { + Column( + modifier = Modifier.fillMaxWidth(), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.Start, + ) { + Spacer(modifier = Modifier.height(12.dp)) + Row(verticalAlignment = Alignment.CenterVertically) { + Spacer(modifier = Modifier.weight(0.3f)) + Row(modifier = Modifier.weight(0.7f)) { + NaviText( + text = stringResource(id = R.string.np_scratch_and_win_upto), + fontSize = 12.sp, + fontFamily = naviFontFamily, + fontWeight = getFontWeight(FontWeightEnum.NAVI_BODY_DEMI_BOLD), + color = NaviPayColor.textWhite, + lineHeight = 18.sp, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + modifier = Modifier.weight(1f, fill = false), + ) + Spacer(modifier = Modifier.width(4.dp)) + Image( + painter = painterResource(id = CommonR.drawable.ic_np_coin), + contentDescription = EMPTY, + modifier = Modifier.size(14.dp), + ) + Spacer(modifier = Modifier.width(4.dp)) + NaviText( + text = stringResource(id = R.string.np_thousand), + fontSize = 12.sp, + fontFamily = naviFontFamily, + fontWeight = getFontWeight(FontWeightEnum.NAVI_BODY_DEMI_BOLD), + color = NaviPayColor.textWhite, + lineHeight = 18.sp, + ) + } + } - Spacer(modifier = Modifier.height(4.dp)) + Spacer(modifier = Modifier.height(4.dp)) - Row(modifier = Modifier.fillMaxWidth()) { - NaviText( - text = stringResource(id = R.string.np_expiring_in_days, daysUntilExpiry), - fontSize = 14.sp, - fontFamily = naviFontFamily, - fontWeight = getFontWeight(FontWeightEnum.NAVI_BODY_REGULAR), - color = NaviPayColor.textWhite, - lineHeight = 16.sp, - ) - Spacer(modifier = Modifier.width(2.dp)) - Image( - painter = - painterResource( - CommonR.drawable.navi_common_ic_double_right_arrow_white - ), - contentDescription = EMPTY, - modifier = Modifier.size(16.dp).align(Alignment.CenterVertically), - ) + Row(verticalAlignment = Alignment.CenterVertically) { + Spacer(modifier = Modifier.weight(0.3f)) + Row(modifier = Modifier.weight(0.7f)) { + NaviText( + text = + stringResource( + id = R.string.np_expiring_in_days, + daysUntilExpiry, + ), + fontSize = 12.sp, + fontFamily = naviFontFamily, + fontWeight = getFontWeight(FontWeightEnum.NAVI_BODY_REGULAR), + color = NaviPayColor.textWhite, + lineHeight = 16.sp, + ) + Spacer(modifier = Modifier.width(2.dp)) + Image( + painter = + painterResource( + id = + CommonR.drawable.navi_common_ic_double_right_arrow_white + ), + contentDescription = EMPTY, + modifier = Modifier.size(16.dp), + ) + } + } } } } @@ -305,7 +323,5 @@ private fun ScratchCardLocked( ) } } - } else { - Unit } }