diff --git a/android/app/src/main/java/com/naviapp/home/compose/home/ui/helper/HomeContentHelper.kt b/android/app/src/main/java/com/naviapp/home/compose/home/ui/helper/HomeContentHelper.kt index a7d6a4015f..e841b31455 100644 --- a/android/app/src/main/java/com/naviapp/home/compose/home/ui/helper/HomeContentHelper.kt +++ b/android/app/src/main/java/com/naviapp/home/compose/home/ui/helper/HomeContentHelper.kt @@ -17,6 +17,8 @@ import com.navi.base.utils.orFalse import com.navi.common.ui.compose.DrawerState import com.navi.common.ui.compose.NaviDrawerValue import com.navi.common.uitron.model.action.CtaAction +import com.navi.common.uitron.model.action.ScreenOverlayActionUpdateAction +import com.navi.common.uitron.model.action.ScreenOverlayStateUpdateAction import com.navi.uitron.model.action.AnalyticsAction import com.navi.uitron.model.data.UiTronAction import com.naviapp.appsettings.model.notificationSettings.NotificationSettingsBottomSheetType @@ -29,6 +31,11 @@ import com.naviapp.home.reducer.HpEvents import com.naviapp.home.viewmodel.HomeViewModel import com.naviapp.home.viewmodel.ProfileVM import com.naviapp.home.viewmodel.SharedVM +import com.naviapp.screenOverlay.model.OverlayItemActionData +import com.naviapp.screenOverlay.model.OverlayItemStateUpdate +import com.naviapp.screenOverlay.nudge.utils.getOverlayItemAction +import com.naviapp.screenOverlay.nudge.utils.getOverlayItemTransitionState +import com.naviapp.screenOverlay.viewModel.ScreenOverlayVM @Composable fun HandleHomeEffects( @@ -78,7 +85,11 @@ fun ResetProfileScroll( } } -fun handleBottomSheetAction(action: UiTronAction?, activity: HomePageActivity) { +fun handleBottomSheetAction( + action: UiTronAction?, + activity: HomePageActivity, + screenOverlayVM: ScreenOverlayVM, +) { when (action) { is CtaAction -> { action.ctaData?.let { ctaData -> @@ -109,6 +120,29 @@ fun handleBottomSheetAction(action: UiTronAction?, activity: HomePageActivity) { is AnalyticsAction -> { NaviTrackEvent.trackEvent(action.eventName.orEmpty(), action.eventProperties) } + is ScreenOverlayStateUpdateAction -> { + val nudgeTransitionState = + action.states.map { + OverlayItemStateUpdate( + nudgeId = it.nudgeId, + state = getOverlayItemTransitionState(overlayItemState = it.state), + ) + } + screenOverlayVM.triggerStateUpdateApiCall( + nudgeTransitionState = nudgeTransitionState, + naeScreenName = activity.screenName, + ) + } + is ScreenOverlayActionUpdateAction -> { + val nudgeActions = + action.actions.map { + OverlayItemActionData( + nudgeId = it.nudgeId, + action = getOverlayItemAction(action = it.action), + ) + } + screenOverlayVM.triggerActionUpdateApiCall(nudgeActions, activity.screenName) + } else -> Unit } } diff --git a/android/app/src/main/java/com/naviapp/home/compose/home/ui/screen/HomeContentFrame.kt b/android/app/src/main/java/com/naviapp/home/compose/home/ui/screen/HomeContentFrame.kt index 7c3da19e04..f64a30da97 100644 --- a/android/app/src/main/java/com/naviapp/home/compose/home/ui/screen/HomeContentFrame.kt +++ b/android/app/src/main/java/com/naviapp/home/compose/home/ui/screen/HomeContentFrame.kt @@ -92,7 +92,13 @@ fun HomeContentFrame( HomeScreenBottomSheet( viewModel = sharedVM, - handleAction = { handleBottomSheetAction(action = it, activity = activity) }, + handleAction = { + handleBottomSheetAction( + action = it, + activity = activity, + screenOverlayVM = screenOverlayVM, + ) + }, ) NaviModalNavigationDrawer( diff --git a/android/app/src/main/java/com/naviapp/screenOverlay/nudge/utils/InitScreenOverlayComponents.kt b/android/app/src/main/java/com/naviapp/screenOverlay/nudge/utils/InitScreenOverlayComponents.kt index 9b7c887c95..653ec7f582 100644 --- a/android/app/src/main/java/com/naviapp/screenOverlay/nudge/utils/InitScreenOverlayComponents.kt +++ b/android/app/src/main/java/com/naviapp/screenOverlay/nudge/utils/InitScreenOverlayComponents.kt @@ -157,7 +157,7 @@ fun HandleApiAction( } } -private fun getOverlayItemTransitionState(overlayItemState: String): OverlayItemTransitionState { +fun getOverlayItemTransitionState(overlayItemState: String): OverlayItemTransitionState { return when (overlayItemState) { OverlayItemTransitionState.SUCCESS_ACKNOWLEDGED.name -> { OverlayItemTransitionState.SUCCESS_ACKNOWLEDGED @@ -171,7 +171,7 @@ private fun getOverlayItemTransitionState(overlayItemState: String): OverlayItem } } -private fun getOverlayItemAction(action: String): OverlayItemAction { +fun getOverlayItemAction(action: String): OverlayItemAction { return when (action) { OverlayItemAction.VIEW.name -> { OverlayItemAction.VIEW