NTP-4194 | Added support for auto decline collect request (#12681)
This commit is contained in:
@@ -165,7 +165,8 @@ fun CollectRequestsScreen(
|
||||
|
||||
collectRequestViewModel.onProceedButtonClicked(
|
||||
collectRequestEntity = collectRequest,
|
||||
totalPendingRequest = totalPendingRequests
|
||||
totalPendingRequest = totalPendingRequests,
|
||||
sendMoneyAction = null
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.navi.pay.management.collectrequest.model.network.CollectRequestsReque
|
||||
import com.navi.pay.management.collectrequest.model.view.CollectRequestEntity
|
||||
import com.navi.pay.management.collectrequest.repository.CollectRequestsRepository
|
||||
import com.navi.pay.management.common.sendmoney.model.view.PayeeEntity
|
||||
import com.navi.pay.management.common.sendmoney.model.view.SendMoneyAction
|
||||
import com.navi.pay.management.common.sendmoney.model.view.SendMoneyScreenSource
|
||||
import com.navi.pay.management.common.sendmoney.model.view.UpiTransactionType
|
||||
import com.navi.pay.management.mandate.model.network.MandateDetailRequest
|
||||
@@ -103,6 +104,9 @@ constructor(
|
||||
) {
|
||||
val collectRequestTransactionId =
|
||||
naviPayActivityDataProvider.getIntentData()?.getString("gatewayTransactionId") ?: return
|
||||
val collectRequestAction =
|
||||
naviPayActivityDataProvider.getIntentData()?.getString("SendMoneyAction") ?: return
|
||||
val sendMoneyActionForCollectRequest = SendMoneyAction.fromString(collectRequestAction)
|
||||
|
||||
val collectRequestEntity =
|
||||
collectRequests.firstOrNull { it.transactionId == collectRequestTransactionId }
|
||||
@@ -113,7 +117,8 @@ constructor(
|
||||
|
||||
onProceedButtonClicked(
|
||||
collectRequestEntity = collectRequestEntity,
|
||||
totalPendingRequest = collectRequests.size
|
||||
totalPendingRequest = collectRequests.size,
|
||||
sendMoneyAction = sendMoneyActionForCollectRequest
|
||||
)
|
||||
}
|
||||
|
||||
@@ -171,7 +176,8 @@ constructor(
|
||||
|
||||
fun onProceedButtonClicked(
|
||||
collectRequestEntity: CollectRequestEntity,
|
||||
totalPendingRequest: Int
|
||||
totalPendingRequest: Int,
|
||||
sendMoneyAction: SendMoneyAction?
|
||||
) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
_collectRequestUIState.update { CollectRequestUIState.Loading }
|
||||
@@ -180,7 +186,8 @@ constructor(
|
||||
SendMoneyScreenSource.CollectRequest(
|
||||
collectType = collectRequestEntity.collectType,
|
||||
totalPendingRequests = totalPendingRequest,
|
||||
payerVpa = collectRequestEntity.payerVpa
|
||||
payerVpa = collectRequestEntity.payerVpa,
|
||||
autoTriggerSendMoneyAction = sendMoneyAction
|
||||
)
|
||||
|
||||
naviPaySessionHelper.createNewSessionId()
|
||||
|
||||
@@ -11,5 +11,11 @@ enum class SendMoneyAction {
|
||||
StartPayment,
|
||||
Approve,
|
||||
Decline,
|
||||
SetPin
|
||||
SetPin;
|
||||
|
||||
companion object {
|
||||
fun fromString(value: String): SendMoneyAction? {
|
||||
return entries.find { it.name == value }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,7 +211,8 @@ sealed class SendMoneyScreenSource : Parcelable {
|
||||
val totalPendingRequests: Int = 0,
|
||||
val payerVpa: String,
|
||||
val umn: String? = null,
|
||||
val source: CollectRequestSource = CollectRequestSource.CollectRequestScreen
|
||||
val source: CollectRequestSource = CollectRequestSource.CollectRequestScreen,
|
||||
val autoTriggerSendMoneyAction: SendMoneyAction?
|
||||
) : SendMoneyScreenSource()
|
||||
|
||||
@Parcelize
|
||||
|
||||
@@ -480,6 +480,7 @@ constructor(
|
||||
paymentAmountChangeListener()
|
||||
customerStatusListener()
|
||||
selectedAccountChangeListener()
|
||||
autoTriggerCollectRequestActionListener()
|
||||
}
|
||||
|
||||
private fun customerStatusListener() {
|
||||
@@ -530,6 +531,21 @@ constructor(
|
||||
}
|
||||
}
|
||||
|
||||
private fun autoTriggerCollectRequestActionListener() {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
// Waiting for all listeners before triggering auto actions
|
||||
delay(300.milliseconds)
|
||||
if (source !is SendMoneyScreenSource.CollectRequest) {
|
||||
return@launch
|
||||
}
|
||||
|
||||
// Auto trigger decline for Collect Request
|
||||
if (source.autoTriggerSendMoneyAction == SendMoneyAction.Decline) {
|
||||
declineCollectRequest()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkFtueNudgeVisibility() {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val ftueNudgeCounter =
|
||||
|
||||
@@ -426,7 +426,8 @@ constructor(
|
||||
payerVpa = collectRequestEntity.payerVpa,
|
||||
source =
|
||||
if (isFromInAppNotification) CollectRequestSource.IAN
|
||||
else CollectRequestSource.PN
|
||||
else CollectRequestSource.PN,
|
||||
autoTriggerSendMoneyAction = null
|
||||
)
|
||||
|
||||
if (collectRequestEntity.collectType == REQUEST_TYPE_MANDATE) {
|
||||
|
||||
Reference in New Issue
Block a user