TP-34890: Fix DG KYC page navigation issue if verification fails internally (#7142)
This commit is contained in:
committed by
GitHub Enterprise
parent
76350b80b5
commit
2888afefb3
@@ -12,6 +12,7 @@ import com.navi.base.model.ActionData
|
||||
import com.navi.base.model.BottomSheetData
|
||||
import com.navi.common.model.ActionCheckResponse
|
||||
import com.navi.naviwidgets.models.NaviWidget
|
||||
import com.naviapp.home.model.WidgetBottomSheetWithParams
|
||||
import com.naviapp.models.response.AppActionObjective
|
||||
|
||||
data class GoldKycCheckResponse(
|
||||
@@ -21,6 +22,8 @@ data class GoldKycCheckResponse(
|
||||
val bottomSheetData: BottomSheetData? = null,
|
||||
@SerializedName("widgetisedBottomSheetData")
|
||||
val widgetisedBottomSheetData: List<NaviWidget>? = null,
|
||||
@SerializedName("successBottomSheetWithParams")
|
||||
val successBottomSheet: WidgetBottomSheetWithParams? = null,
|
||||
@SerializedName("actionData")
|
||||
val actionData: ActionData? = null,
|
||||
)
|
||||
|
||||
@@ -226,7 +226,7 @@ class DigitalGoldKycFragment : BaseFragment(), WidgetCallback, NewBottomSheetLis
|
||||
naviWidget.widgetData?.inputTextData?.savedText = viewModel.getPanNumber()
|
||||
}
|
||||
}
|
||||
if(naviWidget is LabeledDateInputWidgetModel) {
|
||||
if (naviWidget is LabeledDateInputWidgetModel) {
|
||||
if (viewModel.getDob()
|
||||
.isNotNullAndNotEmpty() && naviWidget?.widgetData?.fieldName == DOB
|
||||
) {
|
||||
@@ -237,12 +237,16 @@ class DigitalGoldKycFragment : BaseFragment(), WidgetCallback, NewBottomSheetLis
|
||||
naviAdapter.setData(listOfNaviWidget)
|
||||
}
|
||||
|
||||
private fun handlePanVerifyResponse(goldKycResponse: GoldKycCheckResponse) {
|
||||
goldKycResponse.bottomSheetData?.let { showCommonBottomSheet(it) } ?: kotlin.run {
|
||||
goldKycResponse.paymentCheckResponse?.let {
|
||||
private fun handlePanVerifyResponse(kycVerifyResponse: GoldKycCheckResponse) {
|
||||
|
||||
kycVerifyResponse.bottomSheetData?.let { showCommonBottomSheet(it) } ?: run {
|
||||
|
||||
kycVerifyResponse.paymentCheckResponse?.let {
|
||||
navigateToNextScreen(it)
|
||||
} ?: kotlin.run {
|
||||
viewModel.digitalGoldKycWidgets.value?.extraData?.successBottomSheet?.let { successBottomSheet ->
|
||||
} ?: run {
|
||||
|
||||
kycVerifyResponse.successBottomSheet?.let { successBottomSheet ->
|
||||
|
||||
val displayTime = successBottomSheet.displayTime ?: 1000L
|
||||
successBottomSheet.bottomSheetData?.data?.let { widgetList ->
|
||||
val bottomSheet = showWidgetBottomSheet(
|
||||
@@ -252,14 +256,14 @@ class DigitalGoldKycFragment : BaseFragment(), WidgetCallback, NewBottomSheetLis
|
||||
lifecycleScope.launchWhenResumed {
|
||||
delay(displayTime)
|
||||
bottomSheet.safelyDismissDialog()
|
||||
navigateWith(goldKycResponse)
|
||||
navigateWith(kycVerifyResponse)
|
||||
}
|
||||
|
||||
} ?: kotlin.run {
|
||||
navigateWith(goldKycResponse)
|
||||
} ?: run {
|
||||
navigateWith(kycVerifyResponse)
|
||||
}
|
||||
} ?: kotlin.run {
|
||||
navigateWith(goldKycResponse)
|
||||
} ?: run {
|
||||
navigateWith(kycVerifyResponse)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -385,7 +389,7 @@ class DigitalGoldKycFragment : BaseFragment(), WidgetCallback, NewBottomSheetLis
|
||||
}
|
||||
|
||||
private fun fetchPanVerifyResponse(actionData: ActionData?) {
|
||||
if(!isInputValid()) {
|
||||
if (!isInputValid()) {
|
||||
updateNextButton()
|
||||
return
|
||||
}
|
||||
@@ -407,12 +411,16 @@ class DigitalGoldKycFragment : BaseFragment(), WidgetCallback, NewBottomSheetLis
|
||||
val itemView = binding.rvGoldItems.findViewHolderForAdapterPosition(index)?.itemView
|
||||
val input = (itemView as? BaseInputWidget)?.getUserInputPostValidation()
|
||||
if (itemView is BaseInputWidget && input.isNullOrEmpty()) {
|
||||
widgetUserData((naviBaseAdapterModel as? InputWidgetModel)?.widgetData?.fieldName.orEmpty(), input.orEmpty())
|
||||
widgetUserData(
|
||||
(naviBaseAdapterModel as? InputWidgetModel)?.widgetData?.fieldName.orEmpty(),
|
||||
input.orEmpty()
|
||||
)
|
||||
allValidationsPassed = false
|
||||
}
|
||||
}
|
||||
return allValidationsPassed
|
||||
}
|
||||
|
||||
private fun showShimmer() {
|
||||
binding.shimmerLayout.startShimmer()
|
||||
binding.shimmerLayout.isVisible = true
|
||||
@@ -479,6 +487,7 @@ class DigitalGoldKycFragment : BaseFragment(), WidgetCallback, NewBottomSheetLis
|
||||
viewModel.setPinCode(value as String)
|
||||
updateNextButton()
|
||||
}
|
||||
|
||||
DOB -> {
|
||||
viewModel.setDob(value as String)
|
||||
updateNextButton()
|
||||
@@ -530,7 +539,7 @@ class DigitalGoldKycFragment : BaseFragment(), WidgetCallback, NewBottomSheetLis
|
||||
naviAdapterModel.widgetData?.inputTextData?.savedText = viewModel.getPanNumber()
|
||||
}
|
||||
}
|
||||
if(naviAdapterModel is LabeledDateInputWidgetModel) {
|
||||
if (naviAdapterModel is LabeledDateInputWidgetModel) {
|
||||
if (viewModel.getDob()
|
||||
.isNotNullAndNotEmpty() && naviAdapterModel.widgetData?.fieldName == DOB
|
||||
&& !(viewModel.getDob()
|
||||
|
||||
Reference in New Issue
Block a user