diff --git a/navi-pay/src/main/kotlin/com/navi/pay/npcicl/CredItemsProvider.kt b/navi-pay/src/main/kotlin/com/navi/pay/npcicl/CredItemsProvider.kt index 49b8204ba5..86bd7f7723 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/npcicl/CredItemsProvider.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/npcicl/CredItemsProvider.kt @@ -1,11 +1,16 @@ package com.navi.pay.npcicl import com.navi.pay.onboarding.account.detail.model.view.LinkedAccountEntity +import com.navi.pay.utils.PIPE import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_AADHAAR +import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_ATMPIN import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_DEBIT_NUM +import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_IDENTITY import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_MPIN +import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_NMPIN import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_OTP import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_PIN +import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_SIGNATURE import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_SMS class CredItemsProvider { @@ -21,16 +26,32 @@ class CredItemsProvider { const val CRED_TYPE_UPI_LITE_SEND_MONEY = "upiLiteSendMoney" const val DEFAULT_REG_FORMAT = "NO_FORMAT" + + private const val UPI_LITE_D_LENGTH = "2048" + private const val ALPH = "ALPH" + private const val DEVICE = "DEVICE" + private const val ARQC = "ARQC" + + private const val FORMAT1 = "FORMAT1" + private const val FORMAT2 = "FORMAT2" + private const val FORMAT3 = "FORMAT3" + private const val FORMAT3_OR_FORMAT2 = "FORMAT3|FORMAT2" + private const val FORMAT3_OR_FORMAT1 = "FORMAT3|FORMAT1" } fun getCredItems( mobRegFormat: String = DEFAULT_REG_FORMAT, credType: String, accountEntity: LinkedAccountEntity, - isAadhaarConsentProvided : Boolean = false + isAadhaarConsentProvided: Boolean = false ) = when (credType) { - CRED_TYPE_SET_RESET_MPIN -> getCredItemsForRegistration(format = mobRegFormat, accountEntity = accountEntity,isAadhaarConsentProvided = isAadhaarConsentProvided) - CRED_TYPE_CHANGE_PIN -> getChangePinCredItems(accountEntity) + CRED_TYPE_SET_RESET_MPIN -> getCredItemsForRegistration( + format = mobRegFormat, + accountEntity = accountEntity, + isAadhaarConsentProvided = isAadhaarConsentProvided + ) + + CRED_TYPE_CHANGE_PIN -> getChangePinCredItems(accountEntity = accountEntity) CRED_TYPE_UPI_LITE_REGISTRATION -> getUpiLiteRegistrationCredItems() CRED_TYPE_UPI_LITE_LOAD_MONEY -> getUpiLiteLoadMoneyCredItems(accountEntity = accountEntity) CRED_TYPE_UPI_LITE_SEND_MONEY -> getUpiLiteSendMoneyCredItems() @@ -61,40 +82,46 @@ class CredItemsProvider { ) } return when (format.uppercase()) { - "FORMAT1" -> listOf( + FORMAT1 -> listOf( CredItem( - type = "OTP", subtype = "SMS", dType = "NUM", dLength = accountEntity.otpLength + type = CREDTYPE_OTP, + subtype = CREDTYPE_SMS, + dType = CREDTYPE_DEBIT_NUM, + dLength = accountEntity.otpLength ), CredItem( - type = "PIN", - subtype = "MPIN", - dType = "NUM", + type = CREDTYPE_PIN, + subtype = CREDTYPE_MPIN, + dType = CREDTYPE_DEBIT_NUM, dLength = accountEntity.mPinLength ) ) - "FORMAT2" -> listOf( + FORMAT2 -> listOf( CredItem( - type = "OTP", subtype = "SMS", dType = "NUM", dLength = accountEntity.otpLength + type = CREDTYPE_OTP, + subtype = CREDTYPE_SMS, + dType = CREDTYPE_DEBIT_NUM, + dLength = accountEntity.otpLength ), CredItem( - type = "OTP", - subtype = "ATMPIN", - dType = "NUM", + type = CREDTYPE_OTP, + subtype = CREDTYPE_ATMPIN, + dType = CREDTYPE_DEBIT_NUM, dLength = accountEntity.atmPinLength ), CredItem( - type = "PIN", - subtype = "MPIN", - dType = "NUM", + type = CREDTYPE_PIN, + subtype = CREDTYPE_MPIN, + dType = CREDTYPE_DEBIT_NUM, dLength = accountEntity.mPinLength ) ) - "FORMAT3" -> getAadhaarOtpCredItems() + FORMAT3 -> getAadhaarOtpCredItems() - "FORMAT3|FORMAT2", "FORMAT3|FORMAT1" -> if (isAadhaarConsentProvided) { + FORMAT3_OR_FORMAT2, FORMAT3_OR_FORMAT1 -> if (isAadhaarConsentProvided) { getAadhaarOtpCredItems() } else { - val fallbackFormat = format.substringAfter("|") + val fallbackFormat = format.substringAfter(delimiter = PIPE) getCredItemsForRegistration( format = fallbackFormat, accountEntity = accountEntity, @@ -104,9 +131,9 @@ class CredItemsProvider { else -> listOf( CredItem( - type = "PIN", - subtype = "MPIN", - dType = "NUM", + type = CREDTYPE_PIN, + subtype = CREDTYPE_MPIN, + dType = CREDTYPE_DEBIT_NUM, dLength = accountEntity.mPinLength ) ) @@ -115,28 +142,57 @@ class CredItemsProvider { private fun getChangePinCredItems(accountEntity: LinkedAccountEntity) = listOf( CredItem( - type = "PIN", subtype = "MPIN", dType = "NUM", dLength = accountEntity.mPinLength + type = CREDTYPE_PIN, + subtype = CREDTYPE_MPIN, + dType = CREDTYPE_DEBIT_NUM, + dLength = accountEntity.mPinLength ), CredItem( - type = "PIN", subtype = "NMPIN", dType = "NUM", dLength = accountEntity.mPinLength + type = CREDTYPE_PIN, + subtype = CREDTYPE_NMPIN, + dType = CREDTYPE_DEBIT_NUM, + dLength = accountEntity.mPinLength ) ) private fun getUpiLiteRegistrationCredItems() = listOf( - CredItem(type = "DEVICE", subtype = "IDENTITY", dType = "ALPH", dLength = "2048") + CredItem( + type = DEVICE, + subtype = CREDTYPE_IDENTITY, + dType = ALPH, + dLength = UPI_LITE_D_LENGTH + ) ) private fun getUpiLiteLoadMoneyCredItems(accountEntity: LinkedAccountEntity) = listOf( - CredItem(type = "ARQC", subtype = "SIGNATURE", dType = "ALPH", dLength = "2048"), - CredItem(type = "PIN", subtype = "MPIN", dType = "NUM", dLength = accountEntity.mPinLength) + CredItem( + type = ARQC, + subtype = CREDTYPE_SIGNATURE, + dType = ALPH, + dLength = UPI_LITE_D_LENGTH + ), + CredItem( + type = CREDTYPE_PIN, + subtype = CREDTYPE_MPIN, + dType = CREDTYPE_DEBIT_NUM, + dLength = accountEntity.mPinLength + ) ) private fun getUpiLiteSendMoneyCredItems() = listOf( - CredItem(type = "ARQC", subtype = "SIGNATURE", dType = "ALPH", dLength = "2048") + CredItem( + type = ARQC, + subtype = CREDTYPE_SIGNATURE, + dType = ALPH, + dLength = UPI_LITE_D_LENGTH + ) ) private fun getOtherCredItems(accountEntity: LinkedAccountEntity) = listOf( CredItem( - type = "PIN", subtype = "MPIN", dType = "NUM", dLength = accountEntity.mPinLength + type = CREDTYPE_PIN, + subtype = CREDTYPE_MPIN, + dType = CREDTYPE_DEBIT_NUM, + dLength = accountEntity.mPinLength ) ) } \ No newline at end of file diff --git a/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayConstants.kt b/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayConstants.kt index 39d38fb925..48c1ef3c9c 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayConstants.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayConstants.kt @@ -23,7 +23,8 @@ const val AMOUNT_MAX_LENGTH_BEFORE_DECIMAL = 6 const val AMOUNT_MAX_LENGTH_AFTER_DECIMAL = 2 const val AMOUNT_MAX_LENGTH = AMOUNT_MAX_LENGTH_BEFORE_DECIMAL + AMOUNT_MAX_LENGTH_AFTER_DECIMAL + 1 const val AMOUNT_MAX_LENGTH_BEFORE_DECIMAL_RCC = 10 -const val AMOUNT_MAX_LENGTH_RCC = AMOUNT_MAX_LENGTH_BEFORE_DECIMAL_RCC + AMOUNT_MAX_LENGTH_AFTER_DECIMAL + 1 +const val AMOUNT_MAX_LENGTH_RCC = + AMOUNT_MAX_LENGTH_BEFORE_DECIMAL_RCC + AMOUNT_MAX_LENGTH_AFTER_DECIMAL + 1 // File names const val NAVI_PAY_SECONDARY_SPLASH_LOTTIE = "navi-pay-secondary-splash.lottie" @@ -152,6 +153,7 @@ const val RESOURCE_DEFAULT_ID = -1 const val RUPEE_SYMBOL = "₹" const val TRANSITION_DURATION = 200 const val RUPEE_SYMBOL_CHAR = '₹' +const val PIPE = "|" //Deeplink const val FAQ_SCREEN_PATH = "menu/faq" @@ -298,5 +300,7 @@ const val UPI_LITE_CREDBLOCK_INITIAL = "initial" //Screen url const val SET_RESET_PIN_SCREEN = "navipay/accountverify/setresetpin" -const val PROVIDE_AADHAAR_CONSENT_BOTTOMSHEET = "navipay/accountverify/setresertpin/aadhaarconsentbottomsheet" -const val SET_RESET_PIN_SCREEN_MODE_SELECTION_WITH_DEBIT_CARD_DEFAULT = "navipay/accountverify/setresetpin/modeSelectionWithDebitCardDefault" \ No newline at end of file +const val PROVIDE_AADHAAR_CONSENT_BOTTOMSHEET = + "navipay/accountverify/setresertpin/aadhaarconsentbottomsheet" +const val SET_RESET_PIN_SCREEN_MODE_SELECTION_WITH_DEBIT_CARD_DEFAULT = + "navipay/accountverify/setresetpin/modeSelectionWithDebitCardDefault" \ No newline at end of file