diff --git a/analytics/src/main/java/com/anytypeio/anytype/analytics/base/EventsDictionary.kt b/analytics/src/main/java/com/anytypeio/anytype/analytics/base/EventsDictionary.kt index 929f1b9667..003635c66c 100644 --- a/analytics/src/main/java/com/anytypeio/anytype/analytics/base/EventsDictionary.kt +++ b/analytics/src/main/java/com/anytypeio/anytype/analytics/base/EventsDictionary.kt @@ -172,6 +172,8 @@ object EventsDictionary { const val screenOnboarding = "ScreenOnboarding" const val clickOnboarding = "ClickOnboarding" const val clickLogin = "ClickLogin" + const val screenOnboardingEnterEmail = "ScreenOnboardingEnterEmail" + const val screenOnboardingSkipEmail = "ScreenOnboardingSkipEmail" //Primitives const val logScreenEditType = "ScreenEditType" @@ -298,7 +300,8 @@ object EventsDictionary { enum class ScreenOnboardingStep(val value: String) { VAULT("Vault"), SOUL("Soul"), - PHRASE("Phrase") + PHRASE("Phrase"), + EMAIL("Email") } enum class ClickOnboardingButton(val value: String) { diff --git a/app/src/main/java/com/anytypeio/anytype/ui/onboarding/screens/signup/OnboardingEmailScreen.kt b/app/src/main/java/com/anytypeio/anytype/ui/onboarding/screens/signup/OnboardingEmailScreen.kt index aa595343b9..b551827509 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/onboarding/screens/signup/OnboardingEmailScreen.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/onboarding/screens/signup/OnboardingEmailScreen.kt @@ -52,7 +52,6 @@ import com.anytypeio.anytype.core_ui.views.OnBoardingButtonSecondary import com.anytypeio.anytype.core_ui.views.PreviewTitle1Regular import com.anytypeio.anytype.core_ui.views.UXBody import com.anytypeio.anytype.presentation.onboarding.signup.OnboardingSetProfileNameViewModel -import kotlin.also import kotlin.text.isNotEmpty @Composable @@ -62,6 +61,10 @@ fun SetEmailWrapper( space: Id, onBackClicked: () -> Unit, ) { + LaunchedEffect(Unit) { + viewModel.sendAnalyticsOnboardingEmailScreen() + } + OnboardingEmailScreen( onContinueClicked = { email -> viewModel.onEmailContinueClicked( diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/onboarding/signup/OnboardingSetProfileNameViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/onboarding/signup/OnboardingSetProfileNameViewModel.kt index 51236188eb..db058b959e 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/onboarding/signup/OnboardingSetProfileNameViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/onboarding/signup/OnboardingSetProfileNameViewModel.kt @@ -252,6 +252,15 @@ class OnboardingSetProfileNameViewModel @Inject constructor( } //region Email screen + fun sendAnalyticsOnboardingEmailScreen() { + viewModelScope.launch { + sendAnalyticsOnboardingScreenEvent( + analytics = analytics, + step = EventsDictionary.ScreenOnboardingStep.EMAIL + ) + } + } + fun onEmailContinueClicked( email: String, space: Id, @@ -274,6 +283,11 @@ class OnboardingSetProfileNameViewModel @Inject constructor( sendToast(LOADING_MSG) return } + viewModelScope.launch { + analytics.sendEvent( + eventName = EventsDictionary.screenOnboardingSkipEmail + ) + } state.value = ScreenState.Loading proceedWithNavigation(space, startingObject) } @@ -313,7 +327,12 @@ class OnboardingSetProfileNameViewModel @Inject constructor( ) viewModelScope.launch { setMembershipEmail.async(params).fold( - onSuccess = { Timber.d("Email set successfully") }, + onSuccess = { + Timber.d("Email set successfully") + analytics.sendEvent( + eventName = EventsDictionary.screenOnboardingEnterEmail + ) + }, onFailure = { error -> Timber.e(error, "Error setting email") if (BuildConfig.DEBUG) {