TP-53247 | Old Loan Application ID update change fix (#9211)

This commit is contained in:
Anupam Kumar
2024-01-05 13:22:56 +05:30
committed by GitHub
parent 00f4392940
commit 30c0078ff2
2 changed files with 30 additions and 27 deletions

View File

@@ -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
}
}

View File

@@ -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)
}
}