From b1bed219d981997053039f5d20beab6ea2fa4cd2 Mon Sep 17 00:00:00 2001 From: Shaurya Rehan Date: Fri, 2 May 2025 21:07:39 +0530 Subject: [PATCH] NTP-60715 | changed launched effect for experiment (#16038) --- .../paytocontacts/ui/PayToContactsScreen.kt | 24 ++++++++++--------- .../viewmodel/PayToContactsViewModel.kt | 4 ++++ 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/paytocontacts/ui/PayToContactsScreen.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/paytocontacts/ui/PayToContactsScreen.kt index d7646a9346..56b9ab5ed8 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/paytocontacts/ui/PayToContactsScreen.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/paytocontacts/ui/PayToContactsScreen.kt @@ -261,7 +261,7 @@ fun PayToContactsScreen( } val onAllowPermissionButtonClicked = { - payToContactsViewModel.isPermissionLaunchedFromAllowClick = true + payToContactsViewModel.onPermissionLaunchedFromAllowClick(isFromAllowClick = true) readContactsPermissionsState.launchMultiplePermissionRequest() } @@ -304,27 +304,29 @@ fun PayToContactsScreen( val isContactListNonEmpty by payToContactsViewModel.isSavedContactListNonEmpty.collectAsStateWithLifecycle() - LaunchedEffect(readContactsPermissionsState.allPermissionsGranted) { + LaunchedEffect(key1 = readContactsPermissionsState.allPermissionsGranted) { if (readContactsPermissionsState.allPermissionsGranted) { payToContactsViewModel.updateContactPermissionStatus(isContactPermissionGranted = true) payToContactsViewModel.fetchContacts() } else { - payToContactsViewModel.updateContactPermissionStatus(false) + payToContactsViewModel.updateContactPermissionStatus(isContactPermissionGranted = false) naviPayAnalytics.onSendToContactsLoaded( naviPaySessionAttributes = payToContactsViewModel.getNaviPaySessionAttributes(), isPermissionGranted = false, isContactListEmpty = contactList.isEmpty(), isFrequentOrderListEmpty = filteredFrequentOrdersList.isEmpty(), ) + } + } - if ( - isAutoOpenContactPermissionExperimentEnabled && - !payToContactsViewModel.isPermissionPopupSeenOnLanded - ) { - payToContactsViewModel.onPermissionPopupSeenOnLanded() - payToContactsViewModel.isPermissionLaunchedFromAllowClick = false - readContactsPermissionsState.launchMultiplePermissionRequest() - } + LaunchedEffect(key1 = isAutoOpenContactPermissionExperimentEnabled) { + if ( + isAutoOpenContactPermissionExperimentEnabled && + !payToContactsViewModel.isPermissionPopupSeenOnLanded + ) { + payToContactsViewModel.onPermissionPopupSeenOnLanded() + payToContactsViewModel.onPermissionLaunchedFromAllowClick(isFromAllowClick = false) + readContactsPermissionsState.launchMultiplePermissionRequest() } } diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/paytocontacts/viewmodel/PayToContactsViewModel.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/paytocontacts/viewmodel/PayToContactsViewModel.kt index b2dce05578..2f62a009a0 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/paytocontacts/viewmodel/PayToContactsViewModel.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/paytocontacts/viewmodel/PayToContactsViewModel.kt @@ -410,6 +410,10 @@ constructor( isPermissionPopupSeenOnLanded = true } + fun onPermissionLaunchedFromAllowClick(isFromAllowClick: Boolean) { + isPermissionLaunchedFromAllowClick = isFromAllowClick + } + fun updatePermissionResult(permissionResult: NaviPermissionResult) { _permissionResult.update { permissionResult } }