From 4687be59420fdcf08b6bcbcadde99b50f96f3f93 Mon Sep 17 00:00:00 2001 From: Evgenii Kozlov Date: Tue, 10 Oct 2023 15:04:22 +0200 Subject: [PATCH] DROID-1628 Analytics | Enhancement | Fix events for help menu (#426) --- .../analytics/base/EventsDictionary.kt | 10 ++++ .../anytype/ui/settings/AboutAppFragment.kt | 1 + .../settings/MainSettingsViewModel.kt | 2 +- .../ui_settings/about/AboutAppViewModel.kt | 57 ++++++------------- 4 files changed, 28 insertions(+), 42 deletions(-) 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 82fa844b68..1fd9393c09 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 @@ -161,6 +161,16 @@ object EventsDictionary { const val clickOnboarding = "ClickOnboarding" const val clickLogin = "ClickLogin" + // About-app screen + + const val MENU_HELP = "MenuHelp" + const val MENU_HELP_WHAT_IS_NEW = "MenuHelpWhatsNew" + const val MENU_HELP_TUTORIAL = "MenuHelpTutorial" + const val MENU_HELP_COMMUNITY = "MenuHelpCommunity" + const val MENU_HELP_TERMS = "MenuHelpTerms" + const val MENU_HELP_PRIVACY = "MenuHelpPrivacy" + const val MENU_HELP_CONTACT_US = "MenuHelpContact" + enum class ScreenOnboardingStep(val value: String) { VOID("Void"), PHRASE("Phrase"), diff --git a/app/src/main/java/com/anytypeio/anytype/ui/settings/AboutAppFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/settings/AboutAppFragment.kt index 83cbb1c005..474d22f16f 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/settings/AboutAppFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/settings/AboutAppFragment.kt @@ -61,6 +61,7 @@ class AboutAppFragment : BaseBottomSheetComposeFragment() { deviceId = vm.deviceId.collectAsState().value, onMetaClicked = { copyMetaToClipboard() }, onContactUsClicked = { + vm.onContactUsClicked() proceedWithAction( SystemAction.MailTo( generateSupportMail( diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/settings/MainSettingsViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/settings/MainSettingsViewModel.kt index 31fd578efb..a7e44a73eb 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/settings/MainSettingsViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/settings/MainSettingsViewModel.kt @@ -160,7 +160,7 @@ class MainSettingsViewModel( Event.OnAboutClicked -> { viewModelScope.sendEvent( analytics = analytics, - eventName = EventsDictionary.aboutScreenShow + eventName = EventsDictionary.MENU_HELP ) } Event.OnProfileClicked -> { diff --git a/ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/about/AboutAppViewModel.kt b/ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/about/AboutAppViewModel.kt index 515d3e738a..e000dd2eee 100644 --- a/ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/about/AboutAppViewModel.kt +++ b/ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/about/AboutAppViewModel.kt @@ -4,8 +4,8 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.anytypeio.anytype.analytics.base.Analytics +import com.anytypeio.anytype.analytics.base.EventsDictionary import com.anytypeio.anytype.analytics.base.sendEvent -import com.anytypeio.anytype.analytics.props.Props import com.anytypeio.anytype.domain.auth.interactor.GetAccount import com.anytypeio.anytype.domain.auth.interactor.GetLibraryVersion import com.anytypeio.anytype.domain.base.BaseUseCase @@ -32,15 +32,17 @@ class AboutAppViewModel( } } + fun onContactUsClicked() { + viewModelScope.sendEvent( + analytics = analytics, + eventName = EventsDictionary.MENU_HELP_CONTACT_US + ) + } + private fun proceedWithAnalytics(link: ExternalLink) { viewModelScope.sendEvent( analytics = analytics, - eventName = link.eventName, - props = Props( - mapOf( - "type" to link.eventType - ) - ) + eventName = link.eventName ) } @@ -77,31 +79,12 @@ class AboutAppViewModel( class OpenExternalLink(val link: ExternalLink) : Navigation } - sealed class ExternalLink(val eventName: String, val eventType: String) { - object WhatIsNew : ExternalLink( - EVENT_HELP_AND_COMMUNITY, - EVENT_VALUE_WHAT_IS_NEW - ) - - object AnytypeCommunity : ExternalLink( - EVENT_HELP_AND_COMMUNITY, - EVENT_VALUE_COMMUNITY - ) - - object HelpAndTutorials : ExternalLink( - EVENT_HELP_AND_COMMUNITY, - EVENT_VALUE_HELP_AND_TUTORIALS - ) - - object TermsOfUse : ExternalLink( - EVENT_LEGAL, - EVENT_VALUE_TERMS_OF_USE - ) - - object PrivacyPolicy : ExternalLink( - EVENT_LEGAL, - EVENT_VALUE_PRIVACY_POLICY - ) + sealed class ExternalLink(val eventName: String) { + object WhatIsNew : ExternalLink(EventsDictionary.MENU_HELP_WHAT_IS_NEW) + object AnytypeCommunity : ExternalLink(EventsDictionary.MENU_HELP_COMMUNITY) + object HelpAndTutorials : ExternalLink(EventsDictionary.MENU_HELP_TUTORIAL) + object TermsOfUse : ExternalLink(EventsDictionary.MENU_HELP_TERMS) + object PrivacyPolicy : ExternalLink(EventsDictionary.MENU_HELP_PRIVACY) } class Factory @Inject constructor( @@ -121,12 +104,4 @@ class AboutAppViewModel( ) as T } } -} - -private const val EVENT_HELP_AND_COMMUNITY = "Help_and_Community" -private const val EVENT_LEGAL = "Legal" -private const val EVENT_VALUE_TERMS_OF_USE = "terms_of_use" -private const val EVENT_VALUE_PRIVACY_POLICY = "privacy_policy" -private const val EVENT_VALUE_WHAT_IS_NEW = "what_is_new" -private const val EVENT_VALUE_COMMUNITY = "anytype_community" -private const val EVENT_VALUE_HELP_AND_TUTORIALS = "help_and_tutorials" \ No newline at end of file +} \ No newline at end of file