mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-08 05:47:05 +09:00
DROID-2623 Analytics | Relation events (#1425)
This commit is contained in:
parent
84000b34b7
commit
04cf436e78
30 changed files with 407 additions and 181 deletions
|
@ -101,6 +101,7 @@ object EventsDictionary {
|
|||
const val relationAdd = "AddExistingRelation"
|
||||
const val relationCreate = "CreateRelation"
|
||||
const val relationChangeValue = "ChangeRelationValue"
|
||||
const val relationDeleteValue = "DeleteRelationValue"
|
||||
const val relationDelete = "DeleteRelation"
|
||||
const val relationUrlOpen = "RelationUrlOpen"
|
||||
const val relationUrlCopy = "RelationUrlCopy"
|
||||
|
|
|
@ -6,6 +6,7 @@ data class Props(val map: Map<String?, Any?>) {
|
|||
|
||||
const val OBJ_TYPE_CUSTOM = "custom"
|
||||
const val OBJ_LAYOUT_NONE = "none"
|
||||
const val OBJ_RELATION_CUSTOM = "custom"
|
||||
|
||||
fun empty() = Props(emptyMap())
|
||||
}
|
||||
|
|
|
@ -28,6 +28,8 @@ import com.anytypeio.anytype.domain.relations.AddRelationToObject
|
|||
import com.anytypeio.anytype.domain.relations.AddToFeaturedRelations
|
||||
import com.anytypeio.anytype.domain.relations.DeleteRelationFromObject
|
||||
import com.anytypeio.anytype.domain.relations.RemoveFromFeaturedRelations
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.editor.Editor
|
||||
import com.anytypeio.anytype.presentation.objects.LockedStateProvider
|
||||
import com.anytypeio.anytype.presentation.relations.ObjectRelationListViewModelFactory
|
||||
|
@ -87,6 +89,12 @@ class ObjectRelationListTest {
|
|||
@Mock
|
||||
lateinit var lockedStateProvider: LockedStateProvider
|
||||
|
||||
@Mock
|
||||
lateinit var spaceManager: SpaceManager
|
||||
|
||||
@Mock
|
||||
lateinit var analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
|
||||
private lateinit var updateDetail: UpdateDetail
|
||||
private lateinit var addToFeaturedRelations: AddToFeaturedRelations
|
||||
private lateinit var removeFromFeaturedRelations: RemoveFromFeaturedRelations
|
||||
|
@ -116,7 +124,9 @@ class ObjectRelationListTest {
|
|||
deleteRelationFromObject = deleteRelationFromObject,
|
||||
analytics = analytics,
|
||||
storeOfRelations = storeOfRelations,
|
||||
addRelationToObject = addRelationToObject
|
||||
addRelationToObject = addRelationToObject,
|
||||
spaceManager = spaceManager,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,8 @@ import com.anytypeio.anytype.domain.relations.AddRelationToObject
|
|||
import com.anytypeio.anytype.domain.relations.AddToFeaturedRelations
|
||||
import com.anytypeio.anytype.domain.relations.DeleteRelationFromObject
|
||||
import com.anytypeio.anytype.domain.relations.RemoveFromFeaturedRelations
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.objects.LockedStateProvider
|
||||
import com.anytypeio.anytype.presentation.relations.ObjectRelationListViewModelFactory
|
||||
import com.anytypeio.anytype.presentation.relations.providers.RelationListProvider
|
||||
|
@ -49,7 +51,9 @@ object ObjectRelationListModule {
|
|||
deleteRelationFromObject: DeleteRelationFromObject,
|
||||
analytics: Analytics,
|
||||
storeOfRelations: StoreOfRelations,
|
||||
addRelationToObject: AddRelationToObject
|
||||
addRelationToObject: AddRelationToObject,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
spaceManager: SpaceManager
|
||||
): ObjectRelationListViewModelFactory {
|
||||
return ObjectRelationListViewModelFactory(
|
||||
lockedStateProvider = lockedStateProvider,
|
||||
|
@ -62,7 +66,9 @@ object ObjectRelationListModule {
|
|||
deleteRelationFromObject = deleteRelationFromObject,
|
||||
analytics = analytics,
|
||||
storeOfRelations = storeOfRelations,
|
||||
addRelationToObject = addRelationToObject
|
||||
addRelationToObject = addRelationToObject,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
spaceManager = spaceManager
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,8 @@ import com.anytypeio.anytype.core_utils.di.scope.PerModal
|
|||
import com.anytypeio.anytype.domain.dataview.interactor.UpdateDataViewViewer
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.relations.DeleteRelationFromDataView
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.relations.ObjectSetSettingsViewModel
|
||||
import com.anytypeio.anytype.presentation.sets.state.ObjectState
|
||||
import com.anytypeio.anytype.presentation.util.Dispatcher
|
||||
|
@ -40,12 +42,16 @@ object ObjectSetSettingsModule {
|
|||
store: StoreOfRelations,
|
||||
analytics: Analytics,
|
||||
deleteRelationFromDataView: DeleteRelationFromDataView,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
spaceManager: SpaceManager
|
||||
): ObjectSetSettingsViewModel.Factory = ObjectSetSettingsViewModel.Factory(
|
||||
objectState = state,
|
||||
dispatcher = dispatcher,
|
||||
updateDataViewViewer = updateDataViewViewer,
|
||||
analytics = analytics,
|
||||
store = store,
|
||||
deleteRelationFromDataView = deleteRelationFromDataView
|
||||
deleteRelationFromDataView = deleteRelationFromDataView,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
spaceManager = spaceManager
|
||||
)
|
||||
}
|
|
@ -10,8 +10,10 @@ import com.anytypeio.anytype.domain.`object`.DuplicateObject
|
|||
import com.anytypeio.anytype.domain.`object`.UpdateDetail
|
||||
import com.anytypeio.anytype.domain.objects.SetObjectListIsArchived
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfObjectTypes
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.search.SearchObjects
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectRelationProvider
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectValueProvider
|
||||
import com.anytypeio.anytype.presentation.relations.value.`object`.ObjectValueViewModel
|
||||
|
@ -67,7 +69,9 @@ object ObjectValueObjectModule {
|
|||
urlBuilder: UrlBuilder,
|
||||
storeOfObjectTypes: StoreOfObjectTypes,
|
||||
objectListIsArchived: SetObjectListIsArchived,
|
||||
duplicateObject: DuplicateObject
|
||||
duplicateObject: DuplicateObject,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
storeOfRelations: StoreOfRelations
|
||||
): ObjectValueViewModelFactory = ObjectValueViewModelFactory(
|
||||
params = params,
|
||||
values = values,
|
||||
|
@ -80,7 +84,9 @@ object ObjectValueObjectModule {
|
|||
urlBuilder = urlBuilder,
|
||||
storeOfObjectTypes = storeOfObjectTypes,
|
||||
objectListIsArchived = objectListIsArchived,
|
||||
duplicateObject = duplicateObject
|
||||
duplicateObject = duplicateObject,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
)
|
||||
}
|
||||
//endregion
|
||||
|
@ -120,7 +126,9 @@ object ObjectValueSetModule {
|
|||
urlBuilder: UrlBuilder,
|
||||
storeOfObjectTypes: StoreOfObjectTypes,
|
||||
objectListIsArchived: SetObjectListIsArchived,
|
||||
duplicateObject: DuplicateObject
|
||||
duplicateObject: DuplicateObject,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
storeOfRelations: StoreOfRelations
|
||||
): ObjectValueViewModelFactory = ObjectValueViewModelFactory(
|
||||
params = params,
|
||||
values = values,
|
||||
|
@ -133,7 +141,9 @@ object ObjectValueSetModule {
|
|||
urlBuilder = urlBuilder,
|
||||
storeOfObjectTypes = storeOfObjectTypes,
|
||||
objectListIsArchived = objectListIsArchived,
|
||||
duplicateObject = duplicateObject
|
||||
duplicateObject = duplicateObject,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
)
|
||||
}
|
||||
//endregion
|
||||
|
@ -173,7 +183,9 @@ object ObjectValueDataViewModule {
|
|||
urlBuilder: UrlBuilder,
|
||||
storeOfObjectTypes: StoreOfObjectTypes,
|
||||
objectListIsArchived: SetObjectListIsArchived,
|
||||
duplicateObject: DuplicateObject
|
||||
duplicateObject: DuplicateObject,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
storeOfRelations: StoreOfRelations
|
||||
): ObjectValueViewModelFactory = ObjectValueViewModelFactory(
|
||||
params = params,
|
||||
values = values,
|
||||
|
@ -186,7 +198,9 @@ object ObjectValueDataViewModule {
|
|||
urlBuilder = urlBuilder,
|
||||
storeOfObjectTypes = storeOfObjectTypes,
|
||||
objectListIsArchived = objectListIsArchived,
|
||||
duplicateObject = duplicateObject
|
||||
duplicateObject = duplicateObject,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
)
|
||||
}
|
||||
//endregion
|
|
@ -8,6 +8,7 @@ import com.anytypeio.anytype.domain.`object`.SetObjectDetails
|
|||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.relations.CreateRelationOption
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.relations.option.CreateOrEditOptionViewModel
|
||||
import com.anytypeio.anytype.presentation.relations.option.CreateOrEditOptionViewModelFactory
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectRelationProvider
|
||||
|
@ -58,7 +59,8 @@ object CreateOrEditOptionObjectModule {
|
|||
spaceManager: SpaceManager,
|
||||
analytics: Analytics,
|
||||
createOption: CreateRelationOption,
|
||||
storeOfRelations: StoreOfRelations
|
||||
storeOfRelations: StoreOfRelations,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
): CreateOrEditOptionViewModelFactory = CreateOrEditOptionViewModelFactory(
|
||||
params = params,
|
||||
values = values,
|
||||
|
@ -67,7 +69,8 @@ object CreateOrEditOptionObjectModule {
|
|||
dispatcher = dispatcher,
|
||||
spaceManager = spaceManager,
|
||||
analytics = analytics,
|
||||
storeOfRelations = storeOfRelations
|
||||
storeOfRelations = storeOfRelations,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
)
|
||||
}
|
||||
//endregion
|
||||
|
@ -110,7 +113,8 @@ object CreateOrEditOptionSetModule {
|
|||
spaceManager: SpaceManager,
|
||||
analytics: Analytics,
|
||||
createOption: CreateRelationOption,
|
||||
storeOfRelations: StoreOfRelations
|
||||
storeOfRelations: StoreOfRelations,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
): CreateOrEditOptionViewModelFactory = CreateOrEditOptionViewModelFactory(
|
||||
params = params,
|
||||
values = values,
|
||||
|
@ -119,7 +123,8 @@ object CreateOrEditOptionSetModule {
|
|||
dispatcher = dispatcher,
|
||||
spaceManager = spaceManager,
|
||||
analytics = analytics,
|
||||
storeOfRelations = storeOfRelations
|
||||
storeOfRelations = storeOfRelations,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
)
|
||||
}
|
||||
//endregion
|
||||
|
@ -162,7 +167,8 @@ object CreateOrEditOptionDataViewModule {
|
|||
spaceManager: SpaceManager,
|
||||
analytics: Analytics,
|
||||
createOption: CreateRelationOption,
|
||||
storeOfRelations: StoreOfRelations
|
||||
storeOfRelations: StoreOfRelations,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
): CreateOrEditOptionViewModelFactory = CreateOrEditOptionViewModelFactory(
|
||||
params = params,
|
||||
values = values,
|
||||
|
@ -171,7 +177,8 @@ object CreateOrEditOptionDataViewModule {
|
|||
dispatcher = dispatcher,
|
||||
spaceManager = spaceManager,
|
||||
analytics = analytics,
|
||||
storeOfRelations = storeOfRelations
|
||||
storeOfRelations = storeOfRelations,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
)
|
||||
}
|
||||
//endregion
|
|
@ -8,9 +8,11 @@ import com.anytypeio.anytype.domain.block.repo.BlockRepository
|
|||
import com.anytypeio.anytype.domain.debugging.Logger
|
||||
import com.anytypeio.anytype.domain.library.StorelessSubscriptionContainer
|
||||
import com.anytypeio.anytype.domain.`object`.UpdateDetail
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.relations.DeleteRelationOptions
|
||||
import com.anytypeio.anytype.domain.search.SubscriptionEventChannel
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectRelationProvider
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectValueProvider
|
||||
import com.anytypeio.anytype.presentation.relations.value.tagstatus.SUB_MY_OPTIONS
|
||||
|
@ -83,7 +85,9 @@ object TagOrStatusValueObjectModule {
|
|||
spaceManager: SpaceManager,
|
||||
params: TagOrStatusValueViewModel.ViewModelParams,
|
||||
@Named(SUB_MY_OPTIONS) subscription: StorelessSubscriptionContainer,
|
||||
deleteRelationOptions: DeleteRelationOptions
|
||||
deleteRelationOptions: DeleteRelationOptions,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
storeOfRelations: StoreOfRelations
|
||||
): TagOrStatusValueViewModelFactory = TagOrStatusValueViewModelFactory(
|
||||
params = params,
|
||||
values = values,
|
||||
|
@ -93,7 +97,9 @@ object TagOrStatusValueObjectModule {
|
|||
analytics = analytics,
|
||||
spaceManager = spaceManager,
|
||||
subscription = subscription,
|
||||
deleteRelationOptions = deleteRelationOptions
|
||||
deleteRelationOptions = deleteRelationOptions,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
)
|
||||
}
|
||||
//endregion
|
||||
|
@ -157,7 +163,9 @@ object TagOrStatusValueSetModule {
|
|||
spaceManager: SpaceManager,
|
||||
params: TagOrStatusValueViewModel.ViewModelParams,
|
||||
@Named(SUB_MY_OPTIONS) subscription: StorelessSubscriptionContainer,
|
||||
deleteRelationOptions: DeleteRelationOptions
|
||||
deleteRelationOptions: DeleteRelationOptions,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
storeOfRelations: StoreOfRelations
|
||||
): TagOrStatusValueViewModelFactory = TagOrStatusValueViewModelFactory(
|
||||
params = params,
|
||||
values = values,
|
||||
|
@ -167,7 +175,9 @@ object TagOrStatusValueSetModule {
|
|||
analytics = analytics,
|
||||
spaceManager = spaceManager,
|
||||
subscription = subscription,
|
||||
deleteRelationOptions = deleteRelationOptions
|
||||
deleteRelationOptions = deleteRelationOptions,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
)
|
||||
}
|
||||
//endregion
|
||||
|
@ -231,7 +241,9 @@ object TagOrStatusValueDataViewModule {
|
|||
spaceManager: SpaceManager,
|
||||
params: TagOrStatusValueViewModel.ViewModelParams,
|
||||
@Named(SUB_MY_OPTIONS) subscription: StorelessSubscriptionContainer,
|
||||
deleteRelationOptions: DeleteRelationOptions
|
||||
deleteRelationOptions: DeleteRelationOptions,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
storeOfRelations: StoreOfRelations
|
||||
): TagOrStatusValueViewModelFactory = TagOrStatusValueViewModelFactory(
|
||||
params = params,
|
||||
values = values,
|
||||
|
@ -241,7 +253,9 @@ object TagOrStatusValueDataViewModule {
|
|||
analytics = analytics,
|
||||
spaceManager = spaceManager,
|
||||
subscription = subscription,
|
||||
deleteRelationOptions = deleteRelationOptions
|
||||
deleteRelationOptions = deleteRelationOptions,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
)
|
||||
}
|
||||
//endregion
|
|
@ -119,7 +119,8 @@ object RelationAddToDataViewModule {
|
|||
getRelations: GetRelations,
|
||||
addObjectToWorkspace: AddObjectToWorkspace,
|
||||
spaceManager: SpaceManager,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
storeOfRelations: StoreOfRelations
|
||||
): RelationAddToDataViewViewModel.Factory = RelationAddToDataViewViewModel.Factory(
|
||||
addRelationToDataView = addRelationToDataView,
|
||||
dispatcher = dispatcher,
|
||||
|
@ -131,7 +132,8 @@ object RelationAddToDataViewModule {
|
|||
getRelations = getRelations,
|
||||
addObjectToWorkspace = addObjectToWorkspace,
|
||||
spaceManager = spaceManager,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
)
|
||||
|
||||
@JvmStatic
|
||||
|
|
|
@ -57,7 +57,8 @@ object RelationCreateFromScratchForObjectModule {
|
|||
createFromScratchState: StateHolder<CreateFromScratchState>,
|
||||
createRelation: CreateRelation,
|
||||
spaceManager: SpaceManager,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
storeOfRelations: StoreOfRelations
|
||||
) = RelationCreateFromScratchForObjectViewModel.Factory(
|
||||
addRelationToObject = addRelationToObject,
|
||||
createRelation = createRelation,
|
||||
|
@ -65,7 +66,8 @@ object RelationCreateFromScratchForObjectModule {
|
|||
analytics = analytics,
|
||||
createFromScratchState = createFromScratchState,
|
||||
spaceManager = spaceManager,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
)
|
||||
|
||||
@JvmStatic
|
||||
|
@ -120,7 +122,8 @@ object RelationCreateFromScratchForDataViewModule {
|
|||
createRelation: CreateRelation,
|
||||
addRelationToDataView: AddRelationToDataView,
|
||||
spaceManager: SpaceManager,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
storeOfRelations: StoreOfRelations
|
||||
) = RelationCreateFromScratchForDataViewViewModel.Factory(
|
||||
addRelationToDataView = addRelationToDataView,
|
||||
dispatcher = dispatcher,
|
||||
|
@ -130,7 +133,8 @@ object RelationCreateFromScratchForDataViewModule {
|
|||
createFromScratchState = createFromScratchState,
|
||||
createRelation = createRelation,
|
||||
spaceManager = spaceManager,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
)
|
||||
|
||||
@JvmStatic
|
||||
|
@ -188,7 +192,8 @@ object RelationCreateFromScratchForObjectBlockModule {
|
|||
analytics: Analytics,
|
||||
createFromScratchState: StateHolder<CreateFromScratchState>,
|
||||
spaceManager: SpaceManager,
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
storeOfRelations: StoreOfRelations
|
||||
) = RelationCreateFromScratchForObjectBlockViewModel.Factory(
|
||||
addRelationToObject = addRelationToObject,
|
||||
createRelation = createRelation,
|
||||
|
@ -196,7 +201,8 @@ object RelationCreateFromScratchForObjectBlockModule {
|
|||
analytics = analytics,
|
||||
createFromScratchState = createFromScratchState,
|
||||
spaceManager = spaceManager,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
)
|
||||
|
||||
@JvmStatic
|
||||
|
|
|
@ -2043,7 +2043,8 @@ open class EditorFragment : NavigationFragment<FragmentEditorBinding>(R.layout.f
|
|||
vm.onRelationTextValueChanged(
|
||||
ctx = ctx,
|
||||
value = text,
|
||||
relationKey = relationKey
|
||||
relationKey = relationKey,
|
||||
isValueEmpty = text.isEmpty()
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -2051,7 +2052,8 @@ open class EditorFragment : NavigationFragment<FragmentEditorBinding>(R.layout.f
|
|||
vm.onRelationTextValueChanged(
|
||||
ctx = ctx,
|
||||
value = number,
|
||||
relationKey = relationKey
|
||||
relationKey = relationKey,
|
||||
isValueEmpty = number == null
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -2064,7 +2066,8 @@ open class EditorFragment : NavigationFragment<FragmentEditorBinding>(R.layout.f
|
|||
vm.onRelationTextValueChanged(
|
||||
ctx = ctx,
|
||||
relationKey = relationKey,
|
||||
value = timeInSeconds
|
||||
value = timeInSeconds,
|
||||
isValueEmpty = timeInSeconds == null
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -239,7 +239,8 @@ open class ObjectRelationListFragment : BaseBottomSheetFragment<FragmentRelation
|
|||
vm.onRelationTextValueChanged(
|
||||
ctx = ctx,
|
||||
relationKey = relationKey,
|
||||
value = text
|
||||
value = text,
|
||||
isValueEmpty = text.isEmpty()
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -247,7 +248,8 @@ open class ObjectRelationListFragment : BaseBottomSheetFragment<FragmentRelation
|
|||
vm.onRelationTextValueChanged(
|
||||
ctx = ctx,
|
||||
relationKey = relationKey,
|
||||
value = number
|
||||
value = number,
|
||||
isValueEmpty = number == null
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -260,7 +262,8 @@ open class ObjectRelationListFragment : BaseBottomSheetFragment<FragmentRelation
|
|||
vm.onRelationTextValueChanged(
|
||||
ctx = ctx,
|
||||
relationKey = relationKey,
|
||||
value = timeInSeconds
|
||||
value = timeInSeconds,
|
||||
isValueEmpty = timeInSeconds == null
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -109,7 +109,6 @@ abstract class RelationAddBaseFragment :
|
|||
onRelationSelected(
|
||||
ctx = command.ctx,
|
||||
relation = command.relation,
|
||||
format = command.format
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -128,7 +127,7 @@ abstract class RelationAddBaseFragment :
|
|||
BottomSheetBehavior.from(root.parent as View).state = BottomSheetBehavior.STATE_EXPANDED
|
||||
}
|
||||
|
||||
abstract fun onRelationSelected(ctx: Id, relation: Key, format: RelationFormat)
|
||||
abstract fun onRelationSelected(ctx: Id, relation: Key)
|
||||
abstract fun onCreateFromScratchClicked()
|
||||
|
||||
override fun inflateBinding(
|
||||
|
@ -154,11 +153,10 @@ class RelationAddToObjectFragment : RelationAddBaseFragment() {
|
|||
lateinit var factory: RelationAddToObjectViewModel.Factory
|
||||
override val vm: RelationAddToObjectViewModel by viewModels { factory }
|
||||
|
||||
override fun onRelationSelected(ctx: Id, relation: Key, format: RelationFormat) {
|
||||
override fun onRelationSelected(ctx: Id, relation: Key) {
|
||||
vm.onRelationSelected(
|
||||
ctx = ctx,
|
||||
relation = relation,
|
||||
format = format,
|
||||
screenType = EventsDictionary.Type.menu
|
||||
)
|
||||
}
|
||||
|
@ -222,12 +220,11 @@ class RelationAddToDataViewFragment : RelationAddBaseFragment() {
|
|||
lateinit var factory: RelationAddToDataViewViewModel.Factory
|
||||
override val vm: RelationAddToDataViewViewModel by viewModels { factory }
|
||||
|
||||
override fun onRelationSelected(ctx: Id, relation: Key, format: RelationFormat) {
|
||||
override fun onRelationSelected(ctx: Id, relation: Key) {
|
||||
vm.onRelationSelected(
|
||||
ctx = ctx,
|
||||
viewerId = viewer,
|
||||
relation = relation,
|
||||
format = format,
|
||||
dv = dv,
|
||||
screenType = EventsDictionary.Type.dataView
|
||||
)
|
||||
|
@ -294,11 +291,10 @@ class RelationAddToObjectBlockFragment : RelationAddBaseFragment(),
|
|||
super.onStart()
|
||||
}
|
||||
|
||||
override fun onRelationSelected(ctx: Id, relation: Key, format: RelationFormat) {
|
||||
override fun onRelationSelected(ctx: Id, relation: Key) {
|
||||
vm.onRelationSelected(
|
||||
ctx = ctx,
|
||||
relation = relation,
|
||||
format = format,
|
||||
screenType = EventsDictionary.Type.block
|
||||
)
|
||||
}
|
||||
|
|
|
@ -79,7 +79,8 @@ class RelationsSubscriptionManager @Inject constructor(
|
|||
Relations.MAX_COUNT,
|
||||
Relations.RELATION_READ_ONLY_VALUE,
|
||||
Relations.RELATION_DEFAULT_VALUE,
|
||||
Relations.RELATION_FORMAT_OBJECT_TYPES
|
||||
Relations.RELATION_FORMAT_OBJECT_TYPES,
|
||||
Relations.SOURCE_OBJECT
|
||||
),
|
||||
ignoreWorkspace = true
|
||||
)
|
||||
|
|
|
@ -214,7 +214,7 @@ import com.anytypeio.anytype.presentation.extension.sendAnalyticsObjectCreateEve
|
|||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsObjectShowEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsObjectTypeSelectOrChangeEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsOpenAsObject
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationValueEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsSearchResultEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsSearchWordsEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsSelectTemplateEvent
|
||||
|
@ -247,6 +247,7 @@ import com.anytypeio.anytype.presentation.profile.profileIcon
|
|||
import com.anytypeio.anytype.presentation.relations.ObjectRelationView
|
||||
import com.anytypeio.anytype.presentation.relations.getNotIncludedRecommendedRelations
|
||||
import com.anytypeio.anytype.presentation.relations.getObjectRelations
|
||||
import com.anytypeio.anytype.presentation.relations.values
|
||||
import com.anytypeio.anytype.presentation.relations.views
|
||||
import com.anytypeio.anytype.presentation.search.ObjectSearchConstants
|
||||
import com.anytypeio.anytype.presentation.search.ObjectSearchViewModel
|
||||
|
@ -3875,7 +3876,8 @@ class EditorViewModel(
|
|||
proceedWithSetObjectDetails(
|
||||
ctx = content.target,
|
||||
key = Relations.DONE,
|
||||
value = !clicked.isChecked
|
||||
value = !clicked.isChecked,
|
||||
isValueEmpty = false
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -4122,17 +4124,6 @@ class EditorViewModel(
|
|||
}
|
||||
}
|
||||
|
||||
private fun proceedWithTogglingBlockRelationCheckbox(
|
||||
view: ObjectRelationView.Checkbox,
|
||||
relation: Id
|
||||
) {
|
||||
proceedWithSetObjectDetails(
|
||||
ctx = context,
|
||||
key = relation,
|
||||
value = !view.isChecked
|
||||
)
|
||||
}
|
||||
|
||||
override fun onProceedWithFilePath(filePath: String?) {
|
||||
Timber.d("onProceedWithFilePath, filePath:[$filePath]")
|
||||
if (filePath == null) {
|
||||
|
@ -4421,7 +4412,12 @@ class EditorViewModel(
|
|||
}
|
||||
}
|
||||
|
||||
private fun proceedWithSetObjectDetails(ctx: Id, key: String, value: Any?) {
|
||||
private fun proceedWithSetObjectDetails(
|
||||
ctx: Id,
|
||||
key: String,
|
||||
value: Any?,
|
||||
isValueEmpty: Boolean
|
||||
) {
|
||||
viewModelScope.launch {
|
||||
updateDetail(
|
||||
UpdateDetail.Params(
|
||||
|
@ -4432,8 +4428,12 @@ class EditorViewModel(
|
|||
).process(
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
sendAnalyticsRelationValueEvent(
|
||||
analytics = analytics
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = if (isValueEmpty) EventsDictionary.relationDeleteValue
|
||||
else EventsDictionary.relationChangeValue,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = key,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
},
|
||||
failure = {
|
||||
|
@ -4500,13 +4500,15 @@ class EditorViewModel(
|
|||
fun onRelationTextValueChanged(
|
||||
ctx: Id,
|
||||
value: Any?,
|
||||
relationKey: Key
|
||||
relationKey: Key,
|
||||
isValueEmpty: Boolean
|
||||
) {
|
||||
Timber.d("onRelationTextValueChanged, ctx:[$ctx] value:[$value] relationId:[$relationKey]")
|
||||
proceedWithSetObjectDetails(
|
||||
ctx = ctx,
|
||||
key = relationKey,
|
||||
value = value
|
||||
value = value,
|
||||
isValueEmpty = isValueEmpty
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -7195,6 +7197,12 @@ class EditorViewModel(
|
|||
failure = { Timber.e(it, "Error while adding relation to object") },
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationAdd,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = view.key,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
action.invoke()
|
||||
}
|
||||
)
|
||||
|
@ -7232,7 +7240,8 @@ class EditorViewModel(
|
|||
proceedWithSetObjectDetails(
|
||||
ctx = context,
|
||||
key = relation.key,
|
||||
value = !relationView.isChecked
|
||||
value = !relationView.isChecked,
|
||||
isValueEmpty = false
|
||||
)
|
||||
}
|
||||
RelationFormat.DATE -> {
|
||||
|
|
|
@ -35,11 +35,13 @@ import com.anytypeio.anytype.analytics.base.sendEvent
|
|||
import com.anytypeio.anytype.analytics.event.EventAnalytics
|
||||
import com.anytypeio.anytype.analytics.features.WidgetAnalytics
|
||||
import com.anytypeio.anytype.analytics.props.Props
|
||||
import com.anytypeio.anytype.analytics.props.Props.Companion.OBJ_RELATION_CUSTOM
|
||||
import com.anytypeio.anytype.analytics.props.Props.Companion.OBJ_TYPE_CUSTOM
|
||||
import com.anytypeio.anytype.analytics.props.UserProperty
|
||||
import com.anytypeio.anytype.core_models.Block
|
||||
import com.anytypeio.anytype.core_models.DVFilterCondition
|
||||
import com.anytypeio.anytype.core_models.Id
|
||||
import com.anytypeio.anytype.core_models.Key
|
||||
import com.anytypeio.anytype.core_models.ObjectWrapper
|
||||
import com.anytypeio.anytype.core_models.Relation
|
||||
import com.anytypeio.anytype.core_models.TextStyle
|
||||
|
@ -49,8 +51,10 @@ import com.anytypeio.anytype.core_models.ext.mapToObjectWrapperType
|
|||
import com.anytypeio.anytype.core_models.multiplayer.SpaceMemberPermissions
|
||||
import com.anytypeio.anytype.core_utils.ext.Mimetype
|
||||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.editor.editor.Markup
|
||||
import com.anytypeio.anytype.presentation.relations.values
|
||||
import com.anytypeio.anytype.presentation.sets.isChangingDefaultTypeAvailable
|
||||
import com.anytypeio.anytype.presentation.sets.state.ObjectState
|
||||
import com.anytypeio.anytype.presentation.sets.viewerByIdOrFirst
|
||||
|
@ -726,50 +730,33 @@ fun CoroutineScope.sendAnalyticsCreateRelationEvent(
|
|||
)
|
||||
}
|
||||
|
||||
fun CoroutineScope.sendAnalyticsAddRelationEvent(
|
||||
analytics: Analytics,
|
||||
format: String,
|
||||
type: String,
|
||||
suspend fun Analytics.sendAnalyticsRelationEvent(
|
||||
eventName: String,
|
||||
relationKey: Key,
|
||||
type: String? = null,
|
||||
storeOfRelations: StoreOfRelations,
|
||||
spaceParams: AnalyticSpaceHelperDelegate.Params
|
||||
) {
|
||||
val relation = storeOfRelations.getByKey(relationKey)
|
||||
val sourceObject = relation?.sourceObject ?: OBJ_RELATION_CUSTOM
|
||||
sendEvent(
|
||||
analytics = analytics,
|
||||
eventName = EventsDictionary.relationAdd,
|
||||
eventName = eventName,
|
||||
props = Props(
|
||||
mapOf(
|
||||
EventsPropertiesKey.format to format,
|
||||
EventsPropertiesKey.type to type,
|
||||
EventsPropertiesKey.permissions to spaceParams.permission,
|
||||
EventsPropertiesKey.spaceType to spaceParams.spaceType
|
||||
)
|
||||
buildMap {
|
||||
put(EventsPropertiesKey.relationKey, sourceObject)
|
||||
if (relation != null) {
|
||||
put(EventsPropertiesKey.format, relation.format.getPropName())
|
||||
}
|
||||
if (type != null) {
|
||||
put(EventsPropertiesKey.type, type)
|
||||
}
|
||||
put(EventsPropertiesKey.permissions, spaceParams.permission)
|
||||
put(EventsPropertiesKey.spaceType, spaceParams.spaceType)
|
||||
}
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
fun CoroutineScope.sendAnalyticsRelationValueEvent(
|
||||
analytics: Analytics,
|
||||
type: String = ""
|
||||
) {
|
||||
sendEvent(
|
||||
analytics = analytics,
|
||||
eventName = EventsDictionary.relationChangeValue,
|
||||
props = Props(
|
||||
mapOf(
|
||||
EventsPropertiesKey.type to type
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
fun CoroutineScope.sendAnalyticsRelationDeleteEvent(
|
||||
analytics: Analytics
|
||||
) {
|
||||
sendEvent(
|
||||
analytics = analytics,
|
||||
eventName = EventsDictionary.relationDelete
|
||||
)
|
||||
}
|
||||
|
||||
fun CoroutineScope.sendAnalyticsObjectCreateEvent(
|
||||
analytics: Analytics,
|
||||
route: String,
|
||||
|
|
|
@ -11,6 +11,8 @@ import com.anytypeio.anytype.domain.relations.AddRelationToObject
|
|||
import com.anytypeio.anytype.domain.relations.AddToFeaturedRelations
|
||||
import com.anytypeio.anytype.domain.relations.DeleteRelationFromObject
|
||||
import com.anytypeio.anytype.domain.relations.RemoveFromFeaturedRelations
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.objects.LockedStateProvider
|
||||
import com.anytypeio.anytype.presentation.relations.providers.RelationListProvider
|
||||
import com.anytypeio.anytype.presentation.util.Dispatcher
|
||||
|
@ -26,7 +28,9 @@ class ObjectRelationListViewModelFactory(
|
|||
private val deleteRelationFromObject: DeleteRelationFromObject,
|
||||
private val analytics: Analytics,
|
||||
private val storeOfRelations: StoreOfRelations,
|
||||
private val addRelationToObject: AddRelationToObject
|
||||
private val addRelationToObject: AddRelationToObject,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val spaceManager: SpaceManager
|
||||
) : ViewModelProvider.Factory {
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
|
@ -42,7 +46,9 @@ class ObjectRelationListViewModelFactory(
|
|||
deleteRelationFromObject = deleteRelationFromObject,
|
||||
analytics = analytics,
|
||||
storeOfRelations = storeOfRelations,
|
||||
addRelationToObject = addRelationToObject
|
||||
addRelationToObject = addRelationToObject,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
spaceManager = spaceManager
|
||||
) as T
|
||||
}
|
||||
}
|
|
@ -4,15 +4,19 @@ import androidx.lifecycle.ViewModel
|
|||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.anytypeio.anytype.analytics.base.Analytics
|
||||
import com.anytypeio.anytype.analytics.base.EventsDictionary
|
||||
import com.anytypeio.anytype.core_models.DVViewerRelation
|
||||
import com.anytypeio.anytype.core_models.Id
|
||||
import com.anytypeio.anytype.core_models.Key
|
||||
import com.anytypeio.anytype.core_models.Payload
|
||||
import com.anytypeio.anytype.domain.base.fold
|
||||
import com.anytypeio.anytype.domain.dataview.interactor.UpdateDataViewViewer
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.relations.DeleteRelationFromDataView
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.common.BaseListViewModel
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationDeleteEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationEvent
|
||||
import com.anytypeio.anytype.presentation.mapper.mapToSimpleRelationView
|
||||
import com.anytypeio.anytype.presentation.sets.dataViewState
|
||||
import com.anytypeio.anytype.presentation.sets.filterHiddenRelations
|
||||
|
@ -33,8 +37,10 @@ class ObjectSetSettingsViewModel(
|
|||
private val updateDataViewViewer: UpdateDataViewViewer,
|
||||
private val storeOfRelations: StoreOfRelations,
|
||||
private val analytics: Analytics,
|
||||
private val deleteRelationFromDataView: DeleteRelationFromDataView
|
||||
) : BaseListViewModel<ViewerRelationListView>() {
|
||||
private val deleteRelationFromDataView: DeleteRelationFromDataView,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val spaceManager: SpaceManager
|
||||
) : BaseListViewModel<ViewerRelationListView>(), AnalyticSpaceHelperDelegate by analyticSpaceHelperDelegate {
|
||||
|
||||
val screenState = MutableStateFlow(ScreenState.LIST)
|
||||
|
||||
|
@ -80,10 +86,10 @@ class ObjectSetSettingsViewModel(
|
|||
}
|
||||
|
||||
fun onDeleteClicked(ctx: Id, viewerId: Id, item: SimpleRelationView) {
|
||||
proceedWithDeletingRelationFromViewer(ctx = ctx, viewerId = viewerId, relation = item.key)
|
||||
proceedWithDeletingRelationFromViewer(ctx = ctx, viewerId = viewerId, relationKey = item.key)
|
||||
}
|
||||
|
||||
private fun proceedWithDeletingRelationFromViewer(ctx: Id, viewerId: Id, relation: Id) {
|
||||
private fun proceedWithDeletingRelationFromViewer(ctx: Id, viewerId: Id, relationKey: Key) {
|
||||
val state = objectState.value.dataViewState() ?: return
|
||||
val viewer = state.viewerById(viewerId) ?: return
|
||||
viewModelScope.launch {
|
||||
|
@ -91,7 +97,7 @@ class ObjectSetSettingsViewModel(
|
|||
ctx = ctx,
|
||||
dv = state.dataViewBlock.id,
|
||||
view = viewer.id,
|
||||
keys = listOf(relation)
|
||||
keys = listOf(relationKey)
|
||||
)
|
||||
updateDataViewViewer.async(params).fold(
|
||||
onFailure = { e -> Timber.e(e, "Error while deleting relation from dv") },
|
||||
|
@ -99,11 +105,16 @@ class ObjectSetSettingsViewModel(
|
|||
dispatcher.send(payload)
|
||||
proceedWithUpdatingCurrentViewAfterRelationDeletion(
|
||||
ctx = ctx,
|
||||
relation = relation,
|
||||
relation = relationKey,
|
||||
viewerId = viewerId
|
||||
)
|
||||
proceedWithDeletingRelationFromDataView(ctx = ctx, relation = relation)
|
||||
sendAnalyticsRelationDeleteEvent(analytics)
|
||||
proceedWithDeletingRelationFromDataView(ctx = ctx, relation = relationKey)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationDelete,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -215,7 +226,9 @@ class ObjectSetSettingsViewModel(
|
|||
private val updateDataViewViewer: UpdateDataViewViewer,
|
||||
private val store: StoreOfRelations,
|
||||
private val analytics: Analytics,
|
||||
private val deleteRelationFromDataView: DeleteRelationFromDataView
|
||||
private val deleteRelationFromDataView: DeleteRelationFromDataView,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val spaceManager: SpaceManager
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||
|
@ -225,7 +238,9 @@ class ObjectSetSettingsViewModel(
|
|||
updateDataViewViewer = updateDataViewViewer,
|
||||
storeOfRelations = store,
|
||||
analytics = analytics,
|
||||
deleteRelationFromDataView = deleteRelationFromDataView
|
||||
deleteRelationFromDataView = deleteRelationFromDataView,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
spaceManager = spaceManager
|
||||
) as T
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,22 +4,22 @@ import androidx.lifecycle.ViewModel
|
|||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.anytypeio.anytype.analytics.base.Analytics
|
||||
import com.anytypeio.anytype.analytics.base.EventsDictionary
|
||||
import com.anytypeio.anytype.core_models.DVViewerRelation
|
||||
import com.anytypeio.anytype.core_models.Id
|
||||
import com.anytypeio.anytype.core_models.Key
|
||||
import com.anytypeio.anytype.core_models.Payload
|
||||
import com.anytypeio.anytype.core_models.RelationFormat
|
||||
import com.anytypeio.anytype.core_models.primitives.SpaceId
|
||||
import com.anytypeio.anytype.domain.base.AppCoroutineDispatchers
|
||||
import com.anytypeio.anytype.domain.base.fold
|
||||
import com.anytypeio.anytype.domain.dataview.interactor.AddRelationToDataView
|
||||
import com.anytypeio.anytype.domain.dataview.interactor.UpdateDataViewViewer
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.relations.GetRelations
|
||||
import com.anytypeio.anytype.domain.workspace.AddObjectToWorkspace
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.extension.getPropName
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsAddRelationEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationEvent
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectRelationProvider
|
||||
import com.anytypeio.anytype.presentation.sets.dataViewState
|
||||
import com.anytypeio.anytype.presentation.sets.state.ObjectState
|
||||
|
@ -40,7 +40,8 @@ class RelationAddToDataViewViewModel(
|
|||
private val addObjectToWorkspace: AddObjectToWorkspace,
|
||||
private val appCoroutineDispatchers: AppCoroutineDispatchers,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : RelationAddViewModelBase(
|
||||
relationsProvider = relationsProvider,
|
||||
appCoroutineDispatchers = appCoroutineDispatchers,
|
||||
|
@ -53,7 +54,6 @@ class RelationAddToDataViewViewModel(
|
|||
ctx: Id,
|
||||
viewerId: Id,
|
||||
relation: Key,
|
||||
format: RelationFormat,
|
||||
dv: Id,
|
||||
screenType: String
|
||||
) {
|
||||
|
@ -73,10 +73,11 @@ class RelationAddToDataViewViewModel(
|
|||
relation = relation
|
||||
)
|
||||
}
|
||||
sendAnalyticsAddRelationEvent(
|
||||
analytics = analytics,
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationAdd,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = relation,
|
||||
type = screenType,
|
||||
format = format.getPropName(),
|
||||
spaceParams = analyticSpaceHelperDelegate.provideParams(spaceManager.get())
|
||||
)
|
||||
},
|
||||
|
@ -119,7 +120,8 @@ class RelationAddToDataViewViewModel(
|
|||
private val getRelations: GetRelations,
|
||||
private val addObjectToWorkspace: AddObjectToWorkspace,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||
|
@ -134,7 +136,8 @@ class RelationAddToDataViewViewModel(
|
|||
getRelations = getRelations,
|
||||
addObjectToWorkspace = addObjectToWorkspace,
|
||||
spaceManager = spaceManager,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
) as T
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import androidx.lifecycle.ViewModel
|
|||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.anytypeio.anytype.analytics.base.Analytics
|
||||
import com.anytypeio.anytype.analytics.base.EventsDictionary
|
||||
import com.anytypeio.anytype.core_models.Id
|
||||
import com.anytypeio.anytype.core_models.Key
|
||||
import com.anytypeio.anytype.core_models.Payload
|
||||
|
@ -16,8 +17,7 @@ import com.anytypeio.anytype.domain.relations.GetRelations
|
|||
import com.anytypeio.anytype.domain.workspace.AddObjectToWorkspace
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.extension.getPropName
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsAddRelationEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationEvent
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectRelationProvider
|
||||
import com.anytypeio.anytype.presentation.util.Dispatcher
|
||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
|
@ -48,7 +48,6 @@ class RelationAddToObjectViewModel(
|
|||
fun onRelationSelected(
|
||||
ctx: Id,
|
||||
relation: Key,
|
||||
format: RelationFormat,
|
||||
screenType: String
|
||||
) {
|
||||
viewModelScope.launch {
|
||||
|
@ -61,10 +60,11 @@ class RelationAddToObjectViewModel(
|
|||
success = {
|
||||
dispatcher.send(it).also {
|
||||
commands.emit(Command.OnRelationAdd(relation = relation))
|
||||
sendAnalyticsAddRelationEvent(
|
||||
analytics = analytics,
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationAdd,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = relation,
|
||||
type = screenType,
|
||||
format = format.getPropName(),
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
isDismissed.value = true
|
||||
|
|
|
@ -9,6 +9,7 @@ import com.anytypeio.anytype.core_models.Marketplace.MARKETPLACE_SPACE_ID
|
|||
import com.anytypeio.anytype.core_models.ObjectWrapper
|
||||
import com.anytypeio.anytype.core_models.RelationFormat
|
||||
import com.anytypeio.anytype.core_models.Relations
|
||||
import com.anytypeio.anytype.core_models.primitives.RelationKey
|
||||
import com.anytypeio.anytype.domain.base.AppCoroutineDispatchers
|
||||
import com.anytypeio.anytype.domain.relations.GetRelations
|
||||
import com.anytypeio.anytype.domain.workspace.AddObjectToWorkspace
|
||||
|
@ -226,8 +227,7 @@ abstract class RelationAddViewModelBase(
|
|||
command.emit(
|
||||
Command.DispatchSelectedRelation(
|
||||
ctx = ctx,
|
||||
relation = relation.key,
|
||||
format = relation.format
|
||||
relation = relation.key
|
||||
)
|
||||
)
|
||||
}
|
||||
|
@ -235,8 +235,7 @@ abstract class RelationAddViewModelBase(
|
|||
sealed class Command {
|
||||
data class DispatchSelectedRelation(
|
||||
val ctx: Id,
|
||||
val relation: Key,
|
||||
val format: RelationFormat
|
||||
val relation: Key
|
||||
) : Command()
|
||||
}
|
||||
|
||||
|
|
|
@ -10,12 +10,14 @@ import com.anytypeio.anytype.core_models.primitives.SpaceId
|
|||
import com.anytypeio.anytype.domain.base.fold
|
||||
import com.anytypeio.anytype.domain.dataview.interactor.AddRelationToDataView
|
||||
import com.anytypeio.anytype.domain.dataview.interactor.UpdateDataViewViewer
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.relations.AddRelationToObject
|
||||
import com.anytypeio.anytype.domain.relations.CreateRelation
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.common.BaseViewModel
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsCreateRelationEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationEvent
|
||||
import com.anytypeio.anytype.presentation.relations.model.CreateFromScratchState
|
||||
import com.anytypeio.anytype.presentation.relations.model.LimitObjectTypeValueView
|
||||
import com.anytypeio.anytype.presentation.relations.model.RelationView
|
||||
|
@ -90,7 +92,8 @@ class RelationCreateFromScratchForObjectViewModel(
|
|||
private val dispatcher: Dispatcher<Payload>,
|
||||
private val analytics: Analytics,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : RelationCreateFromScratchBaseViewModel(),
|
||||
AnalyticSpaceHelperDelegate by analyticSpaceHelperDelegate {
|
||||
|
||||
|
@ -143,6 +146,12 @@ class RelationCreateFromScratchForObjectViewModel(
|
|||
).process(
|
||||
success = { payload ->
|
||||
dispatcher.send(payload).also { isDismissed.value = true }
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationAdd,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = relation,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
},
|
||||
failure = {
|
||||
Timber.e(it, ACTION_FAILED_ERROR).also { _toasts.emit(ACTION_FAILED_ERROR) }
|
||||
|
@ -158,7 +167,8 @@ class RelationCreateFromScratchForObjectViewModel(
|
|||
private val dispatcher: Dispatcher<Payload>,
|
||||
private val analytics: Analytics,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||
|
@ -169,7 +179,8 @@ class RelationCreateFromScratchForObjectViewModel(
|
|||
createRelation = createRelation,
|
||||
addRelationToObject = addRelationToObject,
|
||||
spaceManager = spaceManager,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
) as T
|
||||
}
|
||||
}
|
||||
|
@ -182,7 +193,8 @@ class RelationCreateFromScratchForObjectBlockViewModel(
|
|||
private val createFromScratchState: StateHolder<CreateFromScratchState>,
|
||||
private val createRelation: CreateRelation,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : RelationCreateFromScratchBaseViewModel(),
|
||||
AnalyticSpaceHelperDelegate by analyticSpaceHelperDelegate {
|
||||
|
||||
|
@ -240,6 +252,12 @@ class RelationCreateFromScratchForObjectBlockViewModel(
|
|||
).process(
|
||||
success = { payload ->
|
||||
dispatcher.send(payload).also { commands.emit(Command.OnSuccess(relationKey)) }
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationAdd,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
},
|
||||
failure = {
|
||||
Timber.e(it, ACTION_FAILED_ERROR).also { _toasts.emit(ACTION_FAILED_ERROR) }
|
||||
|
@ -255,7 +273,8 @@ class RelationCreateFromScratchForObjectBlockViewModel(
|
|||
private val createFromScratchState: StateHolder<CreateFromScratchState>,
|
||||
private val createRelation: CreateRelation,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||
|
@ -266,7 +285,8 @@ class RelationCreateFromScratchForObjectBlockViewModel(
|
|||
createFromScratchState = createFromScratchState,
|
||||
createRelation = createRelation,
|
||||
spaceManager = spaceManager,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
) as T
|
||||
}
|
||||
}
|
||||
|
@ -285,7 +305,8 @@ class RelationCreateFromScratchForDataViewViewModel(
|
|||
private val createFromScratchState: StateHolder<CreateFromScratchState>,
|
||||
private val createRelation: CreateRelation,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : RelationCreateFromScratchBaseViewModel(),
|
||||
AnalyticSpaceHelperDelegate by analyticSpaceHelperDelegate {
|
||||
|
||||
|
@ -347,6 +368,12 @@ class RelationCreateFromScratchForDataViewViewModel(
|
|||
relationKey = relationKey
|
||||
)
|
||||
}
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationAdd,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
},
|
||||
failure = {
|
||||
Timber.d(it, "Error while adding relation with key: $relationKey to data view: $dv")
|
||||
|
@ -383,7 +410,8 @@ class RelationCreateFromScratchForDataViewViewModel(
|
|||
private val dispatcher: Dispatcher<Payload>,
|
||||
private val analytics: Analytics,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||
|
@ -396,7 +424,8 @@ class RelationCreateFromScratchForDataViewViewModel(
|
|||
createFromScratchState = createFromScratchState,
|
||||
createRelation = createRelation,
|
||||
addRelationToDataView = addRelationToDataView,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
) as T
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.anytypeio.anytype.presentation.relations
|
|||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.anytypeio.anytype.analytics.base.Analytics
|
||||
import com.anytypeio.anytype.analytics.base.EventsDictionary
|
||||
import com.anytypeio.anytype.analytics.base.EventsDictionary.objectRelationFeature
|
||||
import com.anytypeio.anytype.analytics.base.EventsDictionary.objectRelationUnfeature
|
||||
import com.anytypeio.anytype.analytics.base.EventsDictionary.relationsScreenShow
|
||||
|
@ -22,10 +23,11 @@ import com.anytypeio.anytype.domain.relations.AddRelationToObject
|
|||
import com.anytypeio.anytype.domain.relations.AddToFeaturedRelations
|
||||
import com.anytypeio.anytype.domain.relations.DeleteRelationFromObject
|
||||
import com.anytypeio.anytype.domain.relations.RemoveFromFeaturedRelations
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.BuildConfig
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.common.BaseViewModel
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationDeleteEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationValueEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationEvent
|
||||
import com.anytypeio.anytype.presentation.objects.LockedStateProvider
|
||||
import com.anytypeio.anytype.presentation.objects.getProperType
|
||||
import com.anytypeio.anytype.presentation.relations.model.RelationOperationError
|
||||
|
@ -50,8 +52,10 @@ class RelationListViewModel(
|
|||
private val deleteRelationFromObject: DeleteRelationFromObject,
|
||||
private val analytics: Analytics,
|
||||
private val storeOfRelations: StoreOfRelations,
|
||||
private val addRelationToObject: AddRelationToObject
|
||||
) : BaseViewModel() {
|
||||
private val addRelationToObject: AddRelationToObject,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val spaceManager: SpaceManager
|
||||
) : BaseViewModel(), AnalyticSpaceHelperDelegate by analyticSpaceHelperDelegate {
|
||||
|
||||
val isEditMode = MutableStateFlow(false)
|
||||
|
||||
|
@ -249,6 +253,12 @@ class RelationListViewModel(
|
|||
failure = { Timber.e(it, "Error while adding relation to object") },
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationAdd,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = view.key,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
success.invoke()
|
||||
}
|
||||
)
|
||||
|
@ -271,9 +281,11 @@ class RelationListViewModel(
|
|||
failure = { Timber.e(it, "Error while removing from featured relations") },
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
sendEvent(
|
||||
analytics = analytics,
|
||||
eventName = objectRelationUnfeature
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = objectRelationUnfeature,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
}
|
||||
)
|
||||
|
@ -289,9 +301,11 @@ class RelationListViewModel(
|
|||
failure = { Timber.e(it, "Error while adding to featured relations") },
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
sendEvent(
|
||||
analytics = analytics,
|
||||
eventName = objectRelationFeature
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = objectRelationFeature,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
}
|
||||
)
|
||||
|
@ -311,7 +325,12 @@ class RelationListViewModel(
|
|||
failure = { Timber.e(it, "Error while deleting relation") },
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
sendAnalyticsRelationDeleteEvent(analytics)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationDelete,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = view.key,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -446,7 +465,12 @@ class RelationListViewModel(
|
|||
).process(
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
sendAnalyticsRelationValueEvent(analytics)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationChangeValue,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = view.key,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
},
|
||||
failure = { Timber.e(it, "Error while updating checkbox relation") }
|
||||
)
|
||||
|
@ -470,7 +494,8 @@ class RelationListViewModel(
|
|||
fun onRelationTextValueChanged(
|
||||
ctx: Id,
|
||||
value: Any?,
|
||||
relationKey: Key
|
||||
relationKey: Key,
|
||||
isValueEmpty: Boolean
|
||||
) {
|
||||
viewModelScope.launch {
|
||||
updateDetail(
|
||||
|
@ -482,7 +507,13 @@ class RelationListViewModel(
|
|||
).process(
|
||||
success = { payload ->
|
||||
if (payload.events.isNotEmpty()) dispatcher.send(payload)
|
||||
sendAnalyticsRelationValueEvent(analytics)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = if (isValueEmpty) EventsDictionary.relationDeleteValue
|
||||
else EventsDictionary.relationChangeValue,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
},
|
||||
failure = { Timber.e(it, "Error while updating relation values") }
|
||||
)
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.anytypeio.anytype.presentation.relations.option
|
|||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.anytypeio.anytype.analytics.base.Analytics
|
||||
import com.anytypeio.anytype.analytics.base.EventsDictionary
|
||||
import com.anytypeio.anytype.core_models.Id
|
||||
import com.anytypeio.anytype.core_models.Key
|
||||
import com.anytypeio.anytype.core_models.ObjectWrapper
|
||||
|
@ -17,8 +18,9 @@ import com.anytypeio.anytype.domain.`object`.SetObjectDetails
|
|||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.relations.CreateRelationOption
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.common.BaseViewModel
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationValueEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationEvent
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectValueProvider
|
||||
import com.anytypeio.anytype.presentation.util.Dispatcher
|
||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
|
@ -34,8 +36,9 @@ class CreateOrEditOptionViewModel(
|
|||
private val dispatcher: Dispatcher<Payload>,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val analytics: Analytics,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : BaseViewModel() {
|
||||
private val storeOfRelations: StoreOfRelations,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
) : BaseViewModel(), AnalyticSpaceHelperDelegate by analyticSpaceHelperDelegate {
|
||||
|
||||
val command = MutableSharedFlow<Command>(replay = 0)
|
||||
val viewState: MutableStateFlow<CreateOrEditOptionScreenViewState> =
|
||||
|
@ -120,7 +123,6 @@ class CreateOrEditOptionViewModel(
|
|||
onFailure = { Timber.e(it, "Error while updating option") },
|
||||
onSuccess = {
|
||||
dispatcher.send(it)
|
||||
viewModelScope.sendAnalyticsRelationValueEvent(analytics)
|
||||
command.emit(Command.Dismiss)
|
||||
}
|
||||
)
|
||||
|
@ -145,7 +147,13 @@ class CreateOrEditOptionViewModel(
|
|||
onFailure = { Timber.e(it, "Error while adding tag to object") },
|
||||
onSuccess = {
|
||||
dispatcher.send(it)
|
||||
viewModelScope.sendAnalyticsRelationValueEvent(analytics)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = if (result.isEmpty()) EventsDictionary.relationDeleteValue
|
||||
else EventsDictionary.relationChangeValue,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
command.emit(Command.Dismiss)
|
||||
}
|
||||
)
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.anytypeio.anytype.domain.`object`.SetObjectDetails
|
|||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.relations.CreateRelationOption
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectValueProvider
|
||||
import com.anytypeio.anytype.presentation.util.Dispatcher
|
||||
import javax.inject.Inject
|
||||
|
@ -20,7 +21,8 @@ class CreateOrEditOptionViewModelFactory @Inject constructor(
|
|||
private val dispatcher: Dispatcher<Payload>,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val analytics: Analytics,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
private val storeOfRelations: StoreOfRelations,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(
|
||||
|
@ -33,6 +35,7 @@ class CreateOrEditOptionViewModelFactory @Inject constructor(
|
|||
dispatcher = dispatcher,
|
||||
spaceManager = spaceManager,
|
||||
analytics = analytics,
|
||||
storeOfRelations = storeOfRelations
|
||||
storeOfRelations = storeOfRelations,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate
|
||||
) as T
|
||||
}
|
|
@ -2,6 +2,7 @@ package com.anytypeio.anytype.presentation.relations.value.`object`
|
|||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.anytypeio.anytype.analytics.base.Analytics
|
||||
import com.anytypeio.anytype.analytics.base.EventsDictionary
|
||||
import com.anytypeio.anytype.core_models.Id
|
||||
import com.anytypeio.anytype.core_models.Key
|
||||
import com.anytypeio.anytype.core_models.ObjectTypeIds
|
||||
|
@ -18,11 +19,13 @@ import com.anytypeio.anytype.domain.`object`.DuplicateObject
|
|||
import com.anytypeio.anytype.domain.`object`.UpdateDetail
|
||||
import com.anytypeio.anytype.domain.objects.SetObjectListIsArchived
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfObjectTypes
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.search.SearchObjects
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.domain.workspace.getSpaceWithTechSpace
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.common.BaseViewModel
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationValueEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationEvent
|
||||
import com.anytypeio.anytype.presentation.navigation.DefaultObjectView
|
||||
import com.anytypeio.anytype.presentation.objects.SupportedLayouts
|
||||
import com.anytypeio.anytype.presentation.objects.toView
|
||||
|
@ -54,8 +57,10 @@ class ObjectValueViewModel(
|
|||
private val urlBuilder: UrlBuilder,
|
||||
private val storeOfObjectTypes: StoreOfObjectTypes,
|
||||
private val objectListIsArchived: SetObjectListIsArchived,
|
||||
private val duplicateObject: DuplicateObject
|
||||
) : BaseViewModel() {
|
||||
private val duplicateObject: DuplicateObject,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : BaseViewModel(), AnalyticSpaceHelperDelegate by analyticSpaceHelperDelegate {
|
||||
|
||||
val viewState = MutableStateFlow<ObjectValueViewState>(ObjectValueViewState.Loading())
|
||||
private val query = MutableSharedFlow<String>(replay = 1)
|
||||
|
@ -333,7 +338,12 @@ class ObjectValueViewModel(
|
|||
failure = { Timber.e(it, "Error while clearing objects") },
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
sendAnalyticsRelationValueEvent(analytics)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationDeleteValue,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = viewModelParams.relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -390,7 +400,13 @@ class ObjectValueViewModel(
|
|||
failure = { Timber.e(it, "Error while adding object") },
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
sendAnalyticsRelationValueEvent(analytics)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = if (result.isEmpty()) EventsDictionary.relationDeleteValue
|
||||
else EventsDictionary.relationChangeValue,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = viewModelParams.relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -409,7 +425,13 @@ class ObjectValueViewModel(
|
|||
failure = { Timber.e(it, "Error while removing object ${item.view.id}") },
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
viewModelScope.sendAnalyticsRelationValueEvent(analytics)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = if (value.isEmpty()) EventsDictionary.relationDeleteValue
|
||||
else EventsDictionary.relationChangeValue,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = viewModelParams.relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
action()
|
||||
}
|
||||
)
|
||||
|
|
|
@ -9,8 +9,10 @@ import com.anytypeio.anytype.domain.`object`.DuplicateObject
|
|||
import com.anytypeio.anytype.domain.`object`.UpdateDetail
|
||||
import com.anytypeio.anytype.domain.objects.SetObjectListIsArchived
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfObjectTypes
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.search.SearchObjects
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectRelationProvider
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectValueProvider
|
||||
import com.anytypeio.anytype.presentation.util.Dispatcher
|
||||
|
@ -29,6 +31,8 @@ class ObjectValueViewModelFactory @Inject constructor(
|
|||
private val storeOfObjectTypes: StoreOfObjectTypes,
|
||||
private val objectListIsArchived: SetObjectListIsArchived,
|
||||
private val duplicateObject: DuplicateObject,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(
|
||||
|
@ -45,6 +49,8 @@ class ObjectValueViewModelFactory @Inject constructor(
|
|||
urlBuilder = urlBuilder,
|
||||
storeOfObjectTypes = storeOfObjectTypes,
|
||||
objectListIsArchived = objectListIsArchived,
|
||||
duplicateObject = duplicateObject
|
||||
duplicateObject = duplicateObject,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
) as T
|
||||
}
|
|
@ -2,6 +2,7 @@ package com.anytypeio.anytype.presentation.relations.value.tagstatus
|
|||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.anytypeio.anytype.analytics.base.Analytics
|
||||
import com.anytypeio.anytype.analytics.base.EventsDictionary
|
||||
import com.anytypeio.anytype.core_models.Id
|
||||
import com.anytypeio.anytype.core_models.Key
|
||||
import com.anytypeio.anytype.core_models.ObjectWrapper
|
||||
|
@ -14,10 +15,12 @@ import com.anytypeio.anytype.domain.base.fold
|
|||
import com.anytypeio.anytype.domain.library.StoreSearchParams
|
||||
import com.anytypeio.anytype.domain.library.StorelessSubscriptionContainer
|
||||
import com.anytypeio.anytype.domain.`object`.UpdateDetail
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.relations.DeleteRelationOptions
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.common.BaseViewModel
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationValueEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationEvent
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectRelationProvider
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectValueProvider
|
||||
import com.anytypeio.anytype.presentation.search.ObjectSearchConstants
|
||||
|
@ -41,8 +44,10 @@ class TagOrStatusValueViewModel(
|
|||
private val analytics: Analytics,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val subscription: StorelessSubscriptionContainer,
|
||||
private val deleteRelationOptions: DeleteRelationOptions
|
||||
) : BaseViewModel() {
|
||||
private val deleteRelationOptions: DeleteRelationOptions,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : BaseViewModel(), AnalyticSpaceHelperDelegate by analyticSpaceHelperDelegate {
|
||||
|
||||
val viewState = MutableStateFlow<TagStatusViewState>(TagStatusViewState.Loading)
|
||||
private val query = MutableSharedFlow<String>(replay = 0)
|
||||
|
@ -317,7 +322,13 @@ class TagOrStatusValueViewModel(
|
|||
failure = { Timber.e(it, "Error while adding tag") },
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
sendAnalyticsRelationValueEvent(analytics)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = if (result.isEmpty()) EventsDictionary.relationDeleteValue
|
||||
else EventsDictionary.relationChangeValue,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = viewModelParams.relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -337,7 +348,13 @@ class TagOrStatusValueViewModel(
|
|||
failure = { Timber.e(it, "Error while adding tag") },
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
sendAnalyticsRelationValueEvent(analytics)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = if (remaining.isEmpty()) EventsDictionary.relationDeleteValue
|
||||
else EventsDictionary.relationChangeValue,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = viewModelParams.relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -354,7 +371,12 @@ class TagOrStatusValueViewModel(
|
|||
failure = { Timber.e(it, "Error while adding tag") },
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
sendAnalyticsRelationValueEvent(analytics)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationChangeValue,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = viewModelParams.relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
emitCommand(command = Command.Dismiss, delay = DELAY_UNTIL_CLOSE)
|
||||
}
|
||||
)
|
||||
|
@ -373,7 +395,12 @@ class TagOrStatusValueViewModel(
|
|||
failure = { Timber.e(it, "Error while clearing tags or select") },
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
sendAnalyticsRelationValueEvent(analytics)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationDeleteValue,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = viewModelParams.relationKey,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
|
|
@ -6,8 +6,10 @@ import com.anytypeio.anytype.analytics.base.Analytics
|
|||
import com.anytypeio.anytype.core_models.Payload
|
||||
import com.anytypeio.anytype.domain.library.StorelessSubscriptionContainer
|
||||
import com.anytypeio.anytype.domain.`object`.UpdateDetail
|
||||
import com.anytypeio.anytype.domain.objects.StoreOfRelations
|
||||
import com.anytypeio.anytype.domain.relations.DeleteRelationOptions
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectRelationProvider
|
||||
import com.anytypeio.anytype.presentation.relations.providers.ObjectValueProvider
|
||||
import com.anytypeio.anytype.presentation.util.Dispatcher
|
||||
|
@ -22,7 +24,9 @@ class TagOrStatusValueViewModelFactory @Inject constructor(
|
|||
private val analytics: Analytics,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val subscription: StorelessSubscriptionContainer,
|
||||
private val deleteRelationOptions: DeleteRelationOptions
|
||||
private val deleteRelationOptions: DeleteRelationOptions,
|
||||
private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate,
|
||||
private val storeOfRelations: StoreOfRelations
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(
|
||||
|
@ -36,6 +40,8 @@ class TagOrStatusValueViewModelFactory @Inject constructor(
|
|||
analytics = analytics,
|
||||
spaceManager = spaceManager,
|
||||
subscription = subscription,
|
||||
deleteRelationOptions = deleteRelationOptions
|
||||
deleteRelationOptions = deleteRelationOptions,
|
||||
analyticSpaceHelperDelegate = analyticSpaceHelperDelegate,
|
||||
storeOfRelations = storeOfRelations
|
||||
) as T
|
||||
}
|
|
@ -70,7 +70,7 @@ import com.anytypeio.anytype.presentation.editor.model.TextUpdate
|
|||
import com.anytypeio.anytype.presentation.extension.ObjectStateAnalyticsEvent
|
||||
import com.anytypeio.anytype.presentation.extension.logEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsObjectCreateEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationValueEvent
|
||||
import com.anytypeio.anytype.presentation.extension.sendAnalyticsRelationEvent
|
||||
import com.anytypeio.anytype.presentation.home.HomeScreenViewModel.Companion.HOME_SCREEN_PROFILE_OBJECT_SUBSCRIPTION
|
||||
import com.anytypeio.anytype.presentation.mapper.toTemplateObjectTypeViewItems
|
||||
import com.anytypeio.anytype.presentation.navigation.AppNavigation
|
||||
|
@ -1736,7 +1736,12 @@ class ObjectSetViewModel(
|
|||
).process(
|
||||
success = {
|
||||
dispatcher.send(it)
|
||||
sendAnalyticsRelationValueEvent(analytics)
|
||||
analytics.sendAnalyticsRelationEvent(
|
||||
eventName = EventsDictionary.relationChangeValue,
|
||||
storeOfRelations = storeOfRelations,
|
||||
relationKey = view.key,
|
||||
spaceParams = provideParams(spaceManager.get())
|
||||
)
|
||||
},
|
||||
failure = { Timber.e(it, "Error while updating checkbox relation") }
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue