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

DROID-1628 Analytics | Enhancement | Fix events for help menu (#426)

This commit is contained in:
Evgenii Kozlov 2023-10-10 15:04:22 +02:00 committed by uburoiubu
parent 2181a1b4cd
commit 4687be5942
No known key found for this signature in database
GPG key ID: C8FB80E0A595FBB6
4 changed files with 28 additions and 42 deletions

View file

@ -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"),

View file

@ -61,6 +61,7 @@ class AboutAppFragment : BaseBottomSheetComposeFragment() {
deviceId = vm.deviceId.collectAsState().value,
onMetaClicked = { copyMetaToClipboard() },
onContactUsClicked = {
vm.onContactUsClicked()
proceedWithAction(
SystemAction.MailTo(
generateSupportMail(

View file

@ -160,7 +160,7 @@ class MainSettingsViewModel(
Event.OnAboutClicked -> {
viewModelScope.sendEvent(
analytics = analytics,
eventName = EventsDictionary.aboutScreenShow
eventName = EventsDictionary.MENU_HELP
)
}
Event.OnProfileClicked -> {

View file

@ -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"
}