Merge pull request #2407 from medici/bug/aa-account-discovery
Bug/aa account discovery
This commit is contained in:
@@ -57,6 +57,7 @@ class AggregatorCheckBoxAdapter(
|
||||
holder.binding.aggregatorBankName.setOnClickListener {
|
||||
//Allow user to interract only if account is not linked previously
|
||||
holder.binding.aaBankNameIv.isChecked = !holder.binding.aaBankNameIv.isChecked
|
||||
oneMoneyAccounts[position].isChecked = !oneMoneyAccounts[position].isChecked
|
||||
val tag = holder.binding.aaBankNameIv.tag
|
||||
if (tag is Account) {
|
||||
updateCheckedUi()
|
||||
@@ -77,7 +78,14 @@ class AggregatorCheckBoxAdapter(
|
||||
holder.binding.tagView.visibility = View.GONE
|
||||
holder.binding.aggregatorBankName.isClickable = true
|
||||
holder.binding.aaBankNameIv.isEnabled = true
|
||||
holder.binding.aaBankNameIv.isChecked = false
|
||||
holder.binding.aaBankNameIv.isChecked = oneMoneyAccounts[position].isChecked
|
||||
if (holder.binding.aaBankNameIv.isChecked) {
|
||||
val tag = holder.binding.aaBankNameIv.tag
|
||||
if (tag is Account) {
|
||||
updateCheckedUi()
|
||||
sharedVM.addSelectedAccountData(tag)
|
||||
}
|
||||
}
|
||||
}
|
||||
updateCheckedUi()
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ class AggregatorFipAdapter(
|
||||
|
||||
|
||||
private val fipList = oneMoneyFips
|
||||
private var lastSelectedPosition = 0
|
||||
|
||||
override fun onCreateViewHolder(
|
||||
parent: ViewGroup,
|
||||
@@ -58,6 +59,14 @@ class AggregatorFipAdapter(
|
||||
holder.binding.showMaskedNumTv.text = fipList[position].data.maskedAccNumber
|
||||
holder.binding.fipBankType.text = fipList[position].data.fiType
|
||||
holder.binding.fipBankNameIv.tag = fipList[position]
|
||||
if(lastSelectedPosition == position) {
|
||||
holder.binding.fipBankNameIv.isChecked = true
|
||||
lastSelectedPosition = -1
|
||||
val tag = holder.binding.fipBankNameIv.tag
|
||||
if (tag is Account) {
|
||||
sharedVM.addConsentAccountData(tag)
|
||||
}
|
||||
}
|
||||
updateCheckedUi()
|
||||
context?.let {
|
||||
val logoUrl = sharedVM.fipBankDetail.value?.get(fipList[position].data.fipId)?.logoUrl
|
||||
|
||||
@@ -9,6 +9,7 @@ import android.view.ViewGroup
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.navi.common.model.CtaData
|
||||
import com.navi.common.sharedpref.PreferenceManager
|
||||
import com.navi.common.utils.CommonUtils
|
||||
import com.navi.insurance.models.request.FlagUpdateRequest
|
||||
import com.naviapp.R
|
||||
import com.naviapp.analytics.utils.NaviAnalytics
|
||||
@@ -59,6 +60,7 @@ import com.onemoney.sdk.models.output.ConsentDetailsResponse
|
||||
import com.onemoney.sdk.models.output.FipList
|
||||
import com.onemoney.sdk.models.output.LoginOtpResponse
|
||||
import timber.log.Timber
|
||||
import com.onemoney.sdk.models.input.InputIdentifier
|
||||
|
||||
class AccountAggregatorFragment : BaseFragment(), FooterInteractionListener, BackListener,
|
||||
DialogCancelListener, BottomSheetListener {
|
||||
@@ -156,10 +158,12 @@ class AccountAggregatorFragment : BaseFragment(), FooterInteractionListener, Bac
|
||||
private fun initUi() {
|
||||
binding.titleTv.visibility = View.VISIBLE
|
||||
if (bankName.isNullOrEmpty()) {
|
||||
binding.bankInfoItem.root.visibility = View.GONE
|
||||
binding.bankInfoItem.aaBankNameIv.visibility = View.GONE
|
||||
binding.bankInfoItem.bankNameTv.visibility = View.GONE
|
||||
binding.bankInfoItem.showBankNameTv.visibility = View.GONE
|
||||
} else {
|
||||
binding.bankInfoItem.root.visibility = View.VISIBLE
|
||||
binding.bankInfoItem.aaBankNameIv.visibility = View.VISIBLE
|
||||
binding.bankInfoItem.bankNameTv.text = bankName
|
||||
binding.bankInfoItem.bankNameTv.visibility = View.VISIBLE
|
||||
@@ -203,18 +207,40 @@ class AccountAggregatorFragment : BaseFragment(), FooterInteractionListener, Bac
|
||||
showLoader()
|
||||
fetchLinkedAccount(
|
||||
onSuccess = {
|
||||
val linkedAccountsForFip = sharedVM.linkedAccounts.value
|
||||
val linkedAccountsForFip = sharedVM.linkedAccountsForFip.value
|
||||
if (linkedAccountsForFip.isNullOrEmpty().not()) {
|
||||
showConsentScreen(false)
|
||||
} else {
|
||||
fetchDiscoveredAccounts()
|
||||
discoverAccounts()
|
||||
}
|
||||
},
|
||||
onFailure = {
|
||||
fetchDiscoveredAccounts()
|
||||
discoverAccounts()
|
||||
})
|
||||
}
|
||||
|
||||
private fun discoverAccounts() {
|
||||
showLoader()
|
||||
val identifier = InputIdentifier()
|
||||
identifier.category = Constants.CONSENT_IDENTIFIER_CATEGORY
|
||||
identifier.type = Constants.CONSENT_IDENTIFIER_TYPE
|
||||
identifier.value = CommonUtils.getPhoneNumber()
|
||||
val identifiers: MutableList<InputIdentifier> = ArrayList()
|
||||
identifiers.add(identifier)
|
||||
val fipId = sharedVM.consentResponseData.value?.fipId.orEmpty()
|
||||
onemoney?.discoverAccounts(identifiers, fipId, object : AccountDetailsListener {
|
||||
override fun onSuccess(accountList: MutableList<Account>?) {
|
||||
hideLoader()
|
||||
fetchDiscoveredAccounts()
|
||||
}
|
||||
|
||||
override fun onFailure(onemoneyError: OnemoneyError) {
|
||||
hideLoader()
|
||||
showErrorScreen(getAggregatorErrorData())
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private fun fetchDiscoveredAccounts() {
|
||||
showLoader()
|
||||
onemoney?.getDiscoveredAccounts(object : AccountDetailsListener {
|
||||
@@ -459,6 +485,7 @@ class AccountAggregatorFragment : BaseFragment(), FooterInteractionListener, Bac
|
||||
// refresh content with consent details
|
||||
// param: fetchLinkedAccount controls whether to get fresh linked account list from onemoney or not.
|
||||
private fun showConsentScreen(fetchLinkedAccount: Boolean = false) {
|
||||
binding.bankInfoItem.root.visibility = View.GONE
|
||||
binding.bankInfoItem.aaBankNameIv.visibility = View.INVISIBLE
|
||||
binding.bankInfoItem.bankNameTv.visibility = View.INVISIBLE
|
||||
binding.bankInfoItem.showBankNameTv.visibility = View.INVISIBLE
|
||||
@@ -523,6 +550,7 @@ class AccountAggregatorFragment : BaseFragment(), FooterInteractionListener, Bac
|
||||
|
||||
//on back press
|
||||
private fun showLinkingScreen() {
|
||||
binding.bankInfoItem.root.visibility = View.VISIBLE
|
||||
binding.bankInfoItem.aaBankNameIv.visibility = View.VISIBLE
|
||||
binding.bankInfoItem.bankNameTv.visibility = View.VISIBLE
|
||||
binding.bankInfoItem.showBankNameTv.visibility = View.VISIBLE
|
||||
@@ -537,7 +565,7 @@ class AccountAggregatorFragment : BaseFragment(), FooterInteractionListener, Bac
|
||||
binding.consentDetails.visibility = View.GONE
|
||||
binding.lineView.visibility = View.VISIBLE
|
||||
binding.rejectConsentBtn.visibility = View.GONE
|
||||
fetchDiscoveredAccounts()
|
||||
discoverAccounts()
|
||||
}
|
||||
|
||||
private fun getButtonTitle(): String {
|
||||
@@ -688,7 +716,7 @@ class AccountAggregatorFragment : BaseFragment(), FooterInteractionListener, Bac
|
||||
KEY_OTP_DETAILS,
|
||||
OtpDetails(
|
||||
getString(R.string.enter_bank_otp_text),
|
||||
showTermsAndConditions = true,
|
||||
showTermsAndConditions = false,
|
||||
showPoweredByIcon = true
|
||||
)
|
||||
)
|
||||
|
||||
@@ -5,5 +5,6 @@ import com.onemoney.sdk.models.input.Account
|
||||
|
||||
data class OneMoneyAccount(
|
||||
@SerializedName("account") val account: Account? = null,
|
||||
@SerializedName("isLinked") val isLinked: Boolean = false
|
||||
@SerializedName("isLinked") val isLinked: Boolean = false,
|
||||
@SerializedName("isChecked") var isChecked: Boolean = true
|
||||
)
|
||||
@@ -162,6 +162,8 @@ object Constants {
|
||||
const val SA = "sa"
|
||||
const val URL = "url"
|
||||
const val ADDITIONAL_DATA_NEEDED = "additional_data_needed"
|
||||
const val CONSENT_IDENTIFIER_CATEGORY = "STRONG"
|
||||
const val CONSENT_IDENTIFIER_TYPE = "MOBILE"
|
||||
const val CONSENT_INITIATOR_PL = "PL"
|
||||
const val CONSENT_INITIATOR_HL = "HL"
|
||||
const val EPFO_PAGE_TYPE = "EPFO_PAGE_TYPE"
|
||||
|
||||
@@ -707,8 +707,8 @@
|
||||
<string name="bank_statement_only_option_title">Upload Bank Statement PDF</string>
|
||||
<string name="bank_statement_only_option_subtitle">Last 6 months downloaded statement</string>
|
||||
<string name="net_banking_login">Net Banking Login</string>
|
||||
<string name="account_aggregator_option">Account Aggregator</string>
|
||||
<string name="account_aggregator_subtitle">OTP based bank statements</string>
|
||||
<string name="account_aggregator_option">Bank Statement via OTP</string>
|
||||
<string name="account_aggregator_subtitle">From RBI Licensed Account Aggregator</string>
|
||||
<string name="login_details_info">We do not store your Login details</string>
|
||||
<string name="bank_statement_pdf_title">Bank Statement PDF</string>
|
||||
<string name="web_view_failed">Failed loading app!</string>
|
||||
@@ -809,7 +809,7 @@
|
||||
<string name="discovered_accounts">Accounts discovered for your mobile number</string>
|
||||
<string name="link_accounts">Link these accounts with Onemoney</string>
|
||||
<string name="fip_list">Accounts linked to Onemoney</string>
|
||||
<string name="account_number_value">Account %d</string>
|
||||
<string name="account_number_value">Deposit Account %d</string>
|
||||
<string name="chat_help">Need Help? Get in touch</string>
|
||||
<string name="aadhar_pending_msg">We are registering the auto-pay mandate with your bank. It may take up to 2 days.</string>
|
||||
<string name="auto_pay_setup_failed">Auto-pay setup failed. Please retry again or use another bank</string>
|
||||
|
||||
Reference in New Issue
Block a user