Bugfix penny drop (#3832)

* Condition change for setup auto pay

* Add extra condition for auto pay

Co-authored-by: rishvik-vardhan <rishvik.vardhan@navi.com>
This commit is contained in:
Hitesh Kumar
2022-09-20 14:46:35 +05:30
committed by GitHub Enterprise
parent ff3770dc05
commit 4e4bce6451
4 changed files with 19 additions and 6 deletions

View File

@@ -46,6 +46,7 @@ data class BankAccountDetails (
@SerializedName("accountNumber") val accountNumber: String? = null,
@SerializedName("bankName") val bankName: String? = null,
@SerializedName("status") val status: String? = null,
@SerializedName("source") val source: String? = null,
)
data class HomeLoanEmiDetail (

View File

@@ -15,11 +15,10 @@ import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.digio.`in`.esign2sdk.DigioResponseListener
import com.navi.common.extensions.isNotNullAndNotEmpty
import com.navi.base.model.CtaData
import com.navi.common.firebasedb.FirebaseStatusType
import com.navi.common.firebasedb.MANDATE
import com.navi.common.firebasedb.MANDATE_COMPLETE
import com.navi.base.model.CtaData
import com.navi.common.utils.*
import com.navi.naviwidgets.callbacks.WidgetCallback
import com.navi.naviwidgets.utils.setBackgroundColor
@@ -42,9 +41,10 @@ import com.naviapp.payment.models.ProviderType
import com.naviapp.personalloan.getloan.bankdetailsautodebit.viewmodels.EnachSharedVM
import com.naviapp.personalloan.getloan.helpers.EnachHelper
import com.naviapp.personalloan.getloan.helpers.EnachStub
import com.naviapp.utils.*
import com.naviapp.utils.Constants
import com.naviapp.utils.Constants.VERIFICATION_PENDING
import com.naviapp.utils.ifLet
import com.naviapp.utils.orValue
import com.naviapp.utils.setCornerRadius
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
@@ -98,7 +98,7 @@ class HomeLoanAutoDebitFragment : BaseHomeLoanFragment(), WidgetCallback,
response.content?.note?.iconCode
)
binding.bankVerifiedIv.setImageResource(
if (response.content?.bankDetails?.status != VERIFICATION_PENDING && response.content?.bankDetails?.bankId.isNotNullAndNotEmpty())
if (viewModel.shouldSetUpAutoPay())
R.drawable.ic_bank_verified
else
R.drawable.ic_bank_unverified
@@ -285,7 +285,7 @@ class HomeLoanAutoDebitFragment : BaseHomeLoanFragment(), WidgetCallback,
private fun setupAutoDebit() {
if (!isAdded && activity?.isFinishing.orTrue()) return
if (viewModel.autoDebitDetails.value?.content?.bankDetails?.status != VERIFICATION_PENDING && viewModel.autoDebitDetails.value?.content?.bankDetails?.bankId.isNotNullAndNotEmpty()) {
if (viewModel.shouldSetUpAutoPay()) {
naviAnalyticsEventTracker.onAutopayClicked()
showLoader()

View File

@@ -19,6 +19,8 @@ import com.naviapp.homeloandigital.posteligibility.repository.HomeLoanAutoDebitR
import com.naviapp.models.response.AdditionalDataAsyncResponse
import com.naviapp.models.response.AutoDebitMandateDetails
import com.naviapp.models.response.EnachMandateDetailsResponse
import com.naviapp.utils.Constants.APP
import com.naviapp.utils.Constants.VERIFICATION_PENDING
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import javax.inject.Inject
@@ -99,6 +101,15 @@ class HomeLoanAutoDebitFragmentVM @Inject constructor(private val repository: Ho
}
}
fun shouldSetUpAutoPay(): Boolean {
autoDebitDetails.value?.content?.bankDetails?.let {
if (it.bankId.isNullOrEmpty()) return false
return ((it.source == APP) || (it.status == VERIFICATION_PENDING && it.source != APP) ||
(it.status.isNullOrEmpty() && (it.source.isNullOrEmpty())))
}
return false
}
fun deInitStopApiPolling() {
_stopApiPolling.value = null
}

View File

@@ -270,6 +270,7 @@ object Constants {
const val BANK_ID = "bankId"
const val REQUEST_ID = "requestId"
const val VERIFICATION_PENDING = "PENDING"
const val APP = "APP"
const val MANDATE_CHANGE = "mandateChange"
const val AUTO_DEBIT_BACK = "AUTO_DEBIT_BACK"
const val CARD_GROUP_REFERENCE_ID = "cardGroupReferenceId"