TP-53247 | Old Loan Application ID update change fix (#9211)
This commit is contained in:
@@ -27,6 +27,7 @@ import com.naviapp.personalloan.getloan.summary.repositories.SummaryRepository
|
||||
import com.naviapp.personalloanrevamp.models.FLOW_LOAN_SUMMARY
|
||||
import com.naviapp.personalloanrevamp.models.request.UpdateEmiDateRequest
|
||||
import com.naviapp.personalloanrevamp.models.response.LoanSummaryViewResponse
|
||||
import com.naviapp.utils.LOAN_APPLICATION_ID
|
||||
import com.naviapp.utils.SELECTED_EMI_DATE
|
||||
import com.naviapp.utils.WHATSAPP_COMMUNICATION_ENABLED
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -66,6 +67,8 @@ class LoanSummaryV2ViewModel(private val repository: SummaryRepository = Summary
|
||||
|
||||
private var footerDescriptionClickableText: ClickableText? = null
|
||||
|
||||
private var loanApplicationId: String? = null
|
||||
|
||||
fun fetchSummary(loanApplicationId: String) {
|
||||
val selectedEmiDate = PreferenceManager.getStringPreference(SELECTED_EMI_DATE)
|
||||
viewModelScope.launch {
|
||||
@@ -144,6 +147,7 @@ class LoanSummaryV2ViewModel(private val repository: SummaryRepository = Summary
|
||||
val response = repository.fetchLoanBasicDetails()
|
||||
if (response.isValidResponse()) {
|
||||
_loanBasicDetails.value = response.data
|
||||
updateLoanApplicationId(response.data?.loanApplicationId)
|
||||
} else {
|
||||
setErrorData(
|
||||
response.errors, response.error,
|
||||
@@ -210,4 +214,15 @@ class LoanSummaryV2ViewModel(private val repository: SummaryRepository = Summary
|
||||
return this.footerDescriptionClickableText
|
||||
}
|
||||
|
||||
fun updateLoanApplicationId(loanApplicationId: String?) {
|
||||
this.loanApplicationId = loanApplicationId
|
||||
loanApplicationId?.let {
|
||||
PreferenceManager.setStringPreference(LOAN_APPLICATION_ID, it)
|
||||
}
|
||||
}
|
||||
|
||||
fun getLoanApplicationId(): String? {
|
||||
return this.loanApplicationId
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
package com.navi.pl.dynamic.fragment
|
||||
|
||||
import com.navi.naviwidgets.R as WidgetsR
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
@@ -23,6 +22,7 @@ import com.navi.base.model.ClickableTextType
|
||||
import com.navi.base.model.CtaData
|
||||
import com.navi.base.sharedpref.PreferenceManager
|
||||
import com.navi.base.utils.BaseUtils
|
||||
import com.navi.base.utils.isNotNullAndNotEmpty
|
||||
import com.navi.base.utils.isNull
|
||||
import com.navi.base.utils.orElse
|
||||
import com.navi.base.utils.orFalse
|
||||
@@ -36,17 +36,14 @@ import com.navi.common.model.InfoBottomSheetConfig
|
||||
import com.navi.common.model.UploadDataAsyncResponse
|
||||
import com.navi.common.ui.fragment.BaseFragment
|
||||
import com.navi.common.utils.ApiPollScheduler
|
||||
import com.navi.common.utils.changeValueOfExistingCtaParams
|
||||
import com.navi.common.utils.getCtaParamValueForKey
|
||||
import com.navi.common.utils.log
|
||||
import com.navi.common.utils.observeNonNull
|
||||
import com.navi.common.utils.observeNullable
|
||||
import com.navi.common.utils.toBundle
|
||||
import com.navi.naviwidgets.actions.ShowInfoBottomSheetV3Action
|
||||
import com.navi.naviwidgets.base.BaseInputWidget
|
||||
import com.navi.naviwidgets.callbacks.WidgetCallback
|
||||
import com.navi.naviwidgets.databinding.LayoutRewardsInfoBinding
|
||||
import com.navi.naviwidgets.models.response.LoanRepaymentBottomSheetData
|
||||
import com.navi.naviwidgets.utils.getInfoBottomSheetDataFromJsonObject
|
||||
import com.navi.naviwidgets.utils.setBackgroundColor
|
||||
import com.navi.naviwidgets.widgets.labledtextinput.InputTextWidgetMeta
|
||||
@@ -68,7 +65,6 @@ import com.naviapp.databinding.PlFragmentLoanSummaryV2Binding
|
||||
import com.naviapp.models.UserProfile
|
||||
import com.naviapp.models.request.LoanFeeDetailsRequest
|
||||
import com.naviapp.models.request.SendOtpForDisbursementRequest
|
||||
import com.naviapp.models.response.LoanBasicDetailsResponse
|
||||
import com.naviapp.models.response.LoanDetailsV2AdditionData
|
||||
import com.naviapp.models.response.Medium
|
||||
import com.naviapp.models.response.NotificationSettingsResponse
|
||||
@@ -93,13 +89,13 @@ import com.naviapp.utils.Constants.FLOW_TYPE
|
||||
import com.naviapp.utils.Constants.PL_JOURNEY_POLLING_INITIAL_DELAY_IN_SECONDS
|
||||
import com.naviapp.utils.Constants.PL_SCREEN_ACTIVITY
|
||||
import com.naviapp.utils.Constants.USER_SELECTED
|
||||
import com.naviapp.utils.LOAN_APPLICATION_ID
|
||||
import com.naviapp.utils.SELECTED_EMI_DATE
|
||||
import com.naviapp.utils.getWidgetPositionFromWidgetId
|
||||
import com.naviapp.utils.isValidEmail
|
||||
import com.naviapp.utils.navigateToClickableText
|
||||
import com.naviapp.utils.setPadding
|
||||
import com.naviapp.utils.setTextColorFromString
|
||||
import com.navi.naviwidgets.R as WidgetsR
|
||||
|
||||
class LoanSummaryV2Fragment :
|
||||
BaseFragment(),
|
||||
@@ -111,7 +107,6 @@ class LoanSummaryV2Fragment :
|
||||
|
||||
private lateinit var binding: PlFragmentLoanSummaryV2Binding
|
||||
private val viewModel by lazy { ViewModelProvider(this)[LoanSummaryV2ViewModel::class.java] }
|
||||
private var loanApplicationId: String? = null
|
||||
private val eventTracker by lazy { NaviAnalytics.naviAnalytics.GetLoan(screenName) }
|
||||
private var listener: FragmentInteractionListener? = null
|
||||
private var headerListener: NaviHeaderView.InteractionListener? = null
|
||||
@@ -134,9 +129,7 @@ class LoanSummaryV2Fragment :
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
loanApplicationId =
|
||||
arguments?.getString(Constants.PERSONAL_LOAN_APPLICATION_ID)
|
||||
?: PreferenceManager.getStringPreference(LOAN_APPLICATION_ID)
|
||||
viewModel.updateLoanApplicationId(arguments?.getString(Constants.PERSONAL_LOAN_APPLICATION_ID))
|
||||
}
|
||||
|
||||
private fun initAsync(asyncResponse: UploadDataAsyncResponse) {
|
||||
@@ -200,10 +193,8 @@ class LoanSummaryV2Fragment :
|
||||
|
||||
private fun fetchSummary() {
|
||||
showLoader()
|
||||
val id = loanApplicationId
|
||||
if (!id.isNullOrBlank()) {
|
||||
viewModel.fetchSummary(id)
|
||||
PreferenceManager.setStringPreference(LOAN_APPLICATION_ID, id)
|
||||
if (viewModel.getLoanApplicationId().isNotNullAndNotEmpty()) {
|
||||
viewModel.fetchSummary(viewModel.getLoanApplicationId().toString())
|
||||
} else viewModel.fetchLoanBasicDetails()
|
||||
}
|
||||
|
||||
@@ -216,7 +207,7 @@ class LoanSummaryV2Fragment :
|
||||
initData(loanSummaryViewResponse)
|
||||
setPageBackgroundColor(loanSummaryViewResponse.content?.pageBgColor)
|
||||
}
|
||||
viewModel.loanBasicDetails.observeNonNull(this) { handleLoanBasicDetails(it) }
|
||||
viewModel.loanBasicDetails.observeNonNull(this) { handleLoanBasicDetails() }
|
||||
viewModel.signLoanAgreementResponse.observeNonNull(this) { initAsync(it) }
|
||||
viewModel.signLoanAgreementStatus.observeNonNull(this) { handleAsyncResponse(it.status) }
|
||||
viewModel.communicationMediums.observeNonNull(this) { handleCommunicationMediums(it) }
|
||||
@@ -299,14 +290,11 @@ class LoanSummaryV2Fragment :
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleLoanBasicDetails(loanDetails: LoanBasicDetailsResponse) {
|
||||
viewModel.fetchSummary(loanDetails.loanApplicationId.orEmpty())
|
||||
PreferenceManager.setStringPreference(
|
||||
LOAN_APPLICATION_ID,
|
||||
loanDetails.loanApplicationId.orEmpty()
|
||||
)
|
||||
loanApplicationId = loanDetails.loanApplicationId
|
||||
if (loanApplicationId.isNullOrBlank()) eventTracker.wrongLoanApplicationIdReceived()
|
||||
private fun handleLoanBasicDetails() {
|
||||
if (viewModel.getLoanApplicationId().isNotNullAndNotEmpty()) {
|
||||
viewModel.fetchSummary(viewModel.getLoanApplicationId().toString())
|
||||
}
|
||||
if (viewModel.getLoanApplicationId().isNullOrBlank()) eventTracker.wrongLoanApplicationIdReceived()
|
||||
else eventTracker.loanApplicationIdReceived()
|
||||
}
|
||||
|
||||
@@ -410,8 +398,7 @@ class LoanSummaryV2Fragment :
|
||||
|
||||
private fun applyLoan() {
|
||||
NaviTrackEvent.setStartTs(screenName)
|
||||
val loanId = loanApplicationId
|
||||
if (loanId.isNullOrBlank()) {
|
||||
if (viewModel.getLoanApplicationId().isNullOrBlank()) {
|
||||
eventTracker.loanApplicationIdError()
|
||||
} else {
|
||||
showLoader()
|
||||
@@ -420,7 +407,7 @@ class LoanSummaryV2Fragment :
|
||||
email = binding.emailCardInputWidget.getUserInputPostValidation()?.trim()
|
||||
)
|
||||
} else UserProfile()
|
||||
viewModel.signLoanAgreement(loanId, userProfile)
|
||||
viewModel.signLoanAgreement(viewModel.getLoanApplicationId().toString(), userProfile)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -668,7 +655,7 @@ class LoanSummaryV2Fragment :
|
||||
}
|
||||
|
||||
private fun postSelectedEmiDate(selectedEmiDate: String, flowType: String) {
|
||||
loanApplicationId?.let {
|
||||
viewModel.getLoanApplicationId()?.let {
|
||||
showLoader()
|
||||
viewModel.postSelectedEmiDate(it, selectedEmiDate, flowType)
|
||||
}
|
||||
@@ -727,4 +714,5 @@ class LoanSummaryV2Fragment :
|
||||
val bottomSheet = InformationBottomSheet.getInstance(data)
|
||||
safelyShowBottomSheet(bottomSheet, InformationBottomSheet.TAG)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user