@@ -4,11 +4,13 @@ import androidx.compose.runtime.Composable
44import androidx.compose.runtime.getValue
55import androidx.compose.runtime.mutableStateOf
66import androidx.compose.runtime.setValue
7+ import com.ninecraft.booket.core.common.analytics.AnalyticsHelper
78import com.ninecraft.booket.feature.screens.RecordCardScreen
89import com.slack.circuit.codegen.annotations.CircuitInject
910import com.slack.circuit.retained.rememberRetained
1011import com.slack.circuit.runtime.Navigator
1112import com.slack.circuit.runtime.presenter.Presenter
13+ import com.slack.circuitx.effects.ImpressionEffect
1214import dagger.assisted.Assisted
1315import dagger.assisted.AssistedFactory
1416import dagger.assisted.AssistedInject
@@ -17,7 +19,14 @@ import dagger.hilt.android.components.ActivityRetainedComponent
1719class RecordCardPresenter @AssistedInject constructor(
1820 @Assisted private val screen : RecordCardScreen ,
1921 @Assisted private val navigator : Navigator ,
22+ private val analyticsHelper : AnalyticsHelper ,
2023) : Presenter<RecordCardUiState> {
24+
25+ companion object {
26+ private const val RECORD_CARD_SAVE = " record_card_save"
27+ private const val RECORD_CARD_SHARE = " record_card_share"
28+ }
29+
2130 @Composable
2231 override fun present (): RecordCardUiState {
2332 var isLoading by rememberRetained { mutableStateOf(false ) }
@@ -45,16 +54,22 @@ class RecordCardPresenter @AssistedInject constructor(
4554
4655 is RecordCardUiEvent .SaveRecordCard -> {
4756 isCapturing = false
57+ analyticsHelper.logEvent(RECORD_CARD_SAVE )
4858 sideEffect = RecordCardSideEffect .SaveImage (event.bitmap)
4959 }
5060
5161 is RecordCardUiEvent .ShareRecordCard -> {
5262 isSharing = false
63+ analyticsHelper.logEvent(RECORD_CARD_SHARE )
5364 sideEffect = RecordCardSideEffect .ShareImage (event.bitmap)
5465 }
5566 }
5667 }
5768
69+ ImpressionEffect {
70+ analyticsHelper.logScreenView(screen.name)
71+ }
72+
5873 return RecordCardUiState (
5974 isLoading = isLoading,
6075 quote = screen.quote,
0 commit comments