From 08c7052b2eda019766b1fcb15bc22da232d8a894 Mon Sep 17 00:00:00 2001 From: Aparna Vadlamani Date: Mon, 16 Dec 2024 17:05:36 +0530 Subject: [PATCH] NTP-14898 Notify Me HP Nudge fixes (#14154) --- android/app/build.gradle | 1 - .../analytics/AppSettingsAnalytics.kt | 15 ++++ .../ui/screens/NotificationSettingsScreen.kt | 88 ++++++++++++++----- .../NotificationSettingsScreenComponents.kt | 45 ---------- .../utils/NotificationSettingsUtils.kt | 61 ++++++------- .../home/ui/content/HomeNotifyMeWidget.kt | 42 +++++---- .../application-platform/navi-ap/build.gradle | 1 - android/navi-bbps/build.gradle | 1 - android/navi-coin/build.gradle | 1 - android/navi-common/build.gradle | 1 + .../common/permission/PermissionResult.kt | 65 ++++++++++++++ .../navi/common/utils/CommonNaviAnalytics.kt | 18 ++-- android/navi-cycs/build.gradle | 1 - android/navi-insurance/build.gradle | 1 - android/navi-pay/build.gradle | 1 - android/navi-rr/build.gradle | 1 - 16 files changed, 211 insertions(+), 132 deletions(-) create mode 100644 android/navi-common/src/main/java/com/navi/common/permission/PermissionResult.kt diff --git a/android/app/build.gradle b/android/app/build.gradle index 7798bd0e7c..cc7cecf2dd 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -267,7 +267,6 @@ dependencies { implementation project(":navi-pay") implementation project(":navi-payment") implementation project(":navi-rr") - implementation libs.accompanist.permissions implementation libs.accompanist.systemuicontroller implementation libs.android.gms.playServicesAds implementation libs.android.gms.playServicesAuth diff --git a/android/app/src/main/java/com/naviapp/appsettings/analytics/AppSettingsAnalytics.kt b/android/app/src/main/java/com/naviapp/appsettings/analytics/AppSettingsAnalytics.kt index 4ea2b9ba49..3b3ed6f336 100644 --- a/android/app/src/main/java/com/naviapp/appsettings/analytics/AppSettingsAnalytics.kt +++ b/android/app/src/main/java/com/naviapp/appsettings/analytics/AppSettingsAnalytics.kt @@ -75,6 +75,21 @@ class AppSettingsAnalytics { } inner class NotificationSettings { + fun onPushNotificationPermissionGranted() { + NaviTrackEvent.trackEvent( + eventName = + analyticsPrefix + "notification_screen_push_notification_permission_granted" + ) + } + + fun onPushNotificationPermissionDenied(inAppAllowable: Boolean) { + NaviTrackEvent.trackEvent( + eventName = + analyticsPrefix + "notification_screen_push_notification_permission_denied", + eventValues = mapOf("in_app_allowable" to inAppAllowable.toString()) + ) + } + fun onNotificationScreenLanded() { NaviTrackEvent.trackEvent(eventName = analyticsPrefix + "notification_screen_land") } diff --git a/android/app/src/main/java/com/naviapp/appsettings/ui/screens/NotificationSettingsScreen.kt b/android/app/src/main/java/com/naviapp/appsettings/ui/screens/NotificationSettingsScreen.kt index da941e3c93..622822b366 100644 --- a/android/app/src/main/java/com/naviapp/appsettings/ui/screens/NotificationSettingsScreen.kt +++ b/android/app/src/main/java/com/naviapp/appsettings/ui/screens/NotificationSettingsScreen.kt @@ -7,8 +7,7 @@ package com.naviapp.appsettings.ui.screens -import androidx.activity.compose.rememberLauncherForActivityResult -import androidx.activity.result.contract.ActivityResultContracts +import android.Manifest import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -29,9 +28,14 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import com.google.accompanist.permissions.ExperimentalPermissionsApi +import com.navi.common.permission.PermissionResult +import com.navi.common.permission.rememberMultiplePermissions import com.naviapp.R import com.naviapp.appsettings.activity.AppSettingsActivity import com.naviapp.appsettings.analytics.AppSettingsAnalytics +import com.naviapp.appsettings.model.notificationSettings.BottomSheetContent +import com.naviapp.appsettings.model.notificationSettings.NotificationSettingsBottomSheetType import com.naviapp.appsettings.model.notificationSettings.NotificationSettingsUiEvents import com.naviapp.appsettings.model.notificationSettings.SettingsState import com.naviapp.appsettings.ui.bottomSheets.NotificationSettingsBottomSheet @@ -51,6 +55,7 @@ import com.naviapp.models.response.NotificationSettings import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.navigation.DestinationsNavigator +@OptIn(ExperimentalPermissionsApi::class) @Destination @Composable fun NotificationSettingsScreen( @@ -63,19 +68,50 @@ fun NotificationSettingsScreen( val isPushNotificationPermissionEnabled = remember { mutableStateOf(hasNotificationPermission(activity)) } - InitLifecycleListener(isPushNotificationPermissionEnabled, activity, viewModel) - val state by viewModel.state.collectAsStateWithLifecycle() - val permissionLauncher = - rememberLauncherForActivityResult( - contract = ActivityResultContracts.RequestPermission(), - onResult = { enabled -> - handleNotificationSettingChange( - viewModel, - listOf(NotificationSettings(SettingsMedium.PUSH_NOTIFICATION, enabled)) - ) + val pushNotificationPermission = + rememberMultiplePermissions(permissions = listOf(Manifest.permission.POST_NOTIFICATIONS)) { + when (it) { + PermissionResult.AllGranted -> { + analytics.onPushNotificationPermissionGranted() + } + PermissionResult.HardDenied -> { + analytics.onPushNotificationPermissionDenied(false) + viewModel.sendEvent( + NotificationSettingsUiEvents.ShowBottomSheet( + bottomSheetContent = + BottomSheetContent( + composableType = + NotificationSettingsBottomSheetType.OPEN_SETTINGS + ) + ) + ) + } + PermissionResult.ShowRationale -> { + analytics.onPushNotificationPermissionDenied(true) + } + PermissionResult.None -> {} } - ) + } + LaunchedEffect(pushNotificationPermission.allPermissionsGranted) { + if ( + isPushNotificationPermissionEnabled.value != + pushNotificationPermission.allPermissionsGranted + ) { + isPushNotificationPermissionEnabled.value = + pushNotificationPermission.allPermissionsGranted + handleNotificationSettingChange( + viewModel, + listOf( + NotificationSettings( + SettingsMedium.PUSH_NOTIFICATION, + pushNotificationPermission.allPermissionsGranted + ) + ) + ) + } + } + val state by viewModel.state.collectAsStateWithLifecycle() LaunchedEffect(Unit) { analytics.onNotificationScreenLanded() @@ -138,21 +174,25 @@ fun NotificationSettingsScreen( settingsState = settingsState, enableAllNotifications = { enableAllNotifications( - isPushNotificationPermissionEnabled.value, - settingsState, - activity, - viewModel, - permissionLauncher + isPushNotificationPermissionEnabled = + isPushNotificationPermissionEnabled.value, + settingsState = settingsState, + viewModel = viewModel, + launchPermissionRequest = { + pushNotificationPermission.launchMultiplePermissionRequest() + } ) }, onCheckedChange = { setting, enabled -> onNotificationToggleChange( - isPushNotificationPermissionEnabled.value, - setting, - enabled, - activity, - permissionLauncher, - viewModel + isPushNotificationPermissionEnabled = + isPushNotificationPermissionEnabled.value, + setting = setting, + enabled = enabled, + viewModel = viewModel, + launchPermissionRequest = { + pushNotificationPermission.launchMultiplePermissionRequest() + } ) }, ) diff --git a/android/app/src/main/java/com/naviapp/appsettings/ui/screens/NotificationSettingsScreenComponents.kt b/android/app/src/main/java/com/naviapp/appsettings/ui/screens/NotificationSettingsScreenComponents.kt index 80d73597ce..39829ccd7b 100644 --- a/android/app/src/main/java/com/naviapp/appsettings/ui/screens/NotificationSettingsScreenComponents.kt +++ b/android/app/src/main/java/com/naviapp/appsettings/ui/screens/NotificationSettingsScreenComponents.kt @@ -22,8 +22,6 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.ripple import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect -import androidx.compose.runtime.MutableState import androidx.compose.runtime.key import androidx.compose.runtime.remember import androidx.compose.ui.Alignment @@ -34,9 +32,6 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.lifecycle.Lifecycle -import androidx.lifecycle.LifecycleEventObserver -import androidx.lifecycle.compose.LocalLifecycleOwner import com.navi.base.utils.orFalse import com.navi.elex.atoms.ElexImage import com.navi.elex.atoms.ElexText @@ -44,55 +39,15 @@ import com.navi.elex.font.FontWeightEnum import com.navi.naviwidgets.utils.NaviWidgetIconUtils.ICON_PURPLE_RETRY import com.navi.naviwidgets.utils.NaviWidgetIconUtils.getImageFromIconCode import com.naviapp.R -import com.naviapp.appsettings.activity.AppSettingsActivity import com.naviapp.appsettings.analytics.AppSettingsAnalytics import com.naviapp.appsettings.model.notificationSettings.SettingsState import com.naviapp.appsettings.ui.common.ScreenSectionHeading import com.naviapp.appsettings.ui.common.SwitchableSetting import com.naviapp.appsettings.ui.common.SwitchableSettingsContainer -import com.naviapp.appsettings.utils.SettingsMedium import com.naviapp.appsettings.utils.getIconCodeFromMedium -import com.naviapp.appsettings.utils.handleNotificationSettingChange -import com.naviapp.appsettings.utils.hasNotificationPermission -import com.naviapp.appsettings.viewmodel.NotificationSettingsVM import com.naviapp.home.utils.shimmerEffect import com.naviapp.models.response.NotificationSettings -@Composable -fun InitLifecycleListener( - isPushNotificationPermissionEnabled: MutableState, - activity: AppSettingsActivity, - viewModel: NotificationSettingsVM -) { - val lifecycleOwner = LocalLifecycleOwner.current - DisposableEffect(lifecycleOwner) { - val observer = LifecycleEventObserver { _, event -> - when (event) { - Lifecycle.Event.ON_RESUME -> { - val currentPushNotificationStatus = hasNotificationPermission(activity) - if ( - isPushNotificationPermissionEnabled.value != currentPushNotificationStatus - ) { - isPushNotificationPermissionEnabled.value = currentPushNotificationStatus - handleNotificationSettingChange( - viewModel, - listOf( - NotificationSettings( - SettingsMedium.PUSH_NOTIFICATION, - currentPushNotificationStatus - ) - ) - ) - } - } - else -> {} - } - } - lifecycleOwner.lifecycle.addObserver(observer) - onDispose { lifecycleOwner.lifecycle.removeObserver(observer) } - } -} - @Composable fun NotificationSettingsContainer( settingsState: SettingsState.Success, diff --git a/android/app/src/main/java/com/naviapp/appsettings/utils/NotificationSettingsUtils.kt b/android/app/src/main/java/com/naviapp/appsettings/utils/NotificationSettingsUtils.kt index 4e73cc9c47..d51343d5e0 100644 --- a/android/app/src/main/java/com/naviapp/appsettings/utils/NotificationSettingsUtils.kt +++ b/android/app/src/main/java/com/naviapp/appsettings/utils/NotificationSettingsUtils.kt @@ -11,14 +11,11 @@ import android.Manifest import android.app.Activity import android.content.pm.PackageManager import android.os.Build -import androidx.activity.compose.ManagedActivityResultLauncher -import androidx.core.app.ActivityCompat.shouldShowRequestPermissionRationale import androidx.core.content.ContextCompat import com.navi.naviwidgets.utils.NaviWidgetIconUtils.ICON_BLACK_BELL_NOTIFICATION import com.navi.naviwidgets.utils.NaviWidgetIconUtils.ICON_PURPLE_RETRY import com.navi.naviwidgets.utils.NaviWidgetIconUtils.ICON_SMS import com.navi.naviwidgets.utils.NaviWidgetIconUtils.ICON_WHATSAPP -import com.naviapp.appsettings.activity.AppSettingsActivity import com.naviapp.appsettings.model.notificationSettings.BottomSheetContent import com.naviapp.appsettings.model.notificationSettings.NotificationSettingsBottomSheetType import com.naviapp.appsettings.model.notificationSettings.NotificationSettingsUiEvents @@ -31,25 +28,11 @@ fun hasNotificationPermission(context: Activity): Boolean { PackageManager.PERMISSION_GRANTED } -fun getNotificationPermission( - activity: AppSettingsActivity, - permissionLauncher: ManagedActivityResultLauncher, - onEvent: (NotificationSettingsUiEvents) -> Unit -) { - if ( - Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && - shouldShowRequestPermissionRationale(activity, Manifest.permission.POST_NOTIFICATIONS) - ) { - permissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS) +fun getNotificationPermission(launchPermissionRequest: () -> Unit, showBottomSheet: () -> Unit) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + launchPermissionRequest() } else { - onEvent( - NotificationSettingsUiEvents.ShowBottomSheet( - bottomSheetContent = - BottomSheetContent( - composableType = NotificationSettingsBottomSheetType.OPEN_SETTINGS - ) - ) - ) + showBottomSheet() } } @@ -76,9 +59,8 @@ fun getIconCodeFromMedium(medium: SettingsMedium?): String { fun enableAllNotifications( isPushNotificationPermissionEnabled: Boolean, settingsState: SettingsState.Success, - activity: AppSettingsActivity, viewModel: NotificationSettingsVM, - permissionLauncher: ManagedActivityResultLauncher + launchPermissionRequest: () -> Unit ) { val updatedList = settingsState.notificationSettingsList.map { notificationSetting -> @@ -91,9 +73,17 @@ fun enableAllNotifications( handleNotificationSettingChange(viewModel, updatedList) if (isPushNotificationPermissionEnabled.not()) { getNotificationPermission( - activity, - permissionLauncher, - onEvent = { event -> viewModel.sendEvent(event) } + launchPermissionRequest = launchPermissionRequest, + showBottomSheet = { + viewModel.sendEvent( + NotificationSettingsUiEvents.ShowBottomSheet( + bottomSheetContent = + BottomSheetContent( + composableType = NotificationSettingsBottomSheetType.OPEN_SETTINGS + ) + ) + ) + } ) } } @@ -102,9 +92,8 @@ fun onNotificationToggleChange( isPushNotificationPermissionEnabled: Boolean, setting: NotificationSettings, enabled: Boolean, - activity: AppSettingsActivity, - permissionLauncher: ManagedActivityResultLauncher, - viewModel: NotificationSettingsVM + viewModel: NotificationSettingsVM, + launchPermissionRequest: () -> Unit ) { if ( setting.medium == SettingsMedium.PUSH_NOTIFICATION && @@ -112,9 +101,17 @@ fun onNotificationToggleChange( isPushNotificationPermissionEnabled.not() ) { getNotificationPermission( - activity = activity, - permissionLauncher = permissionLauncher, - onEvent = { event -> viewModel.sendEvent(event) } + launchPermissionRequest = launchPermissionRequest, + showBottomSheet = { + viewModel.sendEvent( + NotificationSettingsUiEvents.ShowBottomSheet( + bottomSheetContent = + BottomSheetContent( + composableType = NotificationSettingsBottomSheetType.OPEN_SETTINGS + ) + ) + ) + } ) } else { handleNotificationSettingChange(viewModel, listOf(setting.copy(enabled = enabled))) diff --git a/android/app/src/main/java/com/naviapp/home/compose/home/ui/content/HomeNotifyMeWidget.kt b/android/app/src/main/java/com/naviapp/home/compose/home/ui/content/HomeNotifyMeWidget.kt index c6ea1ef64c..09b9353ef9 100644 --- a/android/app/src/main/java/com/naviapp/home/compose/home/ui/content/HomeNotifyMeWidget.kt +++ b/android/app/src/main/java/com/naviapp/home/compose/home/ui/content/HomeNotifyMeWidget.kt @@ -7,6 +7,7 @@ package com.naviapp.home.compose.home.ui.content +import android.Manifest import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.clickable @@ -32,10 +33,9 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.google.accompanist.permissions.ExperimentalPermissionsApi -import com.google.accompanist.permissions.isGranted -import com.google.accompanist.permissions.rememberPermissionState -import com.google.accompanist.permissions.shouldShowRationale import com.navi.common.alchemist.model.AlchemistWidgetModelDefinition +import com.navi.common.permission.PermissionResult +import com.navi.common.permission.rememberMultiplePermissions import com.navi.common.utils.CommonNaviAnalytics import com.navi.common.utils.Constants.NOTIFY_WIDGET_DATA import com.navi.elex.atoms.ElexAsyncImage @@ -55,20 +55,35 @@ fun HomeNotifyMeWidget( notifyMeAnalytics: CommonNaviAnalytics.NotifyMe = CommonNaviAnalytics.naviAnalytics.NotifyMe(HOME_SCREEN_IN_CAPS) ) { - val notificationPermission = - rememberPermissionState(permission = android.Manifest.permission.POST_NOTIFICATIONS) + val pushNotificationPermission = + rememberMultiplePermissions(permissions = listOf(Manifest.permission.POST_NOTIFICATIONS)) { + when (it) { + PermissionResult.AllGranted -> { + notifyMeAnalytics.notifyMeNudgePermissionGrantedEvent() + } + PermissionResult.HardDenied -> { + notifyMeAnalytics.notifyMeNudgePermissionDeniedEvent(inAppAllowable = false) + showBottomSheet() + } + PermissionResult.ShowRationale -> { + notifyMeAnalytics.notifyMeNudgePermissionDeniedEvent(inAppAllowable = true) + } + PermissionResult.None -> {} + } + } val widgetData = widget.widgetData?.data?.get(NOTIFY_WIDGET_DATA) as? NotifyMeWidgetData - val visible by remember { mutableStateOf(notificationPermission.status.isGranted.not()) } - LaunchedEffect(notificationPermission.status.isGranted) { - if (notificationPermission.status.isGranted) { - notifyMeAnalytics.notifyMeNudgePermissionGrantedEvent() + val visible by remember { + mutableStateOf(pushNotificationPermission.allPermissionsGranted.not()) + } + LaunchedEffect(pushNotificationPermission.allPermissionsGranted) { + if (pushNotificationPermission.allPermissionsGranted) { onPermissionGranted(true) } } if (visible) { notifyMeAnalytics.notifyMeNudgeViewEvent() NotifyMeUI( - permissionGranted = notificationPermission.status.isGranted, + permissionGranted = (pushNotificationPermission.allPermissionsGranted), widgetData, onDismissNudge = { notifyMeAnalytics.notifyMeNudgeDismissEvent() @@ -76,12 +91,7 @@ fun HomeNotifyMeWidget( }, onClick = { notifyMeAnalytics.notifyMeNudgeClickEvent() - if (notificationPermission.status.shouldShowRationale) { - notifyMeAnalytics.notifyMeNudgePermissionPromptShownEvent() - notificationPermission.launchPermissionRequest() - } else { - showBottomSheet() - } + pushNotificationPermission.launchMultiplePermissionRequest() } ) } diff --git a/android/application-platform/navi-ap/build.gradle b/android/application-platform/navi-ap/build.gradle index 722e506754..c677f6935e 100644 --- a/android/application-platform/navi-ap/build.gradle +++ b/android/application-platform/navi-ap/build.gradle @@ -55,7 +55,6 @@ android { dependencies { implementation project(":finoramic-androidx-sdk") implementation project(":navi-payment") - implementation libs.accompanist.permissions implementation libs.accompanist.systemuicontroller implementation libs.android.material implementation libs.androidx.appcompat diff --git a/android/navi-bbps/build.gradle b/android/navi-bbps/build.gradle index 95539b05e3..b0051c9965 100644 --- a/android/navi-bbps/build.gradle +++ b/android/navi-bbps/build.gradle @@ -60,7 +60,6 @@ android { dependencies { implementation project(":navi-payment") implementation project(":navi-rr") - implementation libs.accompanist.permissions implementation libs.accompanist.systemuicontroller implementation libs.androidx.appcompat implementation libs.androidx.compose.material3 diff --git a/android/navi-coin/build.gradle b/android/navi-coin/build.gradle index 172db80e30..f56c24c57e 100644 --- a/android/navi-coin/build.gradle +++ b/android/navi-coin/build.gradle @@ -59,7 +59,6 @@ android { dependencies { api project(":navi-rr") - implementation libs.accompanist.permissions implementation libs.accompanist.systemuicontroller implementation libs.android.material implementation libs.androidx.appcompat diff --git a/android/navi-common/build.gradle b/android/navi-common/build.gradle index b40ba39115..6cc953ced5 100644 --- a/android/navi-common/build.gradle +++ b/android/navi-common/build.gradle @@ -67,6 +67,7 @@ dependencies { api project(":navi-widgets") api project(":one-money-sdk") api project(":visit-sdk") + api libs.accompanist.permissions api libs.android.gms.playServicesLocation api libs.androidx.biometric api libs.androidx.camera.camera2 diff --git a/android/navi-common/src/main/java/com/navi/common/permission/PermissionResult.kt b/android/navi-common/src/main/java/com/navi/common/permission/PermissionResult.kt new file mode 100644 index 0000000000..54329e5c54 --- /dev/null +++ b/android/navi-common/src/main/java/com/navi/common/permission/PermissionResult.kt @@ -0,0 +1,65 @@ +/* + * + * * Copyright © 2024 by Navi Technologies Limited + * * All rights reserved. Strictly confidential + * + */ + +package com.navi.common.permission + +import android.app.Activity +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext +import androidx.core.app.ActivityCompat +import com.google.accompanist.permissions.ExperimentalPermissionsApi +import com.google.accompanist.permissions.MultiplePermissionsState +import com.google.accompanist.permissions.rememberMultiplePermissionsState + +sealed interface PermissionResult { + data object AllGranted : PermissionResult + + data object HardDenied : PermissionResult + + data object ShowRationale : PermissionResult + + data object None : PermissionResult +} + +fun handlePermissionResult( + permissionsResultMap: Map, + activity: Activity, + onResult: (PermissionResult) -> Unit +) { + val allPermissionsGranted: Boolean = permissionsResultMap.all { it.value } + if (allPermissionsGranted) { + onResult(PermissionResult.AllGranted) + } else { + var shouldShowRequestPermissionRationale = false + permissionsResultMap.forEach { + shouldShowRequestPermissionRationale = + ActivityCompat.shouldShowRequestPermissionRationale(activity, it.key) + + if (shouldShowRequestPermissionRationale) { + return@forEach + } + } + + if (shouldShowRequestPermissionRationale) { + onResult(PermissionResult.ShowRationale) + } else { + onResult(PermissionResult.HardDenied) + } + } +} + +@OptIn(ExperimentalPermissionsApi::class) +@Composable +fun rememberMultiplePermissions( + permissions: List, + onResult: (PermissionResult) -> Unit +): MultiplePermissionsState { + val activity = LocalContext.current as Activity + return rememberMultiplePermissionsState(permissions = permissions) { + handlePermissionResult(permissionsResultMap = it, activity = activity, onResult = onResult) + } +} diff --git a/android/navi-common/src/main/java/com/navi/common/utils/CommonNaviAnalytics.kt b/android/navi-common/src/main/java/com/navi/common/utils/CommonNaviAnalytics.kt index 53bd8567bd..6d87919a92 100644 --- a/android/navi-common/src/main/java/com/navi/common/utils/CommonNaviAnalytics.kt +++ b/android/navi-common/src/main/java/com/navi/common/utils/CommonNaviAnalytics.kt @@ -1096,13 +1096,6 @@ class CommonNaviAnalytics private constructor() { ) } - fun notifyMeNudgePermissionPromptShownEvent() { - NaviTrackEvent.trackEvent( - eventName = "naviapp_notify_me_nudge_permission_prompt_shown_event", - eventValues = mapOf(Pair("screen_name", screenName.orEmpty())) - ) - } - fun notifyMeNudgePermissionGrantedEvent() { NaviTrackEvent.trackEvent( eventName = "naviapp_notify_me_nudge_permission_granted_event", @@ -1110,6 +1103,17 @@ class CommonNaviAnalytics private constructor() { ) } + fun notifyMeNudgePermissionDeniedEvent(inAppAllowable: Boolean) { + NaviTrackEvent.trackEvent( + eventName = "naviapp_notify_me_nudge_permission_denied_event", + eventValues = + mapOf( + "screen_name" to screenName.orEmpty(), + "in_app_allowable" to inAppAllowable.toString() + ) + ) + } + fun notifyMeNudgeOpenSettingsBottomSheetLandEvent() { NaviTrackEvent.trackEvent( eventName = "naviapp_notify_me_nudge_open_settings_bottomsheet_land_event", diff --git a/android/navi-cycs/build.gradle b/android/navi-cycs/build.gradle index 1b415d95c4..f04df8a67a 100644 --- a/android/navi-cycs/build.gradle +++ b/android/navi-cycs/build.gradle @@ -54,7 +54,6 @@ android { dependencies { implementation project(":navi-common") - implementation libs.accompanist.permissions implementation libs.accompanist.systemuicontroller implementation libs.android.material implementation libs.androidx.appcompat diff --git a/android/navi-insurance/build.gradle b/android/navi-insurance/build.gradle index efbb8b2b9b..43d080ac50 100644 --- a/android/navi-insurance/build.gradle +++ b/android/navi-insurance/build.gradle @@ -78,7 +78,6 @@ static def formatString(String value) { dependencies { implementation project(":navi-payment") - implementation libs.accompanist.permissions implementation libs.android.gms.playServicesAuth implementation libs.android.gms.playServicesAuthApiPhone implementation libs.android.gms.playServicesLocation diff --git a/android/navi-pay/build.gradle b/android/navi-pay/build.gradle index f3abb71ef6..7715a257c8 100644 --- a/android/navi-pay/build.gradle +++ b/android/navi-pay/build.gradle @@ -75,7 +75,6 @@ static def formatString(String value) { dependencies { implementation project(":navi-common") implementation project(":navi-rr") - implementation libs.accompanist.permissions implementation libs.accompanist.systemuicontroller implementation libs.android.material implementation libs.androidx.appcompat diff --git a/android/navi-rr/build.gradle b/android/navi-rr/build.gradle index ed78bf1984..3b32bcda38 100644 --- a/android/navi-rr/build.gradle +++ b/android/navi-rr/build.gradle @@ -66,7 +66,6 @@ android { dependencies { api project(":navi-common") - implementation libs.accompanist.permissions implementation libs.accompanist.systemuicontroller implementation libs.android.material implementation libs.androidx.appcompat