1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-08 05:47:05 +09:00

DROID-3646 Onboarding | Email analytics (#2401)

This commit is contained in:
Konstantin Ivanov 2025-05-14 14:37:54 +02:00 committed by konstantiniiv
parent 9da4bc43b7
commit ebf1db3a6f
3 changed files with 28 additions and 3 deletions

View file

@ -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) {

View file

@ -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(

View file

@ -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) {