synced with latest changes in analytics repo

This commit is contained in:
NIkita Fedrunov 2022-02-09 15:55:22 +01:00
parent f78446c1e7
commit e196b01038
3 changed files with 148 additions and 28 deletions

View File

@ -51,6 +51,18 @@ data class Interaction(
*/ */
SpacePanelSwitchSpace, 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 * 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. * room member list in the right panel of Element Web/Desktop.
@ -152,6 +164,24 @@ data class Interaction(
* settings dialog in Element Web/Desktop. * settings dialog in Element Web/Desktop.
*/ */
WebRoomSettingsLeaveButton, 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 { enum class InteractionType {

View File

@ -54,8 +54,8 @@ data class Screen(
Group, Group,
/** /**
* The Home tab on iOS | possibly the same on Android? | The Home space * The Home tab on iOS | possibly the same on Android? | Home page on
* on Web? * Web
*/ */
Home, Home,
@ -116,13 +116,33 @@ data class Screen(
*/ */
MobileSearchRooms, 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. * The sidebar shown on mobile with spaces, settings etc.
*/ */
MobileSidebar, MobileSidebar,
/** /**
* Screen that displays the list of memebrs of a space * Screen that displays the list of members of a space
*/ */
MobileSpaceMembers, MobileSpaceMembers,
@ -196,26 +216,6 @@ data class Screen(
*/ */
RoomUploads, 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 * Screen that displays the list of rooms and spaces of a space
*/ */
@ -232,25 +232,91 @@ data class Screen(
User, User,
/** /**
* ? * Element Web showing flow to trust this new device with cross-signing.
*/ */
WebCompleteSecurity, WebCompleteSecurity,
/** /**
* ? * Element Web showing flow to setup SSSS / cross-signing on this
* account.
*/ */
WebE2ESetup, WebE2ESetup,
/** /**
* ? * Element Web loading spinner.
*/ */
WebLoading, WebLoading,
/** /**
* ? * Element Web device has been soft logged out by the server.
*/ */
WebSoftLogout, 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. * The splash screen.
*/ */

View File

@ -24,6 +24,26 @@ package im.vector.app.features.analytics.plan
* definition. These properties must all be device independent. * definition. These properties must all be device independent.
*/ */
data class UserProperties( 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. * The selected messaging use case during the onboarding flow.
*/ */
@ -56,9 +76,13 @@ data class UserProperties(
WorkMessaging, WorkMessaging,
} }
fun getProperties(): Map<String, Any>? { fun getProperties(): Map<String, Any>? {
return mutableMapOf<String, Any>().apply { return mutableMapOf<String, Any>().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) } ftueUseCaseSelection?.let { put("ftueUseCaseSelection", it.name) }
numSpaces?.let { put("numSpaces", it) } numSpaces?.let { put("numSpaces", it) }
}.takeIf { it.isNotEmpty() } }.takeIf { it.isNotEmpty() }