NTP-70284 | Auto top up enhancement refactor (#16639)
Co-authored-by: Shaurya Rehan <shaurya.rehan@navi.com>
This commit is contained in:
@@ -102,6 +102,7 @@ import com.navi.pay.common.ui.NaviPayLottieAnimation
|
||||
import com.navi.pay.common.ui.SelectedAccountView
|
||||
import com.navi.pay.common.ui.ShadowStrip
|
||||
import com.navi.pay.common.utils.SnackBarPredefinedConfig
|
||||
import com.navi.pay.common.view.CommonAsyncImage
|
||||
import com.navi.pay.management.common.sendmoney.model.view.BankAccountsState
|
||||
import com.navi.pay.management.lite.models.view.AmountChipEntity
|
||||
import com.navi.pay.management.lite.models.view.UpiLiteBannerDisplayType
|
||||
@@ -117,6 +118,7 @@ import com.navi.pay.management.mandate.model.network.MandateItem
|
||||
import com.navi.pay.management.mandate.model.view.MandateStatus
|
||||
import com.navi.pay.onboarding.account.detail.model.view.LinkedAccountEntity
|
||||
import com.navi.pay.utils.AMOUNT_MAX_LENGTH
|
||||
import com.navi.pay.utils.NAVI_PAY_AUTOPAY_LOGO_WHITE_BG
|
||||
import com.navi.pay.utils.NAVI_PAY_PRIMARY_CTA_LOADER_LOTTIE
|
||||
import com.navi.pay.utils.NAVI_PAY_PURPLE_CTA_LOADER_LOTTIE
|
||||
import com.navi.pay.utils.RUPEE_SYMBOL
|
||||
@@ -1211,9 +1213,8 @@ fun LiteAutoTopUpCheckBoxSection(
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start,
|
||||
) {
|
||||
Image(
|
||||
painter = painterResource(id = R.drawable.ic_np_autopay_logo_white_bg),
|
||||
contentDescription = null,
|
||||
CommonAsyncImage(
|
||||
imageUrl = NAVI_PAY_AUTOPAY_LOGO_WHITE_BG,
|
||||
modifier = Modifier.padding(top = 8.dp).size(48.dp),
|
||||
)
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.navi.base.utils.ResourceProvider
|
||||
import com.navi.base.utils.isNotNullAndNotEmpty
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.base.utils.orZero
|
||||
import com.navi.base.utils.toDoubleWithSafe
|
||||
import com.navi.common.R as CommonR
|
||||
import com.navi.common.di.CoroutineDispatcherProvider
|
||||
import com.navi.common.network.models.RepoResult
|
||||
@@ -801,8 +802,8 @@ constructor(
|
||||
isMainCtaEnabled ->
|
||||
!isMainCtaEnabled ||
|
||||
!isAutoTopUpSetUp &&
|
||||
((upiLiteBalance.toDoubleOrNull() ?: 0.0).toInt() == maxTopUpLimit ||
|
||||
(enteredAmount.toDoubleOrNull() ?: 0.0) < mandateThresholdAmount)
|
||||
(upiLiteBalance.toDoubleWithSafe().toInt() == maxTopUpLimit ||
|
||||
enteredAmount.toDoubleWithSafe() < mandateThresholdAmount)
|
||||
}
|
||||
.flowOn(coroutineDispatcherProvider.default)
|
||||
.stateIn(
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.navi.base.cache.model.NaviCacheEntity
|
||||
import com.navi.base.cache.repository.NaviCacheRepository
|
||||
import com.navi.base.utils.ResourceProvider
|
||||
import com.navi.base.utils.ZERO_STRING
|
||||
import com.navi.base.utils.toDoubleWithSafe
|
||||
import com.navi.common.R as CommonR
|
||||
import com.navi.common.network.models.isSuccessWithData
|
||||
import com.navi.common.utils.CommonUtils.getDisplayableAmount
|
||||
@@ -247,10 +248,10 @@ constructor(
|
||||
getLiteMandateMetaDataFromMap(mandateInfo.liteMandateResponseInfo)
|
||||
|
||||
updateDefaultAutoTopUpAmount(
|
||||
amount = liteMandateMetaData.topUpAmount?.toDoubleOrNull() ?: 0.0
|
||||
amount = liteMandateMetaData.topUpAmount?.toDoubleWithSafe() ?: 0.0
|
||||
)
|
||||
updateMandateThresholdAmount(
|
||||
liteMandateMetaData.thresholdAmount?.toDoubleOrNull() ?: 0.0
|
||||
liteMandateMetaData.thresholdAmount?.toDoubleWithSafe() ?: 0.0
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -340,7 +341,7 @@ constructor(
|
||||
chip.copy(isSelected = idx == index)
|
||||
}
|
||||
)
|
||||
updateMandateThresholdAmount(selectedChip.amount.toDoubleOrNull() ?: 0.0)
|
||||
updateMandateThresholdAmount(selectedChip.amount.toDoubleWithSafe())
|
||||
}
|
||||
|
||||
private fun updateThresholdAmountChipsOnTopUpAmountChange() {
|
||||
@@ -370,8 +371,8 @@ constructor(
|
||||
}
|
||||
|
||||
fun isThresholdAmountEligible(thresholdAmount: String): Boolean {
|
||||
val amountToAddValue = autoTopUpAmount.value.text.toDoubleOrNull() ?: 0.0
|
||||
val thresholdValue = thresholdAmount.toDoubleOrNull() ?: 0.0
|
||||
val amountToAddValue = autoTopUpAmount.value.text.toDoubleWithSafe()
|
||||
val thresholdValue = thresholdAmount.toDoubleWithSafe()
|
||||
return thresholdValue <= amountToAddValue
|
||||
}
|
||||
|
||||
|
||||
@@ -499,6 +499,8 @@ const val NAVI_PAY_TOOL_TIP_GREY_URL =
|
||||
"https://public-assets.prod.navi-sa.in/navi-pay/svg/ic_np_triangle_tooltip_grey.svg"
|
||||
const val NAVI_PAY_PROFILE_REWARD_STRIP_ICON_URL =
|
||||
"https://public-assets.prod.navi-sa.in/navi-pay/svg/ic_np_add_rupay_card.svg"
|
||||
const val NAVI_PAY_AUTOPAY_LOGO_WHITE_BG =
|
||||
"https://public-assets.prod.navi-sa.in/navi-pay/svg/ic_np_autopay_logo_white_bg.svg"
|
||||
|
||||
// Navi pay bbps constants
|
||||
const val NAVI_PAY_BBPS_CATEGORY_ID = "category_id"
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="48dp"
|
||||
android:height="48dp"
|
||||
android:viewportWidth="48"
|
||||
android:viewportHeight="48">
|
||||
<path
|
||||
android:pathData="M0,24C0,10.745 10.745,0 24,0C37.255,0 48,10.745 48,24C48,37.255 37.255,48 24,48C10.745,48 0,37.255 0,24Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
<path
|
||||
android:pathData="M17.963,31.898L14.032,31.958L14.677,35.826L17.983,31.898H17.963Z"
|
||||
android:fillColor="#1F002A"/>
|
||||
<path
|
||||
android:pathData="M14.657,36.531C14.657,36.531 14.536,36.531 14.476,36.511C14.214,36.43 14.012,36.209 13.972,35.947L13.327,32.079C13.286,31.878 13.347,31.676 13.488,31.515C13.629,31.354 13.811,31.273 14.012,31.253L17.943,31.193C18.245,31.233 18.467,31.354 18.588,31.596C18.709,31.837 18.669,32.14 18.487,32.361L15.181,36.289C15.04,36.45 14.839,36.551 14.637,36.551L14.657,36.531ZM14.859,32.643L15.121,34.194L16.431,32.623H14.859V32.643Z"
|
||||
android:fillColor="#1F002A"/>
|
||||
<path
|
||||
android:pathData="M33.988,12.62L33.948,16.548L30.058,15.904L33.988,12.6V12.62Z"
|
||||
android:fillColor="#1F002A"/>
|
||||
<path
|
||||
android:pathData="M33.948,17.274C33.948,17.274 33.868,17.274 33.827,17.274L29.937,16.629C29.655,16.589 29.453,16.387 29.372,16.125C29.292,15.863 29.372,15.582 29.594,15.4L33.525,12.097C33.727,11.915 34.029,11.875 34.271,11.996C34.513,12.117 34.674,12.358 34.674,12.64L34.634,16.569C34.634,16.77 34.533,16.971 34.392,17.092C34.271,17.193 34.11,17.253 33.928,17.253L33.948,17.274ZM31.691,15.481L33.243,15.743V14.171L31.691,15.501V15.481Z"
|
||||
android:fillColor="#1F002A"/>
|
||||
<path
|
||||
android:pathData="M12.339,30.166C11.775,30.166 11.251,29.843 11.029,29.279C10.344,27.587 10.001,25.814 10.001,24.001C10.001,16.286 16.29,10.002 24.011,10.002C27.68,10.002 31.147,11.432 33.788,14.01C34.352,14.554 34.352,15.44 33.808,16.004C33.264,16.568 32.377,16.568 31.812,16.024C29.696,13.95 26.934,12.822 24.011,12.822C17.843,12.822 12.823,17.837 12.823,24.001C12.823,25.452 13.105,26.862 13.65,28.212C13.952,28.937 13.589,29.763 12.884,30.045C12.702,30.125 12.521,30.145 12.359,30.145L12.339,30.166Z"
|
||||
android:fillColor="#1F002A"/>
|
||||
<path
|
||||
android:pathData="M24.011,38.001C20.402,38.001 16.955,36.611 14.335,34.093C13.77,33.55 13.75,32.663 14.294,32.099C14.839,31.535 15.726,31.515 16.29,32.059C18.386,34.073 21.148,35.181 24.011,35.181C30.179,35.181 35.199,30.165 35.199,24.001C35.199,22.551 34.916,21.141 34.372,19.791C34.07,19.066 34.433,18.24 35.138,17.958C35.864,17.656 36.69,18.019 36.972,18.724C37.658,20.416 38.001,22.188 38.001,24.001C38.001,31.716 31.711,38.001 23.99,38.001H24.011Z"
|
||||
android:fillColor="#1F002A"/>
|
||||
<path
|
||||
android:pathData="M18.286,29.279L21.37,17.596H26.632L29.716,29.279H27.136L26.47,26.701H21.552L20.887,29.279H18.306H18.286ZM22.257,24.284H25.785L24.697,20.134H23.366L22.278,24.284H22.257Z"
|
||||
android:fillColor="#1F002A"/>
|
||||
</vector>
|
||||
Reference in New Issue
Block a user