From 2a54d5f015ce034016fc0d44ff1a3f5926ce211a Mon Sep 17 00:00:00 2001 From: Mehul Garg Date: Tue, 17 Jun 2025 11:52:23 +0530 Subject: [PATCH] NTP-68381 | Mehul | email deeplink handling (#16552) --- .../category/ui/BillCategoryScreenV2.kt | 72 +++++++++++++++++-- 1 file changed, 66 insertions(+), 6 deletions(-) diff --git a/android/navi-bbps/src/main/kotlin/com/navi/bbps/feature/category/ui/BillCategoryScreenV2.kt b/android/navi-bbps/src/main/kotlin/com/navi/bbps/feature/category/ui/BillCategoryScreenV2.kt index 009cdad534..7ca24cd52e 100644 --- a/android/navi-bbps/src/main/kotlin/com/navi/bbps/feature/category/ui/BillCategoryScreenV2.kt +++ b/android/navi-bbps/src/main/kotlin/com/navi/bbps/feature/category/ui/BillCategoryScreenV2.kt @@ -823,12 +823,72 @@ fun BillCategoryScreenRenderer( viewModel.startOriginBillDetectionFlow.collectLatest { startOriginBillDetectionFlow -> viewModel.resetOriginBillDetectionReplayCache() if (startOriginBillDetectionFlow) { - if (fetchSmsPermissionState.allPermissionsGranted) { - viewModel.showLoadingBottomSheet() - openSheet() - viewModel.startDetectingBills() - } else { - requestPermission() + when (currentOriginSessionAttributes.originWidgetStatus) { + OriginWidgetStatus.SMS_FTU -> { + if (fetchSmsPermissionState.allPermissionsGranted) { + viewModel.showLoadingBottomSheet() + openSheet() + viewModel.startDetectingBills() + } else { + requestPermission() + } + } + + OriginWidgetStatus.EMAIL_FTU -> { + naviBbpsActivity.gmailAccessSignInManager.signIn( + launcher = launcher, + callback = { gmailAccessState -> + when (gmailAccessState) { + is GmailAccessState.NotInitialized -> { + Toast.makeText( + naviBbpsActivity, + R.string.bbps_email_verification_failed, + Toast.LENGTH_SHORT, + ) + .show() + + naviBbpsAnalytics.onGmailAccessSignInFailed( + source = source, + sessionAttribute = + viewModel.getNaviBbpsSessionAttributes(), + initialSource = initialSource, + ) + } + + is GmailAccessState.ServerCredentialsMissing -> { + Toast.makeText( + naviBbpsActivity, + R.string.bbps_email_verification_failed, + Toast.LENGTH_SHORT, + ) + .show() + + naviBbpsAnalytics.onGmailAccessSignInFailed( + source = source, + sessionAttribute = + viewModel.getNaviBbpsSessionAttributes(), + initialSource = initialSource, + ) + } + + else -> { + // no-op + } + } + }, + ) + } + + OriginWidgetStatus.SMS_RTU, + OriginWidgetStatus.EMAIL_RTU -> { + viewModel.handleOriginRedirectionForRtu( + detectedBills = currentOriginSessionAttributes.detectedBills + ) + } + + else -> { + // no-op + } } } }