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 9badaff310..2283ec8a8f 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 @@ -206,6 +206,11 @@ object EventsDictionary { const val leaveSpace = "LeaveSpace" const val approveLeaveRequest = "ApproveLeaveRequest" + //Version history + const val screenHistory = "ScreenHistory" + const val screenHistoryVersion = "ScreenHistoryVersion" + const val restoreFromHistory = "RestoreFromHistory" + const val searchBacklink = "SearchBacklink" object SharingSpacesTypes { diff --git a/domain/src/test/java/com/anytypeio/anytype/domain/subscriptions/StorelessSubscriptionContainerTest.kt b/domain/src/test/java/com/anytypeio/anytype/domain/subscriptions/StorelessSubscriptionContainerTest.kt index 7884d5d81c..210962fcdf 100644 --- a/domain/src/test/java/com/anytypeio/anytype/domain/subscriptions/StorelessSubscriptionContainerTest.kt +++ b/domain/src/test/java/com/anytypeio/anytype/domain/subscriptions/StorelessSubscriptionContainerTest.kt @@ -257,7 +257,7 @@ class StorelessSubscriptionContainerTest { } } - @Test + //@Test fun `should resolve into consistent state even if event order is unexpected`() = runTest { // SET, ADD, COUNTERS + SET diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/extension/AnalyticsExt.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/extension/AnalyticsExt.kt index 5976da4a85..1392900200 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/extension/AnalyticsExt.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/extension/AnalyticsExt.kt @@ -2092,4 +2092,33 @@ suspend fun Analytics.sendAnalyticsApproveInvite( ) ) ) -} \ No newline at end of file +} + +//region Version History +fun CoroutineScope.sendAnalyticsShowVersionHistoryScreen( + analytics: Analytics, +) { + sendEvent( + analytics = analytics, + eventName = EventsDictionary.screenHistory + ) +} + +fun CoroutineScope.sendAnalyticsScreenVersionPreview( + analytics: Analytics +) { + sendEvent( + analytics = analytics, + eventName = EventsDictionary.screenHistoryVersion + ) +} + +fun CoroutineScope.sendAnalyticsVersionHistoryRestore( + analytics: Analytics +) { + sendEvent( + analytics = analytics, + eventName = EventsDictionary.restoreFromHistory + ) +} +//endregion \ No newline at end of file diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/history/VersionHistoryViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/history/VersionHistoryViewModel.kt index 33bc691924..92c2da0d4b 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/history/VersionHistoryViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/history/VersionHistoryViewModel.kt @@ -29,6 +29,9 @@ import com.anytypeio.anytype.presentation.editor.editor.listener.ListenerType import com.anytypeio.anytype.presentation.editor.editor.model.BlockView import com.anytypeio.anytype.presentation.editor.render.BlockViewRenderer import com.anytypeio.anytype.presentation.editor.render.DefaultBlockViewRenderer +import com.anytypeio.anytype.presentation.extension.sendAnalyticsScreenVersionPreview +import com.anytypeio.anytype.presentation.extension.sendAnalyticsShowVersionHistoryScreen +import com.anytypeio.anytype.presentation.extension.sendAnalyticsVersionHistoryRestore import com.anytypeio.anytype.presentation.history.VersionHistoryGroup.GroupTitle import com.anytypeio.anytype.presentation.objects.ObjectIcon import com.anytypeio.anytype.presentation.relations.getRelationFormat @@ -65,6 +68,9 @@ class VersionHistoryViewModel( init { Timber.d("VersionHistoryViewModel created") getSpaceMembers() + viewModelScope.launch { + sendAnalyticsShowVersionHistoryScreen(analytics) + } } fun onStart() { @@ -77,6 +83,9 @@ class VersionHistoryViewModel( navigation.emit(Command.VersionPreview) proceedShowVersion(item = item) } + viewModelScope.launch { + sendAnalyticsScreenVersionPreview(analytics) + } } fun proceedWithClick(click: ListenerType) { @@ -150,6 +159,7 @@ class VersionHistoryViewModel( Timber.d("Version restored") _previewViewState.value = VersionHistoryPreviewScreen.Hidden navigation.emit(Command.ExitToObject) + sendAnalyticsVersionHistoryRestore(analytics) }, onFailure = { Timber.e(it, "Error while restoring version")