diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/search/ObjectSearchConstants.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/search/ObjectSearchConstants.kt index 951fb652a7..269d76a306 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/search/ObjectSearchConstants.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/search/ObjectSearchConstants.kt @@ -685,7 +685,7 @@ object ObjectSearchConstants { } } - fun defaultDataViewFilters(space: Id) = listOf( + fun defaultDataViewFilters(space: Id, context: Id) = listOf( DVFilter( relation = Relations.IS_HIDDEN, condition = Condition.NOT_EQUAL, @@ -705,6 +705,11 @@ object ObjectSearchConstants { relation = Relations.SPACE_ID, condition = DVFilterCondition.EQUAL, value = space + ), + DVFilter( + relation = Relations.ID, + condition = DVFilterCondition.NOT_EQUAL, + value = context ) ) diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetViewModel.kt index 0cf02ddb68..dd64943bb8 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetViewModel.kt @@ -13,7 +13,6 @@ import com.anytypeio.anytype.core_models.InternalFlags import com.anytypeio.anytype.core_models.Key import com.anytypeio.anytype.core_models.ObjectType import com.anytypeio.anytype.core_models.ObjectTypeIds -import com.anytypeio.anytype.core_models.ObjectTypeUniqueKeys import com.anytypeio.anytype.core_models.ObjectWrapper import com.anytypeio.anytype.core_models.Payload import com.anytypeio.anytype.core_models.Relation @@ -76,7 +75,6 @@ import com.anytypeio.anytype.presentation.relations.ObjectSetConfig.DEFAULT_LIMI import com.anytypeio.anytype.presentation.relations.RelationListViewModel import com.anytypeio.anytype.presentation.relations.render import com.anytypeio.anytype.presentation.search.ObjectSearchConstants -import com.anytypeio.anytype.presentation.search.Subscriptions.SUBSCRIPTION_SET_TEMPLATES import com.anytypeio.anytype.presentation.sets.model.CellView import com.anytypeio.anytype.presentation.sets.model.Viewer import com.anytypeio.anytype.presentation.sets.state.ObjectState diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/subscription/DataViewSubscription.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/subscription/DataViewSubscription.kt index 4320de2420..4a3d617122 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/subscription/DataViewSubscription.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/subscription/DataViewSubscription.kt @@ -6,6 +6,7 @@ import com.anytypeio.anytype.domain.search.DataViewState import com.anytypeio.anytype.domain.search.DataViewSubscriptionContainer import com.anytypeio.anytype.presentation.relations.ObjectSetConfig import com.anytypeio.anytype.presentation.search.ObjectSearchConstants +import com.anytypeio.anytype.presentation.search.ObjectSearchConstants.defaultDataViewFilters import com.anytypeio.anytype.presentation.sets.filterOutDeletedAndMissingObjects import com.anytypeio.anytype.presentation.sets.getSetOfValue import com.anytypeio.anytype.presentation.sets.state.ObjectState @@ -59,10 +60,15 @@ class DefaultDataViewSubscription( Timber.w("Data view collection subscription: active viewer is null") return emptyFlow() } - val filters = - activeViewer.filters.updateFormatForSubscription(storeOfRelations) + ObjectSearchConstants.defaultDataViewFilters( - space = space + val filters = buildList { + addAll(activeViewer.filters.updateFormatForSubscription(storeOfRelations)) + addAll( + defaultDataViewFilters( + space = space, + context = context + ) ) + } val dataViewLinksKeys = state.dataViewContent.relationLinks.map { it.key } val keys = ObjectSearchConstants.defaultDataViewKeys + dataViewLinksKeys @@ -112,10 +118,15 @@ class DefaultDataViewSubscription( return emptyFlow() } - val filters = - activeViewer.filters.updateFormatForSubscription(storeOfRelations) + ObjectSearchConstants.defaultDataViewFilters( - space = space + val filters = buildList { + addAll(activeViewer.filters.updateFormatForSubscription(storeOfRelations)) + addAll( + defaultDataViewFilters( + space = space, + context = context + ) ) + } val dataViewLinksKeys = state.dataViewContent.relationLinks.map { it.key } val keys = ObjectSearchConstants.defaultDataViewKeys + dataViewLinksKeys diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/DataViewListWidgetContainer.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/DataViewListWidgetContainer.kt index 502954052e..e92a578b53 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/DataViewListWidgetContainer.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/DataViewListWidgetContainer.kt @@ -159,7 +159,12 @@ class DataViewListWidgetContainer( }.distinct(), filters = buildList { addAll(view.filters) - addAll(ObjectSearchConstants.defaultDataViewFilters(space)) + addAll( + ObjectSearchConstants.defaultDataViewFilters( + space = space, + context = root + ) + ) add( DVFilter( relation = Relations.TYPE_UNIQUE_KEY, diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/ObjectStateSetViewTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/ObjectStateSetViewTest.kt index 42bf0d312d..2063d75414 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/ObjectStateSetViewTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/ObjectStateSetViewTest.kt @@ -328,7 +328,8 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { eq(listOf()), eq( mockObjectSet.filters + ObjectSearchConstants.defaultDataViewFilters( - mockObjectSet.spaceId + mockObjectSet.spaceId, + root ) ), eq(ObjectSearchConstants.defaultDataViewKeys + mockObjectSet.dvKeys), diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/home/HomeScreenViewModelTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/home/HomeScreenViewModelTest.kt index 45bfdbf631..79ae4f623d 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/home/HomeScreenViewModelTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/home/HomeScreenViewModelTest.kt @@ -2440,7 +2440,7 @@ class HomeScreenViewModelTest { val firstTimeParams = StoreSearchParams( subscription = widgetBlock.id, filters = buildList { - addAll(ObjectSearchConstants.defaultDataViewFilters(defaultSpaceConfig.space)) + addAll(ObjectSearchConstants.defaultDataViewFilters(defaultSpaceConfig.space, currentWidgetSourceObject.id)) add( DVFilter( relation = Relations.TYPE_UNIQUE_KEY, diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetConvertToCollectionTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetConvertToCollectionTest.kt index 7cb78c4eee..6c44ec47be 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetConvertToCollectionTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetConvertToCollectionTest.kt @@ -98,7 +98,8 @@ class ObjectSetConvertToCollectionTest : ObjectSetViewModelTestSetup() { eq(listOf()), eq( mockObjectSet.filters + ObjectSearchConstants.defaultDataViewFilters( - mockObjectSet.spaceId + mockObjectSet.spaceId, + mockObjectSet.root ) ), eq(ObjectSearchConstants.defaultDataViewKeys + mockObjectSet.dvKeys), diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetViewModelTestSetup.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetViewModelTestSetup.kt index 57304d5425..dca61ca729 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetViewModelTestSetup.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetViewModelTestSetup.kt @@ -341,7 +341,8 @@ open class ObjectSetViewModelTestSetup { subscription = subscription, collection = collection, filters = dvFilters.updateFormatForSubscription(storeOfRelations) + ObjectSearchConstants.defaultDataViewFilters( - space = spaceId + space = spaceId, + context = root ), sorts = dvSorts, keys = dvKeys,