diff --git a/android/navi-cycs/src/main/kotlin/com/navi/cycs/CycsAnalytics.kt b/android/navi-cycs/src/main/kotlin/com/navi/cycs/CycsAnalytics.kt index 092f00267d..a78972bd7a 100644 --- a/android/navi-cycs/src/main/kotlin/com/navi/cycs/CycsAnalytics.kt +++ b/android/navi-cycs/src/main/kotlin/com/navi/cycs/CycsAnalytics.kt @@ -15,6 +15,17 @@ class CycsAnalytics private constructor() { fun onLanded() { NaviTrackEvent.trackEventOnClickStream(eventName = "cycs_landing_screen") } + + fun onLoadingPhaseStatus(status: Boolean, bottomSheetState: String) { + NaviTrackEvent.trackEventOnClickStream( + eventName = "cycs_loader_status", + eventValues = + mapOf( + Pair("isLoadingPhaseCompleted", status.toString()), + Pair("bottomSheetState", bottomSheetState) + ) + ) + } } inner class Consent { @@ -23,7 +34,7 @@ class CycsAnalytics private constructor() { } fun onConsentScreenRendered(duration: Long) { - NaviTrackEvent.trackEvent( + NaviTrackEvent.trackEventOnClickStream( eventName = "cycs_consent_screen_render_duration", eventValues = mapOf(Pair("duration", duration.toString())) ) @@ -66,7 +77,7 @@ class CycsAnalytics private constructor() { } fun onScoreScreenRendered(duration: Long) { - NaviTrackEvent.trackEvent( + NaviTrackEvent.trackEventOnClickStream( eventName = "cycs_score_screen_render_duration", eventValues = mapOf(Pair("duration", duration.toString())) ) diff --git a/android/navi-cycs/src/main/kotlin/com/navi/cycs/feature/landing/LandingScreen.kt b/android/navi-cycs/src/main/kotlin/com/navi/cycs/feature/landing/LandingScreen.kt index 6e4e668502..4e721b99b7 100644 --- a/android/navi-cycs/src/main/kotlin/com/navi/cycs/feature/landing/LandingScreen.kt +++ b/android/navi-cycs/src/main/kotlin/com/navi/cycs/feature/landing/LandingScreen.kt @@ -29,6 +29,7 @@ import com.navi.cycs.CycsScreen import com.navi.cycs.LandingScreenState import com.navi.cycs.common.handler.CycsMqttEventHandler import com.navi.cycs.common.handler.InitActionsHandler +import com.navi.cycs.common.model.BottomSheetStateHolder import com.navi.cycs.common.model.CycsBottomSheetState import com.navi.cycs.common.model.ScreenDefinitionState import com.navi.cycs.common.ui.CycsBottomSheet @@ -153,6 +154,7 @@ fun LandingScreen( viewModel = viewModel, screenName = viewModel.currentScreen.value, screenDefinitionState = screenDefinitionState, + bottomSheetState = bottomSheetStateHolder, hasLoadingEnded = hasLoadingEnded, hasNotificationPermission = cycsActivity.hasNotificationPermission(), ) @@ -163,6 +165,7 @@ private fun ScreenToShow( viewModel: CycsMainViewModel, screenName: LandingScreenState, screenDefinitionState: ScreenDefinitionState, + bottomSheetState: BottomSheetStateHolder, hasLoadingEnded: MutableState, hasNotificationPermission: Boolean, cycsAnalytics: CycsAnalytics = CycsAnalytics.INSTANCE @@ -177,7 +180,9 @@ private fun ScreenToShow( when (targetState) { false -> { Loader( - isReadyToStopLoader = { isReadyToStopLoader(screenDefinitionState) } + isReadyToStopLoader = { + isReadyToStopLoader(screenDefinitionState, bottomSheetState) + } ) { hasLoadingEnded.value = it } @@ -247,10 +252,16 @@ private fun ScreenToShow( private fun isReadyToStopLoader( screenDefinitionState: ScreenDefinitionState, + bottomSheetState: BottomSheetStateHolder, + cycsAnalytics: CycsAnalytics = CycsAnalytics.INSTANCE ): Boolean { val isLoadingPhaseCompleted = (screenDefinitionState is ScreenDefinitionState.Success) || (screenDefinitionState is ScreenDefinitionState.Error) + val isBottomSheetHidden = bottomSheetState.bottomSheetState == CycsBottomSheetState.Hidden + cycsAnalytics + .Landing() + .onLoadingPhaseStatus(isLoadingPhaseCompleted, bottomSheetState.bottomSheetState.name) - return isLoadingPhaseCompleted + return isLoadingPhaseCompleted && isBottomSheetHidden }