diff --git a/app/src/main/java/com/anytypeio/anytype/di/feature/BacklinkOrAddToObjectDI.kt b/app/src/main/java/com/anytypeio/anytype/di/feature/BacklinkOrAddToObjectDI.kt index fe8351ff48..001c563f8e 100644 --- a/app/src/main/java/com/anytypeio/anytype/di/feature/BacklinkOrAddToObjectDI.kt +++ b/app/src/main/java/com/anytypeio/anytype/di/feature/BacklinkOrAddToObjectDI.kt @@ -10,6 +10,7 @@ import com.anytypeio.anytype.domain.block.interactor.sets.GetObjectTypes import com.anytypeio.anytype.domain.block.repo.BlockRepository import com.anytypeio.anytype.domain.misc.DateProvider import com.anytypeio.anytype.domain.misc.UrlBuilder +import com.anytypeio.anytype.domain.multiplayer.SpaceViewSubscriptionContainer import com.anytypeio.anytype.domain.objects.StoreOfObjectTypes import com.anytypeio.anytype.domain.primitives.FieldParser import com.anytypeio.anytype.domain.search.SearchObjects @@ -79,4 +80,5 @@ interface BacklinkOrAddToObjectDependencies : ComponentDependencies { fun dateProvider(): DateProvider fun fieldParser(): FieldParser fun storeOfObjectTypes(): StoreOfObjectTypes -} \ No newline at end of file + fun spaceViews(): SpaceViewSubscriptionContainer +} diff --git a/app/src/main/java/com/anytypeio/anytype/di/feature/search/GlobalSearchComponent.kt b/app/src/main/java/com/anytypeio/anytype/di/feature/search/GlobalSearchComponent.kt index 65929c6dd7..83788e734a 100644 --- a/app/src/main/java/com/anytypeio/anytype/di/feature/search/GlobalSearchComponent.kt +++ b/app/src/main/java/com/anytypeio/anytype/di/feature/search/GlobalSearchComponent.kt @@ -8,6 +8,7 @@ import com.anytypeio.anytype.domain.base.AppCoroutineDispatchers import com.anytypeio.anytype.domain.block.repo.BlockRepository import com.anytypeio.anytype.domain.config.UserSettingsRepository import com.anytypeio.anytype.domain.misc.UrlBuilder +import com.anytypeio.anytype.domain.multiplayer.SpaceViewSubscriptionContainer import com.anytypeio.anytype.domain.objects.StoreOfObjectTypes import com.anytypeio.anytype.domain.objects.StoreOfRelations import com.anytypeio.anytype.domain.primitives.FieldParser @@ -60,4 +61,5 @@ interface GlobalSearchDependencies : ComponentDependencies { fun analyticsHelper(): AnalyticSpaceHelperDelegate fun userSettingsRepository(): UserSettingsRepository fun fieldParser(): FieldParser -} \ No newline at end of file + fun spaceViews(): SpaceViewSubscriptionContainer +} diff --git a/core-models/src/main/java/com/anytypeio/anytype/core_models/SupportedLayouts.kt b/core-models/src/main/java/com/anytypeio/anytype/core_models/SupportedLayouts.kt index 8f39f0d53f..8122f84086 100644 --- a/core-models/src/main/java/com/anytypeio/anytype/core_models/SupportedLayouts.kt +++ b/core-models/src/main/java/com/anytypeio/anytype/core_models/SupportedLayouts.kt @@ -134,7 +134,7 @@ object SupportedLayouts { */ fun getSystemLayouts(spaceUxType: SpaceUxType?): List { return when (spaceUxType) { - SpaceUxType.CHAT -> baseSystemLayouts + listOf(ObjectType.Layout.CHAT_DERIVED) + SpaceUxType.CHAT -> baseSystemLayouts + listOf(ObjectType.Layout.CHAT_DERIVED, ObjectType.Layout.CHAT) else -> baseSystemLayouts } } @@ -170,4 +170,21 @@ object SupportedLayouts { else -> baseLayouts + listOf(ObjectType.Layout.CHAT_DERIVED) } } + + /** + * Get layouts for object search (global search, link to, etc.). + * + * Combines base layouts, file layouts, date layouts, and object type layout, + * filtered by space UX type. + * + * @param spaceUxType The UX type of the current space + * @return List of layouts for object search operations + */ + fun getObjectSearchLayouts(spaceUxType: SpaceUxType? = null): List { + return getLayouts(spaceUxType) + .plus(fileLayouts) + .plus(dateLayouts) + .plus(listOf(ObjectType.Layout.OBJECT_TYPE)) + .distinct() + } } diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/editor/EditorViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/editor/EditorViewModel.kt index 62c0d33660..f76c5e297d 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/editor/EditorViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/editor/EditorViewModel.kt @@ -6526,11 +6526,13 @@ class EditorViewModel( return } val fullText = filter.removePrefix(MENTION_PREFIX) + val spaceUxType = spaceViews.get(vmParams.space)?.spaceUxType val params = SearchObjects.Params( space = vmParams.space, limit = ObjectSearchViewModel.SEARCH_LIMIT, filters = ObjectSearchConstants.getFilterLinkTo( - ignore = context + ignore = context, + spaceUxType = spaceUxType ), sorts = ObjectSearchConstants.sortLinkTo, fulltext = fullText, diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/BackLinkOrAddToObjectViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/BackLinkOrAddToObjectViewModel.kt index f02d3a997e..646e334593 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/BackLinkOrAddToObjectViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/BackLinkOrAddToObjectViewModel.kt @@ -9,6 +9,7 @@ import com.anytypeio.anytype.domain.base.Resultat import com.anytypeio.anytype.domain.block.interactor.sets.GetObjectTypes import com.anytypeio.anytype.domain.misc.DateProvider import com.anytypeio.anytype.domain.misc.UrlBuilder +import com.anytypeio.anytype.domain.multiplayer.SpaceViewSubscriptionContainer import com.anytypeio.anytype.domain.objects.StoreOfObjectTypes import com.anytypeio.anytype.domain.primitives.FieldParser import com.anytypeio.anytype.domain.search.SearchObjects @@ -30,6 +31,7 @@ class BackLinkOrAddToObjectViewModel( analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate, fieldParser: FieldParser, storeOfObjectTypes: StoreOfObjectTypes, + spaceViews: SpaceViewSubscriptionContainer ) : ObjectSearchViewModel( vmParams = vmParams, urlBuilder = urlBuilder, @@ -38,7 +40,8 @@ class BackLinkOrAddToObjectViewModel( analytics = analytics, analyticSpaceHelperDelegate = analyticSpaceHelperDelegate, fieldParser = fieldParser, - storeOfObjectTypes = storeOfObjectTypes + storeOfObjectTypes = storeOfObjectTypes, + spaceViews = spaceViews ) { private val _commands = MutableSharedFlow(replay = 0) diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/LinkToObjectOrWebViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/LinkToObjectOrWebViewModel.kt index da6effd947..a3aabe4784 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/LinkToObjectOrWebViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/LinkToObjectOrWebViewModel.kt @@ -237,9 +237,15 @@ class LinkToObjectOrWebViewModel( fun getSearchObjectsParams(ignore: Id) = SearchObjects.Params( space = vmParams.space, limit = ObjectSearchViewModel.SEARCH_LIMIT, - filters = ObjectSearchConstants.getFilterLinkTo( - ignore = ignore - ), + filters = buildList { + val spaceUxType = spaceViews.get(vmParams.space)?.spaceUxType + addAll( + ObjectSearchConstants.getFilterLinkTo( + ignore = ignore, + spaceUxType = spaceUxType + ) + ) + }, sorts = ObjectSearchConstants.sortLinkTo, fulltext = ObjectSearchViewModel.EMPTY_QUERY, keys = ObjectSearchConstants.defaultKeys diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/LinkToObjectViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/LinkToObjectViewModel.kt index 5ac243a8f1..890f889487 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/LinkToObjectViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/LinkToObjectViewModel.kt @@ -39,7 +39,8 @@ class LinkToObjectViewModel( analytics = analytics, analyticSpaceHelperDelegate = analyticSpaceHelperDelegate, fieldParser = fieldParser, - storeOfObjectTypes = storeOfObjectTypes + storeOfObjectTypes = storeOfObjectTypes, + spaceViews = spaceViews ) { val commands = MutableSharedFlow(replay = 0) @@ -51,9 +52,15 @@ class LinkToObjectViewModel( override suspend fun getSearchObjectsParams(ignore: Id?) = SearchObjects.Params( space = vmParams.space, limit = SEARCH_LIMIT, - filters = ObjectSearchConstants.getFilterLinkTo( - ignore = ignore - ), + filters = buildList { + val spaceUxType = spaceViews.get(vmParams.space)?.spaceUxType + addAll( + ObjectSearchConstants.getFilterLinkTo( + ignore = ignore, + spaceUxType = spaceUxType + ) + ) + }, sorts = ObjectSearchConstants.sortLinkTo, fulltext = EMPTY_QUERY, keys = ObjectSearchConstants.defaultKeys diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/LinkToObjectViewModelFactory.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/LinkToObjectViewModelFactory.kt index d707dc13e1..2a67e40c04 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/LinkToObjectViewModelFactory.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/linking/LinkToObjectViewModelFactory.kt @@ -81,7 +81,8 @@ class BackLinkOrAddToObjectViewModelFactory @Inject constructor( private val analytics: Analytics, private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate, private val fieldParser: FieldParser, - private val storeOfObjectTypes: StoreOfObjectTypes + private val storeOfObjectTypes: StoreOfObjectTypes, + private val spaceViews: SpaceViewSubscriptionContainer ) : ViewModelProvider.Factory { @Suppress("UNCHECKED_CAST") @@ -94,7 +95,8 @@ class BackLinkOrAddToObjectViewModelFactory @Inject constructor( analytics = analytics, analyticSpaceHelperDelegate = analyticSpaceHelperDelegate, fieldParser = fieldParser, - storeOfObjectTypes = storeOfObjectTypes + storeOfObjectTypes = storeOfObjectTypes, + spaceViews = spaceViews ) as T } } \ No newline at end of file diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/search/GlobalSearchViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/search/GlobalSearchViewModel.kt index d211e5be1b..e177221baa 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/search/GlobalSearchViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/search/GlobalSearchViewModel.kt @@ -32,6 +32,7 @@ import com.anytypeio.anytype.core_models.primitives.SpaceId import com.anytypeio.anytype.domain.base.Resultat import com.anytypeio.anytype.domain.base.fold import com.anytypeio.anytype.domain.misc.UrlBuilder +import com.anytypeio.anytype.domain.multiplayer.SpaceViewSubscriptionContainer import com.anytypeio.anytype.domain.objects.StoreOfObjectTypes import com.anytypeio.anytype.domain.objects.StoreOfRelations import com.anytypeio.anytype.domain.objects.getTypeOfObject @@ -77,7 +78,8 @@ class GlobalSearchViewModel @Inject constructor( private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate, private val restoreGlobalSearchHistory: RestoreGlobalSearchHistory, private val updateGlobalSearchHistory: UpdateGlobalSearchHistory, - private val fieldParser: FieldParser + private val fieldParser: FieldParser, + private val spaceViews: SpaceViewSubscriptionContainer ) : BaseViewModel(), AnalyticSpaceHelperDelegate by analyticSpaceHelperDelegate { private val userInput = MutableStateFlow("") @@ -278,7 +280,8 @@ class GlobalSearchViewModel @Inject constructor( offset = 0, keys = DEFAULT_KEYS, filters = buildList { - addAll(filterSearchObjects()) + val spaceUxType = spaceViews.get(vmParams.space)?.spaceUxType + addAll(filterSearchObjects(spaceUxType = spaceUxType)) add( DVFilter( relation = Relations.ID, @@ -307,7 +310,10 @@ class GlobalSearchViewModel @Inject constructor( limit = DEFAULT_SEARCH_LIMIT, offset = 0, keys = DEFAULT_KEYS, - filters = ObjectSearchConstants.filterSearchObjects(), + filters = buildList { + val spaceUxType = spaceViews.get(vmParams.space)?.spaceUxType + addAll(ObjectSearchConstants.filterSearchObjects(spaceUxType = spaceUxType)) + }, sorts = ObjectSearchConstants.sortsSearchObjects, withMetaRelationDetails = true, withMeta = true, @@ -420,7 +426,8 @@ class GlobalSearchViewModel @Inject constructor( private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate, private val restoreGlobalSearchHistory: RestoreGlobalSearchHistory, private val updateGlobalSearchHistory: UpdateGlobalSearchHistory, - private val fieldParser: FieldParser + private val fieldParser: FieldParser, + private val spaceViews: SpaceViewSubscriptionContainer ) : ViewModelProvider.Factory { @Suppress("UNCHECKED_CAST") override fun create(modelClass: Class): T { @@ -434,7 +441,8 @@ class GlobalSearchViewModel @Inject constructor( analyticSpaceHelperDelegate = analyticSpaceHelperDelegate, restoreGlobalSearchHistory = restoreGlobalSearchHistory, updateGlobalSearchHistory = updateGlobalSearchHistory, - fieldParser = fieldParser + fieldParser = fieldParser, + spaceViews = spaceViews ) as T } } 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 9d73a116c5..ae4a8a436d 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 @@ -8,6 +8,7 @@ import com.anytypeio.anytype.core_models.DVSortType import com.anytypeio.anytype.core_models.Id 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.RelationFormat import com.anytypeio.anytype.core_models.Relations @@ -25,7 +26,8 @@ object ObjectSearchConstants { //region SEARCH OBJECTS fun filterSearchObjects( - excludeTypes: Boolean = false + excludeTypes: Boolean = false, + spaceUxType: SpaceUxType? = null ) = buildList { add( DVFilter( @@ -62,16 +64,36 @@ object ObjectSearchConstants { value = ObjectTypeUniqueKeys.TEMPLATE ) ) + // Exclude chat types in chat spaces + if (spaceUxType == SpaceUxType.CHAT) { + // Filter out objects whose type is chat + add( + DVFilter( + relation = Relations.TYPE_UNIQUE_KEY, + condition = DVFilterCondition.NOT_IN, + value = listOf(ObjectTypeIds.CHAT_DERIVED, ObjectTypeIds.CHAT) + ) + ) + // Filter out ObjectType objects (the type definitions themselves) with chat uniqueKey + add( + DVFilter( + relation = Relations.UNIQUE_KEY, + condition = DVFilterCondition.NOT_IN, + value = listOf(ObjectTypeIds.CHAT_DERIVED, ObjectTypeIds.CHAT) + ) + ) + } add( DVFilter( relation = Relations.LAYOUT, condition = DVFilterCondition.IN, value = if (excludeTypes) { - globalSearchLayouts + SupportedLayouts.getObjectSearchLayouts(spaceUxType) .filter { it != ObjectType.Layout.OBJECT_TYPE } .map { it.code.toDouble() } } else { - globalSearchLayouts.map { it.code.toDouble() } + SupportedLayouts.getObjectSearchLayouts(spaceUxType) + .map { it.code.toDouble() } } ) ) @@ -90,44 +112,79 @@ object ObjectSearchConstants { //region LINK TO fun getFilterLinkTo( - ignore: Id? - ) = listOf( - DVFilter( - relation = Relations.IS_ARCHIVED, - condition = DVFilterCondition.NOT_EQUAL, - value = true - ), - DVFilter( - relation = Relations.IS_HIDDEN, - condition = DVFilterCondition.NOT_EQUAL, - value = true - ), - DVFilter( - relation = Relations.IS_HIDDEN_DISCOVERY, - condition = DVFilterCondition.NOT_EQUAL, - value = true - ), - DVFilter( - relation = Relations.IS_DELETED, - condition = DVFilterCondition.NOT_EQUAL, - value = true - ), - DVFilter( - relation = Relations.TYPE_UNIQUE_KEY, - condition = DVFilterCondition.NOT_EQUAL, - value = ObjectTypeUniqueKeys.TEMPLATE - ), - DVFilter( - relation = Relations.LAYOUT, - condition = DVFilterCondition.IN, - value = globalSearchLayouts.map { it.code.toDouble() } - ), - DVFilter( - relation = Relations.ID, - condition = DVFilterCondition.NOT_EQUAL, - value = ignore + ignore: Id?, + spaceUxType: SpaceUxType? = null + ) = buildList { + add( + DVFilter( + relation = Relations.IS_ARCHIVED, + condition = DVFilterCondition.NOT_EQUAL, + value = true + ) ) - ) + add( + DVFilter( + relation = Relations.IS_HIDDEN, + condition = DVFilterCondition.NOT_EQUAL, + value = true + ) + ) + add( + DVFilter( + relation = Relations.IS_HIDDEN_DISCOVERY, + condition = DVFilterCondition.NOT_EQUAL, + value = true + ) + ) + add( + DVFilter( + relation = Relations.IS_DELETED, + condition = DVFilterCondition.NOT_EQUAL, + value = true + ) + ) + add( + DVFilter( + relation = Relations.TYPE_UNIQUE_KEY, + condition = DVFilterCondition.NOT_EQUAL, + value = ObjectTypeUniqueKeys.TEMPLATE + ) + ) + // Exclude chat types in chat spaces + if (spaceUxType == SpaceUxType.CHAT) { + // Filter out objects whose type is chat + add( + DVFilter( + relation = Relations.TYPE_UNIQUE_KEY, + condition = DVFilterCondition.NOT_IN, + value = listOf(ObjectTypeIds.CHAT_DERIVED, ObjectTypeIds.CHAT) + ) + ) + // Filter out ObjectType objects (the type definitions themselves) with chat uniqueKey + add( + DVFilter( + relation = Relations.UNIQUE_KEY, + condition = DVFilterCondition.NOT_IN, + value = listOf(ObjectTypeIds.CHAT_DERIVED, ObjectTypeIds.CHAT) + ) + ) + } + add( + DVFilter( + relation = Relations.LAYOUT, + condition = DVFilterCondition.IN, + value = SupportedLayouts.getObjectSearchLayouts(spaceUxType) + .map { it.code.toDouble() } + ) + ) + add( + DVFilter( + relation = Relations.ID, + condition = DVFilterCondition.NOT_EQUAL, + value = ignore + ) + ) + } val sortLinkTo = listOf( DVSort( @@ -321,6 +378,13 @@ object ObjectSearchConstants { value = listOf(ObjectType.Layout.CHAT_DERIVED.code.toDouble()) ) ) + add( + DVFilter( + relation = Relations.RECOMMENDED_LAYOUT, + condition = DVFilterCondition.NOT_IN, + value = listOf(ObjectType.Layout.CHAT.code.toDouble()) + ) + ) } } diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/search/ObjectSearchViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/search/ObjectSearchViewModel.kt index 51cae5635c..96979bf263 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/search/ObjectSearchViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/search/ObjectSearchViewModel.kt @@ -18,6 +18,7 @@ import com.anytypeio.anytype.domain.base.getOrThrow import com.anytypeio.anytype.domain.block.interactor.sets.GetObjectTypes import com.anytypeio.anytype.domain.misc.DateProvider import com.anytypeio.anytype.domain.misc.UrlBuilder +import com.anytypeio.anytype.domain.multiplayer.SpaceViewSubscriptionContainer import com.anytypeio.anytype.domain.objects.StoreOfObjectTypes import com.anytypeio.anytype.domain.primitives.FieldParser import com.anytypeio.anytype.domain.search.SearchObjects @@ -49,7 +50,8 @@ open class ObjectSearchViewModel( private val analytics: Analytics, private val analyticSpaceHelperDelegate: AnalyticSpaceHelperDelegate, private val fieldParser: FieldParser, - private val storeOfObjectTypes: StoreOfObjectTypes + private val storeOfObjectTypes: StoreOfObjectTypes, + private val spaceViews: SpaceViewSubscriptionContainer ) : ViewStateViewModel(), SupportNavigation>, TextInputDialogBottomBehaviorApplier.OnDialogCancelListener, @@ -280,7 +282,10 @@ open class ObjectSearchViewModel( open suspend fun getSearchObjectsParams(ignore: Id?) = SearchObjects.Params( space = vmParams.space, limit = SEARCH_LIMIT, - filters = ObjectSearchConstants.filterSearchObjects(), + filters = buildList { + val spaceUxType = spaceViews.get(vmParams.space)?.spaceUxType + addAll(ObjectSearchConstants.filterSearchObjects(spaceUxType = spaceUxType)) + }, sorts = ObjectSearchConstants.sortsSearchObjects, fulltext = EMPTY_QUERY, keys = buildList { diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/SelectWidgetSourceViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/SelectWidgetSourceViewModel.kt index e65870113a..177954d089 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/SelectWidgetSourceViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/SelectWidgetSourceViewModel.kt @@ -65,7 +65,8 @@ class SelectWidgetSourceViewModel( analytics = analytics, analyticSpaceHelperDelegate = analyticSpaceHelperDelegate, fieldParser = fieldParser, - storeOfObjectTypes = storeOfObjectTypes + storeOfObjectTypes = storeOfObjectTypes, + spaceViews = spaceViews ) { private val suggested = MutableStateFlow(SuggestedWidgetsState.Init) @@ -275,9 +276,11 @@ class SelectWidgetSourceViewModel( } override suspend fun getSearchObjectsParams(ignore: Id?): SearchObjects.Params { + val spaceUxType = spaceViews.get(vmParams.space)?.spaceUxType return super.getSearchObjectsParams(ignore).copy( filters = ObjectSearchConstants.filterSearchObjects( - excludeTypes = true + excludeTypes = true, + spaceUxType = spaceUxType ) ) }