NTP-55113| Sidharth Bamba | Fix/scratch card tstore status bar (#15644)

This commit is contained in:
Sidharth Bamba
2025-04-11 16:51:23 +05:30
committed by GitHub
parent 40ac9124b3
commit 81fb98e046
2 changed files with 78 additions and 56 deletions

View File

@@ -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

View File

@@ -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
}
}