diff --git a/vector/src/main/java/im/vector/app/features/analytics/plan/Interaction.kt b/vector/src/main/java/im/vector/app/features/analytics/plan/Interaction.kt index 3d71b36c51..feffa6d5c6 100644 --- a/vector/src/main/java/im/vector/app/features/analytics/plan/Interaction.kt +++ b/vector/src/main/java/im/vector/app/features/analytics/plan/Interaction.kt @@ -51,6 +51,18 @@ data class Interaction( */ SpacePanelSwitchSpace, + /** + * User interacted with pin to sidebar checkboxes in the quick settings + * menu of Element Web/Desktop. + */ + WebQuickSettingsPinToSidebarCheckbox, + + /** + * User interacted with the theme dropdown in the quick settings menu of + * Element Web/Desktop. + */ + WebQuickSettingsThemeDropdown, + /** * User accessed the room invite flow using the button at the top of the * room member list in the right panel of Element Web/Desktop. @@ -152,6 +164,24 @@ data class Interaction( * settings dialog in Element Web/Desktop. */ WebRoomSettingsLeaveButton, + + /** + * User interacted with the theme radio selector in the Appearance tab + * of Settings in Element Web/Desktop. + */ + WebSettingsAppearanceTabThemeSelector, + + /** + * User interacted with the pre-built space checkboxes in the Sidebar + * tab of Settings in Element Web/Desktop. + */ + WebSettingsSidebarTabSpacesCheckbox, + + /** + * User clicked the theme toggle button in the user menu of Element + * Web/Desktop. + */ + WebUserMenuThemeToggleButton, } enum class InteractionType { diff --git a/vector/src/main/java/im/vector/app/features/analytics/plan/Screen.kt b/vector/src/main/java/im/vector/app/features/analytics/plan/Screen.kt index 476c72fa30..710ae8f6f2 100644 --- a/vector/src/main/java/im/vector/app/features/analytics/plan/Screen.kt +++ b/vector/src/main/java/im/vector/app/features/analytics/plan/Screen.kt @@ -54,8 +54,8 @@ data class Screen( Group, /** - * The Home tab on iOS | possibly the same on Android? | The Home space - * on Web? + * The Home tab on iOS | possibly the same on Android? | Home page on + * Web */ Home, @@ -116,13 +116,33 @@ data class Screen( */ MobileSearchRooms, + /** + * The global settings screen shown in the app. + */ + MobileSettings, + + /** + * The settings screen to change the default notification options. + */ + MobileSettingsDefaultNotifications, + + /** + * The settings screen to manage notification mentions and keywords. + */ + MobileSettingsMentionsAndKeywords, + + /** + * The global security settings screen. + */ + MobileSettingsSecurity, + /** * The sidebar shown on mobile with spaces, settings etc. */ MobileSidebar, /** - * Screen that displays the list of memebrs of a space + * Screen that displays the list of members of a space */ MobileSpaceMembers, @@ -196,26 +216,6 @@ data class Screen( */ RoomUploads, - /** - * The global settings screen shown in the app. - */ - Settings, - - /** - * The settings screen to change the default notification options. - */ - SettingsDefaultNotifications, - - /** - * The settings screen to manage notification mentions and keywords. - */ - SettingsMentionsAndKeywords, - - /** - * The global security settings screen. - */ - SettingsSecurity, - /** * Screen that displays the list of rooms and spaces of a space */ @@ -232,25 +232,91 @@ data class Screen( User, /** - * ? + * Element Web showing flow to trust this new device with cross-signing. */ WebCompleteSecurity, /** - * ? + * Element Web showing flow to setup SSSS / cross-signing on this + * account. */ WebE2ESetup, /** - * ? + * Element Web loading spinner. */ WebLoading, /** - * ? + * Element Web device has been soft logged out by the server. */ WebSoftLogout, + /** + * Legacy: Element Web User Settings Flair Tab. + */ + WebUserSettingFlair, + + /** + * Element Web User Settings Mjolnir (labs) Tab. + */ + WebUserSettingMjolnir, + + /** + * Element Web User Settings Appearance Tab. + */ + WebUserSettingsAppearance, + + /** + * Element Web User Settings General Tab. + */ + WebUserSettingsGeneral, + + /** + * Element Web User Settings Help & About Tab. + */ + WebUserSettingsHelpAbout, + + /** + * Element Web User Settings Ignored Users Tab. + */ + WebUserSettingsIgnoredUsers, + + /** + * Element Web User Settings Keyboard Tab. + */ + WebUserSettingsKeyboard, + + /** + * Element Web User Settings Labs Tab. + */ + WebUserSettingsLabs, + + /** + * Element Web User Settings Notifications Tab. + */ + WebUserSettingsNotifications, + + /** + * Element Web User Settings Preferences Tab. + */ + WebUserSettingsPreferences, + + /** + * Element Web User Settings Security & Privacy Tab. + */ + WebUserSettingsSecurityPrivacy, + + /** + * Element Web User Settings Sidebar Tab. + */ + WebUserSettingsSidebar, + + /** + * Element Web User Settings Voice & Video Tab. + */ + WebUserSettingsVoiceVideo, + /** * The splash screen. */ diff --git a/vector/src/main/java/im/vector/app/features/analytics/plan/UserProperties.kt b/vector/src/main/java/im/vector/app/features/analytics/plan/UserProperties.kt index 453cd0ec9d..bbe2c48fec 100644 --- a/vector/src/main/java/im/vector/app/features/analytics/plan/UserProperties.kt +++ b/vector/src/main/java/im/vector/app/features/analytics/plan/UserProperties.kt @@ -24,6 +24,26 @@ package im.vector.app.features.analytics.plan * definition. These properties must all be device independent. */ data class UserProperties( + /** + * Whether the user has the favourites space enabled + */ + val WebMetaSpaceFavouritesEnabled: Boolean? = null, + /** + * Whether the user has the home space set to all rooms + */ + val WebMetaSpaceHomeAllRooms: Boolean? = null, + /** + * Whether the user has the home space enabled + */ + val WebMetaSpaceHomeEnabled: Boolean? = null, + /** + * Whether the user has the other rooms space enabled + */ + val WebMetaSpaceOrphansEnabled: Boolean? = null, + /** + * Whether the user has the people space enabled + */ + val WebMetaSpacePeopleEnabled: Boolean? = null, /** * The selected messaging use case during the onboarding flow. */ @@ -56,9 +76,13 @@ data class UserProperties( WorkMessaging, } - fun getProperties(): Map? { return mutableMapOf().apply { + WebMetaSpaceFavouritesEnabled?.let { put("WebMetaSpaceFavouritesEnabled", it) } + WebMetaSpaceHomeAllRooms?.let { put("WebMetaSpaceHomeAllRooms", it) } + WebMetaSpaceHomeEnabled?.let { put("WebMetaSpaceHomeEnabled", it) } + WebMetaSpaceOrphansEnabled?.let { put("WebMetaSpaceOrphansEnabled", it) } + WebMetaSpacePeopleEnabled?.let { put("WebMetaSpacePeopleEnabled", it) } ftueUseCaseSelection?.let { put("ftueUseCaseSelection", it.name) } numSpaces?.let { put("numSpaces", it) } }.takeIf { it.isNotEmpty() }