Skip to content

Commit 5c090be

Browse files
konstantiniivuburoiubu
authored andcommitted
DROID-3574 Analytics | ScreenTemplateSelector and ScreenTypeTemplateSelector events (#2369)
1 parent 678ac9a commit 5c090be

File tree

4 files changed

+41
-4
lines changed

4 files changed

+41
-4
lines changed

analytics/src/main/java/com/anytypeio/anytype/analytics/base/EventsDictionary.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ object EventsDictionary {
166166
const val editTemplate = "EditTemplate"
167167
const val duplicateTemplate = "DuplicateTemplate"
168168
const val createTemplate = "CreateTemplate"
169+
const val logScreenTemplateSelector = "ScreenTemplateSelector"
169170

170171
// Onboarding events
171172
const val screenOnboarding = "ScreenOnboarding"
@@ -178,6 +179,7 @@ object EventsDictionary {
178179
const val logClickConflictFieldHelp = "ClickConflictFieldHelp"
179180
const val logAddConflictRelation = "AddConflictRelation"
180181
const val logResetToTypeDefault = "ResetToTypeDefault"
182+
const val logScreenTypeTemplateSelector = "ScreenTypeTemplateSelector"
181183

182184
// Vault events
183185

presentation/src/main/java/com/anytypeio/anytype/presentation/editor/EditorViewModel.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,7 @@ import com.anytypeio.anytype.presentation.editor.model.OnEditorDatePickerEvent.O
262262
import com.anytypeio.anytype.presentation.extension.getFileDetailsForBlock
263263
import com.anytypeio.anytype.presentation.extension.getTypeForObject
264264
import com.anytypeio.anytype.presentation.extension.getUrlForFileContent
265+
import com.anytypeio.anytype.presentation.extension.sendAnalyticsScreenTemplateSelectorEvent
265266
import com.anytypeio.anytype.presentation.navigation.NavPanelState
266267
import com.anytypeio.anytype.presentation.navigation.leftButtonClickAnalytics
267268
import com.anytypeio.anytype.presentation.objects.getCreateObjectParams
@@ -4661,7 +4662,7 @@ class EditorViewModel(
46614662
else EventsDictionary.relationChangeValue,
46624663
storeOfRelations = storeOfRelations,
46634664
relationKey = key,
4664-
spaceParams = provideParams(spaceManager.get())
4665+
spaceParams = provideParams(vmParams.space.id)
46654666
)
46664667
},
46674668
failure = {
@@ -6831,7 +6832,11 @@ class EditorViewModel(
68316832
EventWrapper(
68326833
AppNavigation.Command.OpenTemplates(typeId = state.typeId)
68336834
)
6834-
)
6835+
).also {
6836+
viewModelScope.launch {
6837+
sendAnalyticsScreenTemplateSelectorEvent(analytics, provideParams(vmParams.space.id))
6838+
}
6839+
}
68356840
} else {
68366841
Timber.e("State of templates widget is invalid when clicked, should be SelectTemplateViewState.Activ")
68376842
}
@@ -7526,7 +7531,7 @@ class EditorViewModel(
75267531
eventName = EventsDictionary.relationAdd,
75277532
storeOfRelations = storeOfRelations,
75287533
relationKey = view.key,
7529-
spaceParams = provideParams(spaceManager.get())
7534+
spaceParams = provideParams(vmParams.space.id)
75307535
)
75317536
action.invoke()
75327537
}

presentation/src/main/java/com/anytypeio/anytype/presentation/extension/AnalyticsExt.kt

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import com.anytypeio.anytype.analytics.base.EventsDictionary.duplicateTemplate
1717
import com.anytypeio.anytype.analytics.base.EventsDictionary.duplicateView
1818
import com.anytypeio.anytype.analytics.base.EventsDictionary.editTemplate
1919
import com.anytypeio.anytype.analytics.base.EventsDictionary.logScreenEditType
20+
import com.anytypeio.anytype.analytics.base.EventsDictionary.logScreenTemplateSelector
2021
import com.anytypeio.anytype.analytics.base.EventsDictionary.objectCreate
2122
import com.anytypeio.anytype.analytics.base.EventsDictionary.objectCreateLink
2223
import com.anytypeio.anytype.analytics.base.EventsDictionary.objectDuplicate
@@ -1503,6 +1504,17 @@ fun CoroutineScope.logEvent(
15031504
props = buildProps(route = route, spaceParams = spaceParams)
15041505
)
15051506
}
1507+
ObjectStateAnalyticsEvent.SCREEN_TYPE_TEMPLATE_SELECTOR -> {
1508+
if (state is ObjectState.DataView.TypeSet) {
1509+
scope.sendEvent(
1510+
analytics = analytics,
1511+
eventName = EventsDictionary.logScreenTypeTemplateSelector,
1512+
startTime = startTime,
1513+
middleTime = middleTime,
1514+
props = buildProps(spaceParams = spaceParams)
1515+
)
1516+
}
1517+
}
15061518
}
15071519
}
15081520

@@ -1557,7 +1569,8 @@ enum class ObjectStateAnalyticsEvent {
15571569
DUPLICATE_TEMPLATE,
15581570
DELETE_TEMPLATE,
15591571
SET_AS_DEFAULT_TYPE,
1560-
CHANGE_DEFAULT_TEMPLATE
1572+
CHANGE_DEFAULT_TEMPLATE,
1573+
SCREEN_TYPE_TEMPLATE_SELECTOR
15611574
}
15621575

15631576
fun CoroutineScope.sendEditWidgetsEvent(
@@ -2112,6 +2125,22 @@ fun CoroutineScope.sendAnalyticsSelectTemplateEvent(
21122125
)
21132126
}
21142127

2128+
fun CoroutineScope.sendAnalyticsScreenTemplateSelectorEvent(
2129+
analytics: Analytics,
2130+
spaceParams: AnalyticSpaceHelperDelegate.Params
2131+
) {
2132+
sendEvent(
2133+
analytics = analytics,
2134+
eventName = logScreenTemplateSelector,
2135+
props = Props(
2136+
buildMap {
2137+
put(EventsPropertiesKey.permissions, spaceParams.permission)
2138+
put(EventsPropertiesKey.spaceType, spaceParams.spaceType)
2139+
}
2140+
)
2141+
)
2142+
}
2143+
21152144
fun CoroutineScope.sendAnalyticsCreateTemplateEvent(
21162145
analytics: Analytics,
21172146
details: Map<Id, Struct>,

presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2131,6 +2131,7 @@ class ObjectSetViewModel(
21312131
selectedTypeFlow.value = type
21322132
}
21332133
logEvent(ObjectStateAnalyticsEvent.SHOW_TEMPLATES)
2134+
logEvent(ObjectStateAnalyticsEvent.SCREEN_TYPE_TEMPLATE_SELECTOR)
21342135
}
21352136

21362137
fun onTypeTemplatesWidgetAction(action: TypeTemplatesWidgetUIAction) {

0 commit comments

Comments
 (0)