NTP-2285 | UAT fixes (#13018)

This commit is contained in:
shreyansu raj
2024-10-10 20:33:49 +05:30
committed by GitHub
parent e850f11f78
commit 977515be75
2 changed files with 82 additions and 61 deletions

View File

@@ -17,6 +17,7 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
@@ -24,11 +25,14 @@ import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.ModalBottomSheetState import androidx.compose.material.ModalBottomSheetState
import androidx.compose.material.ModalBottomSheetValue import androidx.compose.material.ModalBottomSheetValue
import androidx.compose.material.rememberModalBottomSheetState import androidx.compose.material.rememberModalBottomSheetState
import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
@@ -69,7 +73,6 @@ import com.navi.design.font.FontWeightEnum
import com.navi.design.theme.getFontWeight import com.navi.design.theme.getFontWeight
import com.navi.design.theme.ttComposeFontFamily import com.navi.design.theme.ttComposeFontFamily
import com.navi.naviwidgets.extensions.NaviText import com.navi.naviwidgets.extensions.NaviText
import com.navi.naviwidgets.extensions.debounceClickable
import com.navi.pay.R import com.navi.pay.R
import com.navi.pay.analytics.NaviPayAnalytics import com.navi.pay.analytics.NaviPayAnalytics
import com.navi.pay.analytics.NaviPayAnalytics.Companion.NAVI_PAY_CHECK_BALANCE_SCREEN import com.navi.pay.analytics.NaviPayAnalytics.Companion.NAVI_PAY_CHECK_BALANCE_SCREEN
@@ -316,6 +319,7 @@ private fun RenderLinkedAccountBalanceScreen(
) { ) {
val context = LocalContext.current as Activity val context = LocalContext.current as Activity
val scrollState = rememberScrollState()
NaviPayModalBottomSheetLayout( NaviPayModalBottomSheetLayout(
sheetState = bottomSheetState, sheetState = bottomSheetState,
sheetContent = { sheetContent = {
@@ -329,62 +333,78 @@ private fun RenderLinkedAccountBalanceScreen(
) )
} }
) { ) {
Column(modifier = Modifier.fillMaxWidth()) { Scaffold(
NaviPayHeader( topBar = {
title = stringResource(id = getHeaderTitle(linkedAccountEntity.accountType)), NaviPayHeader(
onNavigationIconClick = { navigator.navigateUp() }, title = stringResource(id = getHeaderTitle(linkedAccountEntity.accountType)),
modifier = Modifier, onNavigationIconClick = { navigator.navigateUp() },
actionIconText = helpCtaText, modifier = Modifier,
onActionClick = onHelpClicked, actionIconText = helpCtaText,
backgroundColor = NaviPayColor.bgNonEditable onActionClick = onHelpClicked,
) backgroundColor = NaviPayColor.bgNonEditable
)
},
content = { padding ->
Column(
modifier =
Modifier.background(color = NaviPayColor.bgDefault)
.fillMaxSize()
.verticalScroll(scrollState)
.padding(padding)
) {
AccountBalanceDetailHeader(
linkedAccountEntity = linkedAccountEntity,
onRefreshIconClicked = onRefreshIconClicked,
showRefreshLoader = showRefreshLoader,
currentBalance = currentBalance,
outstandingBalance = outstandingBalance,
showShimmer = showShimmer,
hideBalance = hideBalance
)
AccountBalanceDetailHeader( TransactionEntryPointCard(
linkedAccountEntity = linkedAccountEntity, transactionEntrypointData = transactionEntrypointData,
onRefreshIconClicked = onRefreshIconClicked, accountType = linkedAccountEntity.accountType,
showRefreshLoader = showRefreshLoader, redirectOnClick = redirectOnClick
currentBalance = currentBalance, )
outstandingBalance = outstandingBalance,
showShimmer = showShimmer,
hideBalance = hideBalance
)
TransactionEntryPointCard( Spacer(modifier = Modifier.height(32.dp))
transactionEntrypointData = transactionEntrypointData,
accountType = linkedAccountEntity.accountType,
redirectOnClick = redirectOnClick
)
Spacer(modifier = Modifier.height(32.dp)) AdverseViewRoot(
modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp),
activity = context,
realEstateId =
FirebaseRemoteConfigHelper.getString(
NAVI_CHECK_BALANCE_CROSS_SELL_AD_RE_ID
),
timeoutInMillis =
FirebaseRemoteConfigHelper.getLong(
NAVI_CHECK_BALANCE_CROSS_SELL_AD_FALLBACK_TIMEOUT
),
loadingView = { CrossSellLoadingShimmer(it) }
)
AdverseViewRoot( Spacer(modifier = Modifier.height(48.dp))
modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp),
activity = context,
realEstateId =
FirebaseRemoteConfigHelper.getString(NAVI_CHECK_BALANCE_CROSS_SELL_AD_RE_ID),
timeoutInMillis =
FirebaseRemoteConfigHelper.getLong(
NAVI_CHECK_BALANCE_CROSS_SELL_AD_FALLBACK_TIMEOUT
),
loadingView = { CrossSellLoadingShimmer(it) }
)
Spacer(modifier = Modifier.weight(1f))
when (linkedAccountEntity.accountType) {
AccountType.CREDIT.name -> {
NaviPayCreditCardSponsorView(modifier = Modifier.fillMaxWidth())
} }
AccountType.UPICREDIT.name -> { },
NaviPayCreditLineSponsorView(modifier = Modifier.fillMaxWidth()) bottomBar = {
} Column(modifier = Modifier.background(NaviPayColor.ctaWhite)) {
else -> { Spacer(modifier = Modifier.height(16.dp))
NaviPaySponsorView(modifier = Modifier.fillMaxWidth()) when (linkedAccountEntity.accountType) {
AccountType.CREDIT.name -> {
NaviPayCreditCardSponsorView(modifier = Modifier.fillMaxWidth())
}
AccountType.UPICREDIT.name -> {
NaviPayCreditLineSponsorView(modifier = Modifier.fillMaxWidth())
}
else -> {
NaviPaySponsorView(modifier = Modifier.fillMaxWidth())
}
}
Spacer(modifier = Modifier.height(32.dp))
} }
} }
)
Spacer(modifier = Modifier.height(40.dp))
}
} }
} }
@@ -748,7 +768,7 @@ fun CreditDetailsHeaderUI(
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
) { ) {
if (showShimmer) { if (showShimmer) {
Box(modifier = Modifier.height(24.dp).width(144.dp).shimmerEffect()) Box(modifier = Modifier.height(20.dp).width(144.dp).shimmerEffect())
} else { } else {
NaviText( NaviText(
modifier = Modifier.weight(1f, false), modifier = Modifier.weight(1f, false),
@@ -795,7 +815,7 @@ fun TransactionEntryPointCard(
val account = remember { AccountType.getAccountType(accountType).name } val account = remember { AccountType.getAccountType(accountType).name }
Box(modifier = Modifier.fillMaxWidth().background(NaviPayColor.bgNonEditable)) { Box(modifier = Modifier.fillMaxWidth().background(NaviPayColor.bgNonEditable)) {
Row( Row(
horizontalArrangement = Arrangement.spacedBy(16.dp, Alignment.CenterHorizontally), horizontalArrangement = Arrangement.SpaceEvenly,
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp, vertical = 24.dp) modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp, vertical = 24.dp)
) { ) {
@@ -805,7 +825,7 @@ fun TransactionEntryPointCard(
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
modifier = modifier =
Modifier.wrapContentSize() Modifier.wrapContentSize()
.debounceClickable( .clickableDebounce(
onClick = { redirectOnClick.invoke(itemData.ctaData) } onClick = { redirectOnClick.invoke(itemData.ctaData) }
) )
) { ) {
@@ -814,7 +834,7 @@ fun TransactionEntryPointCard(
backgroundColor = NaviPayColor.bgAlt, backgroundColor = NaviPayColor.bgAlt,
fallbackIconUrl = CommonR.drawable.ic_upi_bbps_default_bank_logo, fallbackIconUrl = CommonR.drawable.ic_upi_bbps_default_bank_logo,
boxSize = 64.dp, boxSize = 64.dp,
imageSize = 36.dp, imageSize = 32.dp,
borderWidth = 1.dp, borderWidth = 1.dp,
borderColor = NaviPayColor.borderDefault borderColor = NaviPayColor.borderDefault
) )
@@ -827,7 +847,9 @@ fun TransactionEntryPointCard(
fontFamily = ttComposeFontFamily, fontFamily = ttComposeFontFamily,
maxLines = 2, maxLines = 2,
fontWeight = getFontWeight(FontWeightEnum.NAVI_HEADLINE_REGULAR), fontWeight = getFontWeight(FontWeightEnum.NAVI_HEADLINE_REGULAR),
textAlign = TextAlign.Center textAlign = TextAlign.Center,
modifier = Modifier.width(70.dp),
overflow = TextOverflow.Ellipsis
) )
} }
} }
@@ -891,7 +913,7 @@ private fun AvailableBalanceView(
if (showRefreshLoader) { if (showRefreshLoader) {
NaviPayLottieAnimation( NaviPayLottieAnimation(
lottieFileName = NAVI_PAY_PURPLE_CTA_LOADER_LOTTIE, lottieFileName = NAVI_PAY_PURPLE_CTA_LOADER_LOTTIE,
modifier = Modifier modifier = Modifier.size(20.dp)
) )
} else { } else {
Image( Image(
@@ -936,14 +958,14 @@ private fun HideBalanceView(
if (showRefreshLoader) { if (showRefreshLoader) {
NaviPayLottieAnimation( NaviPayLottieAnimation(
lottieFileName = NAVI_PAY_PURPLE_CTA_LOADER_LOTTIE, lottieFileName = NAVI_PAY_PURPLE_CTA_LOADER_LOTTIE,
modifier = Modifier modifier = Modifier.size(20.dp)
) )
} else { } else {
NaviText( NaviText(
text = stringResource(R.string.check_balance), text = stringResource(R.string.check_balance),
fontSize = 14.sp, fontSize = 14.sp,
fontFamily = ttComposeFontFamily, fontFamily = ttComposeFontFamily,
color = NaviPayColor.textPrimary, color = NaviPayColor.ctaPrimary,
fontWeight = getFontWeight(FontWeightEnum.NAVI_HEADLINE_REGULAR), fontWeight = getFontWeight(FontWeightEnum.NAVI_HEADLINE_REGULAR),
textDecoration = TextDecoration.Underline, textDecoration = TextDecoration.Underline,
modifier = Modifier.clickableDebounce { onCheckBalanceClicked() } modifier = Modifier.clickableDebounce { onCheckBalanceClicked() }

View File

@@ -1494,10 +1494,9 @@ constructor(
) )
} }
@OptIn(DelicateCoroutinesApi::class)
private fun syncLiteAccountInfo() { private fun syncLiteAccountInfo() {
viewModelScope.safeLaunch(coroutineDispatcherProvider.io) { GlobalScope.safeLaunch(coroutineDispatcherProvider.io) { liteAccountSyncUseCase.execute() }
liteAccountSyncUseCase.execute()
}
} }
fun updateCdsPermissionStatus() { fun updateCdsPermissionStatus() {