Skip to content

Commit c97e2b1

Browse files
DROID-3895 Vault 2.0 | Analytics, pin | unpin events (#2675)
1 parent c2ce28e commit c97e2b1

File tree

4 files changed

+16
-2
lines changed

4 files changed

+16
-2
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
@@ -27,6 +27,8 @@ object EventsDictionary {
2727
const val switchSpace = "SwitchSpace"
2828
const val reorderSpace = "ReorderSpace"
2929
const val deleteSpace = "DeleteSpace"
30+
const val pinSpace = "PinSpace"
31+
const val unpinSpace = "UnpinSpace"
3032
const val screenSettingsSpaceCreate = "ScreenSettingsSpaceCreate"
3133

3234

presentation/src/main/java/com/anytypeio/anytype/presentation/home/HomeScreenViewModel.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1008,6 +1008,7 @@ class HomeScreenViewModel(
10081008
}
10091009

10101010
fun onWidgetMenuTriggered(widget: Id) {
1011+
Timber.d("onWidgetMenuTriggered: $widget")
10111012
viewModelScope.launch {
10121013
val isAutoCreated = widgets.value?.find { it.id == widget }?.isAutoCreated
10131014
analytics.sendScreenWidgetMenuEvent(
@@ -2166,7 +2167,7 @@ class HomeScreenViewModel(
21662167
view: ViewId?,
21672168
navigate: Boolean = true
21682169
) {
2169-
Timber.d("onCreateDataViewObject")
2170+
Timber.d("onCreateDataViewObject, widget: $widget, view: $view, navigate: $navigate")
21702171
viewModelScope.launch {
21712172
val target = widgets.value.orEmpty().find { it.id == widget }
21722173
if (target != null) {
@@ -2300,7 +2301,7 @@ class HomeScreenViewModel(
23002301
dv: DV,
23012302
navigate: Boolean = false
23022303
) {
2303-
Timber.d("proceedWithCreatingDataViewObject")
2304+
Timber.d("proceedWithCreatingDataViewObject, dataViewSourceObj: $dataViewSourceObj")
23042305
val dataViewSourceType = dataViewSourceObj.uniqueKey
23052306
val (_, defaultTemplate) = resolveTypeAndActiveViewTemplate(
23062307
viewer,
@@ -2511,6 +2512,7 @@ class HomeScreenViewModel(
25112512
}
25122513

25132514
fun onCreateWidgetElementClicked(view: WidgetView) {
2515+
Timber.d("onCreateWidgetElementClicked, widget: $view")
25142516
when(view) {
25152517
is WidgetView.ListOfObjects -> {
25162518
if (view.type == WidgetView.ListOfObjects.Type.Favorites) {

presentation/src/main/java/com/anytypeio/anytype/presentation/vault/VaultViewModel.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -844,6 +844,7 @@ class VaultViewModel(
844844
},
845845
onSuccess = { finalOrder ->
846846
Timber.d("Successfully pinned space: $spaceId with final order: $finalOrder")
847+
analytics.sendEvent(eventName = EventsDictionary.pinSpace)
847848
// The finalOrder contains the actual order from middleware with lexids
848849
// Backend has confirmed the order, so we can trust the current state
849850
// The space subscription will automatically update with the new order
@@ -863,6 +864,7 @@ class VaultViewModel(
863864
},
864865
onSuccess = {
865866
Timber.d("Successfully unpinned space: $spaceId")
867+
analytics.sendEvent(eventName = EventsDictionary.unpinSpace)
866868
}
867869
)
868870
}

presentation/src/test/java/com/anytypeio/anytype/presentation/vault/VaultViewModelTest.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package com.anytypeio.anytype.presentation.vault
22

33
import app.cash.turbine.test
44
import app.cash.turbine.turbineScope
5+
import com.anytypeio.anytype.analytics.base.Analytics
6+
import com.anytypeio.anytype.analytics.base.EventsDictionary
57
import com.anytypeio.anytype.core_models.StubSpaceView
68
import com.anytypeio.anytype.core_models.chats.Chat
79
import com.anytypeio.anytype.core_models.multiplayer.SpaceAccessType
@@ -15,6 +17,7 @@ import com.anytypeio.anytype.domain.multiplayer.SpaceViewSubscriptionContainer
1517
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
1618
import com.anytypeio.anytype.domain.resources.StringResourceProvider
1719
import com.anytypeio.anytype.domain.vault.SetSpaceOrder
20+
import com.anytypeio.anytype.domain.vault.UnpinSpace
1821
import com.anytypeio.anytype.presentation.notifications.NotificationPermissionManager
1922
import com.anytypeio.anytype.presentation.notifications.NotificationPermissionManagerImpl
2023
import com.anytypeio.anytype.presentation.util.DefaultCoroutineTestRule
@@ -30,6 +33,7 @@ import org.junit.Rule
3033
import org.junit.Test
3134
import org.mockito.kotlin.any
3235
import org.mockito.kotlin.mock
36+
import org.mockito.kotlin.verify
3337
import org.mockito.kotlin.whenever
3438

3539
@OptIn(ExperimentalCoroutinesApi::class)
@@ -45,6 +49,8 @@ class VaultViewModelTest {
4549
private lateinit var notificationPermissionManager: NotificationPermissionManager
4650
private lateinit var stringResourceProvider: StringResourceProvider
4751
private lateinit var setSpaceOrder: SetSpaceOrder
52+
private lateinit var unpinSpace: UnpinSpace
53+
private lateinit var analytics: Analytics
4854

4955
@Before
5056
fun setup() {
@@ -54,6 +60,8 @@ class VaultViewModelTest {
5460
notificationPermissionManager = mock()
5561
stringResourceProvider = mock()
5662
setSpaceOrder = mock()
63+
unpinSpace = mock()
64+
analytics = mock()
5765
}
5866

5967
@Test

0 commit comments

Comments
 (0)