NTP-11858 | LAT pending activation mandate bug fix (#13575)

This commit is contained in:
Shaurya Rehan
2024-11-13 23:35:30 +05:30
committed by GitHub
parent 1f856def74
commit 02763a29e5

View File

@@ -528,12 +528,18 @@ constructor(
)
val showAutoTopUpSectionForNonOnboardedUser =
combine(noOfAutoTopUpSupportedBanks, upiLiteAutoTopUpExperimentInfo) {
combine(
noOfAutoTopUpSupportedBanks,
upiLiteAutoTopUpExperimentInfo ->
upiLiteAutoTopUpExperimentInfo,
isNonTerminalMandateStatusPresent
) {
noOfAutoTopUpSupportedBanks,
upiLiteAutoTopUpExperimentInfo,
isNonTerminalMandateStatusPresent ->
if (
noOfAutoTopUpSupportedBanks > 0 &&
upiLiteAutoTopUpExperimentInfo.isAutoTopUpEnabled == true
upiLiteAutoTopUpExperimentInfo.isAutoTopUpEnabled == true &&
!isNonTerminalMandateStatusPresent
) {
updateCheckBoxState(isCheckBoxEnabled = true)
true
@@ -554,20 +560,23 @@ constructor(
isAutoTopUpSetUp,
isUserOnboarded,
upiLiteAutoTopUpSupportedBankCodes,
upiLiteAutoTopUpExperimentInfo
upiLiteAutoTopUpExperimentInfo,
isNonTerminalMandateStatusPresent
) {
selectedBankAccount,
isAutoTopUpSetUp,
isUserOnboarded,
upiLiteAutoTopUpSupportedBankCodes,
upiLiteAutoTopUpExperimentInfo ->
upiLiteAutoTopUpExperimentInfo,
isNonTerminalMandateStatusPresent ->
val enableCheckBox =
!isAutoTopUpSetUp &&
upiLiteAutoTopUpSupportedBankCodes.contains(selectedBankAccount?.bankCode)
if (
enableCheckBox &&
isUserOnboarded &&
upiLiteAutoTopUpExperimentInfo.isAutoTopUpEnabled == true
upiLiteAutoTopUpExperimentInfo.isAutoTopUpEnabled == true &&
!isNonTerminalMandateStatusPresent
) {
updateCheckBoxState(isCheckBoxEnabled = true)
true
@@ -1740,6 +1749,13 @@ constructor(
liteMandateInfo?.let { mandateInfo ->
val selectedBankAccount =
linkedAccounts.first { it.accountId == mandateInfo.bankAccountUniqueId }
updateBankAccountState(
bankAccountsState =
BankAccountsState.AccountList(
accounts = listOf(selectedBankAccount)
)
)
updateSelectedBankAccount(selectedBankAccount = selectedBankAccount)
updateShowAddBankButton(showAddBankButton = false)
}
@@ -4891,8 +4907,11 @@ constructor(
return
}
deleteLiteMandateInfo()
refreshScreenContent()
// Delete mandate info only if revoke is successful
if (revokeMandateApiResponse.data!!.state == MandateResponseState.SUCCESS.name) {
deleteLiteMandateInfo()
refreshScreenContent()
}
}
private suspend fun deleteLiteMandateInfo() {