diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/CreateBlockTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/CreateBlockTesting.kt index dfe6fd626a..6d5f33caa7 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/CreateBlockTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/CreateBlockTesting.kt @@ -48,7 +48,7 @@ class CreateBlockTesting : EditorTestSetup() { @get:Rule val coroutineTestRule = CoroutinesTestRule() - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) @Before override fun setup() { diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/DeleteBlockTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/DeleteBlockTesting.kt index 903e91e6b9..d1ba3cce0e 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/DeleteBlockTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/DeleteBlockTesting.kt @@ -49,7 +49,7 @@ class DeleteBlockTesting : EditorTestSetup() { @get:Rule val coroutineTestRule = CoroutinesTestRule() - private val args = bundleOf(EditorFragment.ID_KEY to root) + private val args = bundleOf(EditorFragment.CTX_KEY to root) @Before override fun setup() { diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/DescriptionTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/DescriptionTesting.kt index 3e0bd12794..6085c8d5ea 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/DescriptionTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/DescriptionTesting.kt @@ -34,7 +34,7 @@ class DescriptionTesting : EditorTestSetup() { @get:Rule val animationsRule = DisableAnimationsRule() - private val args = bundleOf(EditorFragment.ID_KEY to root) + private val args = bundleOf(EditorFragment.CTX_KEY to root) private val title = MockBlockFactory.text( content = MockBlockContentFactory.StubTextContent( diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/EditorIntegrationTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/EditorIntegrationTesting.kt index 7215b5b2c0..3883709280 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/EditorIntegrationTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/EditorIntegrationTesting.kt @@ -80,7 +80,7 @@ class EditorIntegrationTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val blocks = listOf( BLOCK_H1, @@ -155,7 +155,7 @@ class EditorIntegrationTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val document = listOf( Block( @@ -201,7 +201,7 @@ class EditorIntegrationTesting : EditorTestSetup() { @Test fun shouldClearFocusAfterClickedOnHideKeyboard() { - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val document = listOf( Block( @@ -245,7 +245,7 @@ class EditorIntegrationTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val text = "FooBar" diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/FeaturedRelationTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/FeaturedRelationTesting.kt index 0f0e811822..1ac71db5cd 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/FeaturedRelationTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/FeaturedRelationTesting.kt @@ -32,7 +32,7 @@ class FeaturedRelationTesting : EditorTestSetup() { @get:Rule val animationsRule = DisableAnimationsRule() - private val args = bundleOf(EditorFragment.ID_KEY to root) + private val args = bundleOf(EditorFragment.CTX_KEY to root) private val title = MockBlockFactory.text( content = MockBlockContentFactory.StubTextContent( diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/LayoutTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/LayoutTesting.kt index 9215a337f4..13af94ba9a 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/LayoutTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/LayoutTesting.kt @@ -37,7 +37,7 @@ class LayoutTesting : EditorTestSetup() { // @get:Rule // val coroutineTestRule = CoroutinesTestRule() - private val args = bundleOf(EditorFragment.ID_KEY to root) + private val args = bundleOf(EditorFragment.CTX_KEY to root) private val title = MockBlockFactory.text( content = MockBlockContentFactory.StubTextContent( diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/ListBlockTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/ListBlockTesting.kt index 23cbfb1231..e93aabef86 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/ListBlockTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/ListBlockTesting.kt @@ -45,7 +45,7 @@ class ListBlockTesting : EditorTestSetup() { // @get:Rule // val coroutineTestRule = CoroutinesTestRule() - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) @Before override fun setup() { diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/MarkupTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/MarkupTesting.kt index b376fd4a54..b9de7cb077 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/MarkupTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/MarkupTesting.kt @@ -35,7 +35,7 @@ class MarkupTesting : EditorTestSetup() { @get:Rule val coroutineTestRule = CoroutinesTestRule() - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) @Before override fun setup() { diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/MentionUpdateTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/MentionUpdateTesting.kt index 6a02198fd7..9e8769922a 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/MentionUpdateTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/MentionUpdateTesting.kt @@ -42,7 +42,7 @@ class MentionUpdateTesting : EditorTestSetup() { @get:Rule val coroutineTestRule = CoroutinesTestRule() - private val args = bundleOf(EditorFragment.ID_KEY to root) + private val args = bundleOf(EditorFragment.CTX_KEY to root) @Before override fun setup() { diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/MergeBlockTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/MergeBlockTesting.kt index d422bb0718..82810ec8cf 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/MergeBlockTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/MergeBlockTesting.kt @@ -58,7 +58,7 @@ class MergeBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val style = Block.Content.Text.Style.P @@ -72,7 +72,7 @@ class MergeBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val style = Block.Content.Text.Style.H1 @@ -86,7 +86,7 @@ class MergeBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val style = Block.Content.Text.Style.H2 @@ -100,7 +100,7 @@ class MergeBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val style = Block.Content.Text.Style.H3 @@ -114,7 +114,7 @@ class MergeBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val style = Block.Content.Text.Style.QUOTE @@ -128,7 +128,7 @@ class MergeBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val style = Block.Content.Text.Style.CHECKBOX @@ -142,7 +142,7 @@ class MergeBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val style = Block.Content.Text.Style.BULLET @@ -156,7 +156,7 @@ class MergeBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val style = Block.Content.Text.Style.NUMBERED @@ -170,7 +170,7 @@ class MergeBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val style = Block.Content.Text.Style.TOGGLE diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/ProfileTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/ProfileTesting.kt index b69a101fe8..f79361621d 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/ProfileTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/ProfileTesting.kt @@ -32,7 +32,7 @@ class ProfileTesting : EditorTestSetup() { @get:Rule val animationsRule = DisableAnimationsRule() - private val args = bundleOf(EditorFragment.ID_KEY to root) + private val args = bundleOf(EditorFragment.CTX_KEY to root) private val title = Block( id = MockDataFactory.randomUuid(), diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/RelationBlockUITesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/RelationBlockUITesting.kt index ed12ae8100..3a13f3b869 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/RelationBlockUITesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/RelationBlockUITesting.kt @@ -51,7 +51,7 @@ class RelationBlockUITesting : EditorTestSetup() { // @get:Rule // val coroutineTestRule = CoroutinesTestRule() - private val args = bundleOf(EditorFragment.ID_KEY to root) + private val args = bundleOf(EditorFragment.CTX_KEY to root) private val defaultDetails = Block.Details( mapOf( diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/ScrollAndMoveTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/ScrollAndMoveTesting.kt index 2d4d0a587c..d34f42b275 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/ScrollAndMoveTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/ScrollAndMoveTesting.kt @@ -34,7 +34,7 @@ class ScrollAndMoveTesting : EditorTestSetup() { // @get:Rule // val coroutineTestRule = CoroutinesTestRule() - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) private val title = Block( id = MockDataFactory.randomUuid(), diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SlashTextWatcherTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SlashTextWatcherTesting.kt index 125147bde0..7a0662cc8a 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SlashTextWatcherTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SlashTextWatcherTesting.kt @@ -40,7 +40,7 @@ class SlashTextWatcherTesting : EditorTestSetup() { @get:Rule val coroutineTestRule = CoroutinesTestRule() - private val args = bundleOf(EditorFragment.ID_KEY to root) + private val args = bundleOf(EditorFragment.CTX_KEY to root) private val defaultDetails = Block.Details( mapOf( diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SlashWidgetTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SlashWidgetTesting.kt index b927e2fa7a..5a1e02b1c0 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SlashWidgetTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SlashWidgetTesting.kt @@ -56,7 +56,7 @@ class SlashWidgetTesting : EditorTestSetup() { @get:Rule val coroutineTestRule = CoroutinesTestRule() - private val args = bundleOf(EditorFragment.ID_KEY to root) + private val args = bundleOf(EditorFragment.CTX_KEY to root) private val defaultDetails = Block.Details( mapOf( diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SplitBlockTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SplitBlockTesting.kt index 675fc6a325..a84842da0b 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SplitBlockTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SplitBlockTesting.kt @@ -54,7 +54,7 @@ class SplitBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val text = "FooBar" @@ -197,7 +197,7 @@ class SplitBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val text = "FooBar" @@ -338,7 +338,7 @@ class SplitBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val text = "FooBar" @@ -479,7 +479,7 @@ class SplitBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val text = "FooBar" @@ -620,7 +620,7 @@ class SplitBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val text = "FooBar" @@ -763,7 +763,7 @@ class SplitBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val text = "FooBar" @@ -906,7 +906,7 @@ class SplitBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val text = "FooBar" @@ -1049,7 +1049,7 @@ class SplitBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val text = "FooBar" @@ -1192,7 +1192,7 @@ class SplitBlockTesting : EditorTestSetup() { // SETUP - val args = bundleOf(EditorFragment.ID_KEY to root) + val args = bundleOf(EditorFragment.CTX_KEY to root) val text = "FooBar" diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SplitTitleTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SplitTitleTesting.kt index 8de74f6eee..e37c3c42c5 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SplitTitleTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/SplitTitleTesting.kt @@ -48,7 +48,7 @@ class SplitTitleTesting : EditorTestSetup() { @get:Rule val coroutineTestRule = CoroutinesTestRule() - private val args = bundleOf(EditorFragment.ID_KEY to root) + private val args = bundleOf(EditorFragment.CTX_KEY to root) @Before override fun setup() { diff --git a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/base/MentionWidgetTesting.kt b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/base/MentionWidgetTesting.kt index 0942a556e1..1562a552b4 100644 --- a/app/src/androidTest/java/com/anytypeio/anytype/features/editor/base/MentionWidgetTesting.kt +++ b/app/src/androidTest/java/com/anytypeio/anytype/features/editor/base/MentionWidgetTesting.kt @@ -38,7 +38,7 @@ class MentionWidgetTesting : EditorTestSetup() { @get:Rule val coroutineTestRule = CoroutinesTestRule() - private val args = bundleOf(EditorFragment.ID_KEY to root) + private val args = bundleOf(EditorFragment.CTX_KEY to root) private val defaultDetails = Block.Details( mapOf( diff --git a/app/src/main/java/com/anytypeio/anytype/di/common/ComponentManager.kt b/app/src/main/java/com/anytypeio/anytype/di/common/ComponentManager.kt index a59071d818..7e5eaa6e26 100644 --- a/app/src/main/java/com/anytypeio/anytype/di/common/ComponentManager.kt +++ b/app/src/main/java/com/anytypeio/anytype/di/common/ComponentManager.kt @@ -4,7 +4,6 @@ import android.content.Context import com.anytypeio.anytype.BuildConfig import com.anytypeio.anytype.core_models.Id import com.anytypeio.anytype.core_models.primitives.SpaceId -import com.anytypeio.anytype.core_models.primitives.TypeKey import com.anytypeio.anytype.di.feature.AddDataViewRelationObjectValueModule import com.anytypeio.anytype.di.feature.AddDataViewRelationOptionValueModule import com.anytypeio.anytype.di.feature.AddFileRelationModule @@ -108,6 +107,7 @@ import com.anytypeio.anytype.di.feature.widgets.SelectWidgetSourceModule import com.anytypeio.anytype.di.feature.widgets.SelectWidgetTypeModule import com.anytypeio.anytype.di.main.MainComponent import com.anytypeio.anytype.gallery_experience.viewmodel.GalleryInstallationViewModel +import com.anytypeio.anytype.presentation.library.LibraryViewModel import com.anytypeio.anytype.presentation.multiplayer.RequestJoinSpaceViewModel import com.anytypeio.anytype.presentation.multiplayer.ShareSpaceViewModel import com.anytypeio.anytype.presentation.multiplayer.SpaceJoinRequestViewModel @@ -832,9 +832,10 @@ class ComponentManager( .create(findComponentDependencies()) } - val libraryComponent = ComponentWithParams { ctx: Context -> + val libraryComponent = ComponentWithParams { (ctx, params) : Pair -> DaggerLibraryComponent.builder() .withContext(ctx) + .withParams(params) .withDependencies(findComponentDependencies()) .build() } @@ -944,11 +945,11 @@ class ComponentManager( .build() } - val selectObjectTypeComponent = ComponentWithParams { excludedTypeKeys: List -> + val selectObjectTypeComponent = ComponentWithParams { params: SelectObjectTypeViewModel.Params -> DaggerSelectObjectTypeComponent .factory() .create( - params = SelectObjectTypeViewModel.Params(excludedTypeKeys), + params = params, dependencies = findComponentDependencies() ) } diff --git a/app/src/main/java/com/anytypeio/anytype/di/feature/library/LibraryDI.kt b/app/src/main/java/com/anytypeio/anytype/di/feature/library/LibraryDI.kt index cb477c8ac1..7308abb202 100644 --- a/app/src/main/java/com/anytypeio/anytype/di/feature/library/LibraryDI.kt +++ b/app/src/main/java/com/anytypeio/anytype/di/feature/library/LibraryDI.kt @@ -53,6 +53,9 @@ interface LibraryComponent { @BindsInstance fun withContext(context: Context): Builder + @BindsInstance + fun withParams(params: LibraryViewModel.Params): Builder + fun build(): LibraryComponent } diff --git a/app/src/main/java/com/anytypeio/anytype/di/main/SubscriptionsModule.kt b/app/src/main/java/com/anytypeio/anytype/di/main/SubscriptionsModule.kt index 0eea901463..3e1827021d 100644 --- a/app/src/main/java/com/anytypeio/anytype/di/main/SubscriptionsModule.kt +++ b/app/src/main/java/com/anytypeio/anytype/di/main/SubscriptionsModule.kt @@ -117,11 +117,13 @@ object SubscriptionsModule { dispatchers: AppCoroutineDispatchers, @Named(DEFAULT_APP_COROUTINE_SCOPE) scope: CoroutineScope, container: StorelessSubscriptionContainer, - repo: AuthRepository + repo: AuthRepository, + logger: Logger ) : UserPermissionProvider = DefaultUserPermissionProvider( dispatchers = dispatchers, scope = scope, container = container, - repo = repo + repo = repo, + logger = logger ) } \ No newline at end of file diff --git a/app/src/main/java/com/anytypeio/anytype/navigation/Navigator.kt b/app/src/main/java/com/anytypeio/anytype/navigation/Navigator.kt index 9a9f0d9813..f7935908d3 100644 --- a/app/src/main/java/com/anytypeio/anytype/navigation/Navigator.kt +++ b/app/src/main/java/com/anytypeio/anytype/navigation/Navigator.kt @@ -1,6 +1,5 @@ package com.anytypeio.anytype.navigation -import android.os.Bundle import androidx.core.os.bundleOf import androidx.navigation.NavController import androidx.navigation.navOptions @@ -12,6 +11,7 @@ import com.anytypeio.anytype.presentation.widgets.collection.Subscription import com.anytypeio.anytype.ui.auth.account.DeletedAccountFragment import com.anytypeio.anytype.ui.editor.EditorFragment import com.anytypeio.anytype.ui.editor.EditorModalFragment +import com.anytypeio.anytype.ui.library.LibraryFragment import com.anytypeio.anytype.ui.sets.ObjectSetFragment import com.anytypeio.anytype.ui.settings.RemoteFilesManageFragment import com.anytypeio.anytype.ui.templates.EditorTemplateFragment.Companion.TYPE_TEMPLATE_EDIT @@ -32,12 +32,13 @@ class Navigator : AppNavigation { } } - override fun openDocument(id: String) { + override fun openDocument(target: Id, space: Id) { navController?.navigate( R.id.objectNavigation, - Bundle().apply { - putString(EditorFragment.ID_KEY, id) - } + EditorFragment.args( + ctx = target, + space = space + ) ) } @@ -73,10 +74,13 @@ class Navigator : AppNavigation { ) } - override fun launchDocument(id: String) { + override fun launchDocument(target: String, space: Id) { navController?.navigate( R.id.objectNavigation, - bundleOf(EditorFragment.ID_KEY to id), + EditorFragment.args( + ctx = target, + space = space + ), navOptions { launchSingleTop = true popUpTo(R.id.pageSearchFragment) { @@ -86,17 +90,23 @@ class Navigator : AppNavigation { ) } - override fun launchCollections(subscription: Subscription) { + override fun launchCollections(subscription: Subscription, space: Id) { navController?.navigate( R.id.homeScreenWidgets, - bundleOf(CollectionFragment.SUBSCRIPTION_KEY to subscription.id) + CollectionFragment.args( + subscription = subscription.id, + space = space + ) ) } - override fun launchObjectSet(id: Id) { + override fun launchObjectSet(target: Id, space: Id) { navController?.navigate( R.id.dataViewNavigation, - bundleOf(ObjectSetFragment.CONTEXT_ID_KEY to id), + ObjectSetFragment.args( + ctx = target, + space = space + ), navOptions { launchSingleTop = true popUpTo(R.id.pageSearchFragment) { @@ -106,20 +116,6 @@ class Navigator : AppNavigation { ) } - override fun launchObjectFromSplash(id: Id) { - navController?.navigate( - R.id.action_splashScreen_to_objectScreen, - bundleOf(EditorFragment.ID_KEY to id), - ) - } - - override fun launchObjectSetFromSplash(id: Id) { - navController?.navigate( - R.id.action_splashScreen_to_objectSetScreen, - bundleOf(ObjectSetFragment.CONTEXT_ID_KEY to id), - ) - } - override fun openKeychainScreen() { navController?.navigate(R.id.action_open_keychain) } @@ -149,18 +145,25 @@ class Navigator : AppNavigation { override fun exitToDesktopAndOpenPage(pageId: String) { navController?.navigate( R.id.homeScreen, - bundleOf(EditorFragment.ID_KEY to pageId), + bundleOf(EditorFragment.CTX_KEY to pageId), navOptions { launchSingleTop = true } ) } - override fun openObjectSet(target: String, isPopUpToDashboard: Boolean) { + override fun openObjectSet( + target: Id, + space: Id, + isPopUpToDashboard: Boolean + ) { if (isPopUpToDashboard) { navController?.navigate( R.id.dataViewNavigation, - bundleOf(ObjectSetFragment.CONTEXT_ID_KEY to target), + ObjectSetFragment.args( + ctx = target, + space = space + ), navOptions { popUpTo(R.id.main_navigation) { inclusive = true } } @@ -168,7 +171,10 @@ class Navigator : AppNavigation { } else { navController?.navigate( R.id.dataViewNavigation, - bundleOf(ObjectSetFragment.CONTEXT_ID_KEY to target) + ObjectSetFragment.args( + ctx = target, + space = space + ) ) } } @@ -215,8 +221,11 @@ class Navigator : AppNavigation { }) } - override fun openLibrary() { - navController?.navigate(R.id.libraryFragment) + override fun openLibrary(space: Id) { + navController?.navigate( + R.id.libraryFragment, + LibraryFragment.args(space) + ) } override fun openRemoteFilesManageScreen(subscription: Id) { diff --git a/app/src/main/java/com/anytypeio/anytype/ui/base/NavigationRouter.kt b/app/src/main/java/com/anytypeio/anytype/ui/base/NavigationRouter.kt index 3e4c07adb5..9e4140fe77 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/base/NavigationRouter.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/base/NavigationRouter.kt @@ -13,28 +13,29 @@ class NavigationRouter( when (command) { is AppNavigation.Command.ExitFromMigrationScreen -> navigation.exitFromMigrationScreen() is AppNavigation.Command.OpenSettings -> navigation.openSpaceSettings() - is AppNavigation.Command.OpenObject -> navigation.openDocument(command.id) + is AppNavigation.Command.OpenObject -> navigation.openDocument( + target = command.target, + space = command.space + ) is AppNavigation.Command.OpenModalTemplateSelect -> navigation.openModalTemplateSelect( template = command.template, templateTypeId = command.templateTypeId, templateTypeKey = command.templateTypeKey ) is AppNavigation.Command.OpenSetOrCollection -> navigation.openObjectSet( - command.target, - command.isPopUpToDashboard + target = command.target, + space = command.space, + isPopUpToDashboard = command.isPopUpToDashboard ) - is AppNavigation.Command.LaunchObjectSet -> navigation.launchObjectSet(command.target) - is AppNavigation.Command.LaunchDocument -> navigation.launchDocument(command.id) - is AppNavigation.Command.LaunchObjectFromSplash -> navigation.launchObjectFromSplash( - command.target + is AppNavigation.Command.LaunchObjectSet -> navigation.launchObjectSet( + target = command.target, + space = command.space ) - - is AppNavigation.Command.LaunchObjectSetFromSplash -> navigation.launchObjectSetFromSplash( - command.target + is AppNavigation.Command.LaunchDocument -> navigation.launchDocument( + target = command.target, + space = command.space ) - is AppNavigation.Command.OpenUserSettingsScreen -> navigation.openUserSettingsScreen() - is AppNavigation.Command.Exit -> navigation.exit() is AppNavigation.Command.ExitToDesktop -> navigation.exitToDesktop() is AppNavigation.Command.OpenDebugSettingsScreen -> navigation.openDebugSettings() @@ -52,7 +53,7 @@ class NavigationRouter( typeId = command.typeId ) - is AppNavigation.Command.OpenLibrary -> navigation.openLibrary() + is AppNavigation.Command.OpenLibrary -> navigation.openLibrary(command.space) is AppNavigation.Command.MigrationErrorScreen -> navigation.migrationErrorScreen() is AppNavigation.Command.OpenRemoteFilesManageScreen -> navigation.openRemoteFilesManageScreen( command.subscription diff --git a/app/src/main/java/com/anytypeio/anytype/ui/editor/CreateObjectFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/editor/CreateObjectFragment.kt index 0511eddf51..45d5b2f07e 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/editor/CreateObjectFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/editor/CreateObjectFragment.kt @@ -17,7 +17,6 @@ import com.anytypeio.anytype.core_utils.ui.BaseFragment import com.anytypeio.anytype.databinding.FragmentCreateObjectBinding import com.anytypeio.anytype.di.common.componentManager import com.anytypeio.anytype.presentation.objects.CreateObjectViewModel -import com.anytypeio.anytype.presentation.objects.SupportedLayouts import com.anytypeio.anytype.ui.sets.ObjectSetFragment import javax.inject.Inject @@ -49,7 +48,7 @@ class CreateObjectFragment : BaseFragment(R.layout. } else { findNavController().navigate( R.id.objectNavigation, - bundleOf(EditorFragment.ID_KEY to state.id), + bundleOf(EditorFragment.CTX_KEY to state.id), navOptions ) } diff --git a/app/src/main/java/com/anytypeio/anytype/ui/editor/EditorFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/editor/EditorFragment.kt index cbf60f879e..abdc2f9fee 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/editor/EditorFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/editor/EditorFragment.kt @@ -53,6 +53,7 @@ import com.anytypeio.anytype.core_models.Key import com.anytypeio.anytype.core_models.ObjectWrapper import com.anytypeio.anytype.core_models.ThemeColor import com.anytypeio.anytype.core_models.Url +import com.anytypeio.anytype.core_models.primitives.SpaceId import com.anytypeio.anytype.core_ui.extensions.addTextFromSelectedStart import com.anytypeio.anytype.core_ui.extensions.color import com.anytypeio.anytype.core_ui.extensions.cursorYBottomCoordinate @@ -186,7 +187,8 @@ open class EditorFragment : NavigationFragment(R.layout.f private val keyboardDelayJobs = mutableListOf() - protected val ctx get() = arg(ID_KEY) + protected val ctx get() = arg(CTX_KEY) + protected val space get() = arg(SPACE_ID_KEY) private val screen: Point by lazy { screen() } @@ -487,7 +489,7 @@ open class EditorFragment : NavigationFragment(R.layout.f } } } - vm.onStart(id = extractDocumentId(), saveAsLastOpened = saveAsLastOpened()) + vm.onStart(id = extractDocumentId(), space = space, saveAsLastOpened = saveAsLastOpened()) super.onStart() } @@ -616,7 +618,8 @@ open class EditorFragment : NavigationFragment(R.layout.f .longClicks(withHaptic = true) .onEach { val dialog = SelectObjectTypeFragment.new( - flow = SelectObjectTypeFragment.FLOW_CREATE_OBJECT + flow = SelectObjectTypeFragment.FLOW_CREATE_OBJECT, + space = space ).apply { onTypeSelected = { vm.onAddNewDocumentClicked(it) @@ -1053,7 +1056,8 @@ open class EditorFragment : NavigationFragment(R.layout.f val dialog = SelectObjectTypeFragment.newInstance( excludedTypeKeys = command.excludedTypes, onTypeSelected = vm::onObjectTypeChanged, - flow = SelectObjectTypeFragment.FLOW_CHANGE_TYPE + flow = SelectObjectTypeFragment.FLOW_CHANGE_TYPE, + space = space ) dialog.show(childFragmentManager, null) } @@ -1063,6 +1067,7 @@ open class EditorFragment : NavigationFragment(R.layout.f delay(DEFAULT_ANIM_DURATION) val fr = MoveToFragment.new( ctx = ctx, + space = space, blocks = command.blocks, restorePosition = command.restorePosition, restoreBlock = command.restoreBlock @@ -1078,7 +1083,10 @@ open class EditorFragment : NavigationFragment(R.layout.f middleString = R.string.snack_move_to ) { if (command.isDataView) { - vm.proceedWithOpeningDataViewObject(command.id) + vm.proceedWithOpeningDataViewObject( + target = command.id, + space = SpaceId(command.space) + ) } else { vm.proceedWithOpeningObject(command.id) } @@ -1953,7 +1961,7 @@ open class EditorFragment : NavigationFragment(R.layout.f private fun extractDocumentId(): String { return requireArguments() - .getString(ID_KEY) + .getString(CTX_KEY) ?: throw IllegalStateException("Document id missing") } @@ -2058,6 +2066,7 @@ open class EditorFragment : NavigationFragment(R.layout.f override fun onMoveTo( target: Id, + space: Id, blocks: List, text: String, icon: ObjectIcon, @@ -2068,7 +2077,8 @@ open class EditorFragment : NavigationFragment(R.layout.f text = text, icon = icon, blocks = blocks, - isDataView = isDataView + isDataView = isDataView, + space = space ) } @@ -2168,11 +2178,10 @@ open class EditorFragment : NavigationFragment(R.layout.f companion object { - fun newInstance(id: String): EditorFragment = EditorFragment().apply { - arguments = bundleOf(ID_KEY to id) - } + fun args(ctx: Id, space: Id) = bundleOf(CTX_KEY to ctx, SPACE_ID_KEY to space) - const val ID_KEY = "id" + const val CTX_KEY = "args.editor.ctx-id" + const val SPACE_ID_KEY = "args.editor.space-id" const val DEFAULT_ANIM_DURATION = 150L const val DEFAULT_DELAY_BLOCK_ACTION_TOOLBAR = 100L diff --git a/app/src/main/java/com/anytypeio/anytype/ui/editor/sheets/ObjectMenuBaseFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/editor/sheets/ObjectMenuBaseFragment.kt index a4ef984c79..89ac513d65 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/editor/sheets/ObjectMenuBaseFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/editor/sheets/ObjectMenuBaseFragment.kt @@ -55,7 +55,11 @@ abstract class ObjectMenuBaseFragment : private val actionAdapter by lazy { ObjectActionAdapter { action -> - vm.onActionClicked(ctx, action) + vm.onActionClicked( + ctx = ctx, + space = space, + action = action + ) } } @@ -74,13 +78,13 @@ abstract class ObjectMenuBaseFragment : } override fun onStart() { - click(binding.objectDiagnostics) { vm.onDiagnosticsClicked(ctx) } + click(binding.objectDiagnostics) { vm.onDiagnosticsClicked(ctx = ctx) } click(binding.optionHistory) { vm.onHistoryClicked() } - click(binding.optionLayout) { vm.onLayoutClicked(ctx) } - click(binding.optionIcon) { vm.onIconClicked(ctx) } + click(binding.optionLayout) { vm.onLayoutClicked(ctx = ctx, space = space) } + click(binding.optionIcon) { vm.onIconClicked(ctx = ctx, space = space) } click(binding.optionRelations) { vm.onRelationsClicked() } - click(binding.optionCover) { vm.onCoverClicked(ctx) } - click(binding.debugGoroutines) { vm.onDiagnosticsGoroutinesClicked(ctx) } + click(binding.optionCover) { vm.onCoverClicked(ctx = ctx, space = space) } + click(binding.debugGoroutines) { vm.onDiagnosticsGoroutinesClicked(ctx = ctx) } proceed(vm.actions) { actionAdapter.submitList(it) } proceed(vm.toasts) { toast(it) } @@ -249,9 +253,15 @@ abstract class ObjectMenuBaseFragment : anchor = binding.anchor ) { if (command.isCollection) { - vm.proceedWithOpeningCollection(command.id) + vm.proceedWithOpeningCollection( + target = command.id, + space = command.space + ) } else { - vm.proceedWithOpeningPage(command.id) + vm.proceedWithOpeningPage( + target = command.id, + space = command.space + ) } } }, 300L) @@ -260,22 +270,34 @@ abstract class ObjectMenuBaseFragment : override fun onMoveTo( target: Id, + space: Id, blocks: List, text: String, icon: ObjectIcon, isDataView: Boolean ) { - vm.onLinkedMyselfTo(myself = ctx, addTo = target, fromName) + vm.onLinkedMyselfTo( + myself = ctx, + addTo = target, + fromName = fromName, + space = space + ) } - override fun backLink(id: Id, name: String, layout: ObjectType.Layout?, icon: ObjectIcon) { + override fun backLink( + id: Id, + name: String, + layout: ObjectType.Layout?, + icon: ObjectIcon + ) { vm.onBackLinkOrAddToObjectAction( ctx = ctx, backLinkId = id, backLinkName = name, backLinkLayout = layout, backLinkIcon = icon, - fromName = fromName.orEmpty() + fromName = fromName.orEmpty(), + space = space ) } diff --git a/app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreenFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreenFragment.kt index 09a49b4076..85178ab904 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreenFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreenFragment.kt @@ -89,23 +89,13 @@ class HomeScreenFragment : BaseComposeFragment() { runCatching { navigation().openPageSearch() } }, onLibraryClicked = { - runCatching { navigation().openLibrary() } + vm.onLibraryClicked() }, onCreateNewObjectClicked = throttledClick( onClick = { vm.onCreateNewObjectClicked() } ), onCreateNewObjectLongClicked = throttledClick( - onClick = { - val dialog = SelectObjectTypeFragment.new( - flow = SelectObjectTypeFragment.FLOW_CREATE_OBJECT - ).apply { - onTypeSelected = { - vm.onCreateNewObjectClicked(it) - dismiss() - } - } - dialog.show(childFragmentManager, "TEST") - } + onClick = { vm.onCreateNewObjectLongClicked() } ), onProfileClicked = throttledClick( onClick = { @@ -278,15 +268,45 @@ class HomeScreenFragment : BaseComposeFragment() { Timber.e(e, "Error while opening space settings") } } + is Command.OpenObjectCreateDialog -> { + val dialog = SelectObjectTypeFragment.new( + flow = SelectObjectTypeFragment.FLOW_CREATE_OBJECT, + space = command.space.id + ).apply { + onTypeSelected = { + vm.onCreateNewObjectClicked(it) + dismiss() + } + } + dialog.show(childFragmentManager, "object-create-dialog") + } } } private fun proceed(destination: Navigation) { Timber.d("New destination: $destination") when (destination) { - is Navigation.OpenObject -> navigation().openDocument(destination.ctx) - is Navigation.OpenSet -> navigation().openObjectSet(destination.ctx) - is Navigation.ExpandWidget -> navigation().launchCollections(destination.subscription) + is Navigation.OpenObject -> runCatching { + navigation().openDocument( + target = destination.ctx, + space = destination.space + ) + } + is Navigation.OpenSet -> runCatching { + navigation().openObjectSet( + target = destination.ctx, + space = destination.space + ) + } + is Navigation.ExpandWidget -> runCatching { + navigation().launchCollections( + subscription = destination.subscription, + space = destination.space + ) + } + is Navigation.OpenLibrary -> runCatching { + navigation().openLibrary(destination.space) + } } } diff --git a/app/src/main/java/com/anytypeio/anytype/ui/library/LibraryFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/library/LibraryFragment.kt index 0728b6f08d..0e7a442ccd 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/library/LibraryFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/library/LibraryFragment.kt @@ -15,7 +15,10 @@ import androidx.fragment.app.setFragmentResultListener import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController import com.anytypeio.anytype.R +import com.anytypeio.anytype.core_models.Id +import com.anytypeio.anytype.core_models.primitives.SpaceId import com.anytypeio.anytype.core_ui.extensions.simpleIcon +import com.anytypeio.anytype.core_utils.ext.arg import com.anytypeio.anytype.core_utils.ext.safeNavigate import com.anytypeio.anytype.core_utils.ext.subscribe import com.anytypeio.anytype.core_utils.ext.toast @@ -53,6 +56,8 @@ class LibraryFragment : BaseComposeFragment() { private val vm by viewModels { factory } + private val space get() = arg(ARG_SPACE_ID_KEY) + @OptIn(ExperimentalAnimationApi::class) @FlowPreview @ExperimentalPagerApi @@ -73,7 +78,8 @@ class LibraryFragment : BaseComposeFragment() { }, onCreateObjectLongClicked = { val dialog = SelectObjectTypeFragment.new( - flow = SelectObjectTypeFragment.FLOW_CREATE_OBJECT + flow = SelectObjectTypeFragment.FLOW_CREATE_OBJECT, + space = space ).apply { onTypeSelected = { vm.onCreateObjectOfTypeClicked(it) @@ -146,8 +152,9 @@ class LibraryFragment : BaseComposeFragment() { findNavController().safeNavigate( R.id.libraryFragment, R.id.objectNavigation, - bundleOf( - EditorFragment.ID_KEY to it.id + EditorFragment.args( + ctx = it.id, + space = space ) ) } @@ -204,11 +211,25 @@ class LibraryFragment : BaseComposeFragment() { } override fun injectDependencies() { - componentManager().libraryComponent.get(requireContext()).inject(this) + componentManager() + .libraryComponent + .get( + Pair( + requireContext(), + LibraryViewModel.Params( + space = SpaceId(space) + ) + ) + ) + .inject(this) } override fun releaseDependencies() { componentManager().libraryComponent.release() } + companion object { + const val ARG_SPACE_ID_KEY = "arg.library.space-id" + fun args(space: Id) = bundleOf(ARG_SPACE_ID_KEY to space) + } } \ No newline at end of file diff --git a/app/src/main/java/com/anytypeio/anytype/ui/moving/MoveToFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/moving/MoveToFragment.kt index 4924c49817..f973722e88 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/moving/MoveToFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/moving/MoveToFragment.kt @@ -54,6 +54,7 @@ class MoveToFragment : BaseBottomSheetTextInputFragment>(ARG_BLOCKS) private val ctx get() = arg(ARG_CTX) + private val space get() = arg(ARG_SPACE) private val restorePosition get() = argOrNull(ARG_RESTORE_POSITION) private val restoreBlock get() = argOrNull(ARG_RESTORE_BLOCK) private val title get() = argOrNull(ARG_TITLE) @@ -179,6 +180,7 @@ class MoveToFragment : BaseBottomSheetTextInputFragment { onMoveTo( target = command.view.id, + space = space, text = command.view.name, icon = command.view.icon, blocks = blocks, @@ -266,6 +268,7 @@ class MoveToFragment : BaseBottomSheetTextInputFragment, restorePosition: Int?, restoreBlock: Id?, @@ -280,6 +284,7 @@ class MoveToFragment : BaseBottomSheetTextInputFragment, text: String, icon: ObjectIcon, isDataView: Boolean) + fun onMoveTo( + target: Id, + space: Id, + blocks: List, + text: String, + icon: ObjectIcon, + isDataView: Boolean + ) fun onMoveToClose(blocks: List, restorePosition: Int?, restoreBlock: Id?) } diff --git a/app/src/main/java/com/anytypeio/anytype/ui/objects/creation/SelectObjectTypeFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/objects/creation/SelectObjectTypeFragment.kt index 037b5f2551..b5c3b98f54 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/objects/creation/SelectObjectTypeFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/objects/creation/SelectObjectTypeFragment.kt @@ -22,9 +22,11 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import com.anytypeio.anytype.R +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.ext.EMPTY_STRING_VALUE +import com.anytypeio.anytype.core_models.primitives.SpaceId import com.anytypeio.anytype.core_models.primitives.TypeKey import com.anytypeio.anytype.core_utils.ext.arg import com.anytypeio.anytype.core_utils.ext.argOrNull @@ -52,6 +54,8 @@ class SelectObjectTypeFragment : BaseBottomSheetComposeFragment() { private val flow get() = arg(FLOW_TYPE_KEY) + private val space get() = arg(SPACE_ID_KEY) + private val vm by viewModels { factory } lateinit var onTypeSelected: (ObjectWrapper.Type) -> Unit @@ -157,7 +161,7 @@ class SelectObjectTypeFragment : BaseBottomSheetComposeFragment() { findNavController().navigate( R.id.objectNavigation, bundleOf( - EditorFragment.ID_KEY to nav.target + EditorFragment.CTX_KEY to nav.target ) ) } @@ -208,7 +212,10 @@ class SelectObjectTypeFragment : BaseBottomSheetComposeFragment() { override fun injectDependencies() { componentManager() .selectObjectTypeComponent.get( - params = excludedTypeKeys?.map { TypeKey(it) } ?: emptyList() + params = SelectObjectTypeViewModel.Params( + excludedTypeKeys = excludedTypeKeys?.map { TypeKey(it) } ?: emptyList(), + space = SpaceId(space) + ) ) .inject(this) } @@ -218,7 +225,7 @@ class SelectObjectTypeFragment : BaseBottomSheetComposeFragment() { } companion object { - + const val SPACE_ID_KEY = "arg.select-object-type.space-id" const val EXCLUDED_TYPE_KEYS_ARG_KEY = "arg.select-object-type.excluded-type-keys" const val FLOW_TYPE_KEY = "arg.select-object-type.flow-type" const val DROP_DOWN_MENU_ACTION_DELAY = 100L @@ -229,17 +236,22 @@ class SelectObjectTypeFragment : BaseBottomSheetComposeFragment() { fun newInstance( excludedTypeKeys: List, onTypeSelected: (ObjectWrapper.Type) -> Unit, - flow: FlowType = FLOW_CHANGE_TYPE + flow: FlowType = FLOW_CHANGE_TYPE, + space: Id ): SelectObjectTypeFragment = SelectObjectTypeFragment().apply { this.onTypeSelected = onTypeSelected arguments = bundleOf( - EXCLUDED_TYPE_KEYS_ARG_KEY to excludedTypeKeys, - FLOW_TYPE_KEY to flow + EXCLUDED_TYPE_KEYS_ARG_KEY to excludedTypeKeys, + FLOW_TYPE_KEY to flow, + SPACE_ID_KEY to space ) } - fun new(flow: FlowType = FLOW_CREATE_OBJECT) = SelectObjectTypeFragment().apply { - arguments = bundleOf(FLOW_TYPE_KEY to flow) + fun new( + flow: FlowType = FLOW_CREATE_OBJECT, + space: Id + ) = SelectObjectTypeFragment().apply { + arguments = bundleOf(FLOW_TYPE_KEY to flow, SPACE_ID_KEY to space) } } } diff --git a/app/src/main/java/com/anytypeio/anytype/ui/relations/RelationValueBaseFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/relations/RelationValueBaseFragment.kt index f9bf3fb2c4..883561de49 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/relations/RelationValueBaseFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/relations/RelationValueBaseFragment.kt @@ -115,12 +115,14 @@ abstract class RelationValueBaseFragment : BaseBottomSheetFragm ctx = ctx, id = o.id, layout = o.layout, - profileLinkIdentity = o.profileLinkIdentity + profileLinkIdentity = o.profileLinkIdentity, + space = o.space ) } else { vm.onNonExistentObjectClicked( ctx = ctx, - target = o.id + target = o.id, + space = o.space ) } }, @@ -132,7 +134,7 @@ abstract class RelationValueBaseFragment : BaseBottomSheetFragm objectId = obj ) }, - onFileClicked = { o -> vm.onFileClicked(o.id) }, + onFileClicked = { o -> vm.onFileClicked(target = o.id, space = o.space) }, onRemoveFileClicked = { file -> vm.onRemoveFileFromObjectClicked( ctx = ctx, @@ -199,7 +201,10 @@ abstract class RelationValueBaseFragment : BaseBottomSheetFragm is AppNavigation.Command.OpenObject -> { findNavController().navigate( R.id.objectNavigation, - bundleOf(EditorFragment.ID_KEY to command.id) + EditorFragment.args( + ctx = command.target, + space = command.space + ) ) } else -> toast("Unexpected nav command: $command") diff --git a/app/src/main/java/com/anytypeio/anytype/ui/relations/value/ObjectValueFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/relations/value/ObjectValueFragment.kt index 2f4c87af18..9ef09d26df 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/relations/value/ObjectValueFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/relations/value/ObjectValueFragment.kt @@ -77,7 +77,7 @@ class ObjectValueFragment : BaseBottomSheetComposeFragment() { is ObjectValueViewModel.Command.OpenObject -> { findNavController().navigate( R.id.objectNavigation, - bundleOf(EditorFragment.ID_KEY to command.id) + bundleOf(EditorFragment.CTX_KEY to command.id) ) dismiss() } diff --git a/app/src/main/java/com/anytypeio/anytype/ui/sets/ObjectSetFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/sets/ObjectSetFragment.kt index 5a7e36c8d5..a6b6549f15 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/sets/ObjectSetFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/sets/ObjectSetFragment.kt @@ -67,6 +67,7 @@ import com.anytypeio.anytype.core_ui.widgets.dv.ViewersWidget import com.anytypeio.anytype.core_ui.widgets.text.TextInputWidget import com.anytypeio.anytype.core_ui.widgets.toolbar.DataViewInfo import com.anytypeio.anytype.core_utils.OnSwipeListener +import com.anytypeio.anytype.core_utils.ext.arg import com.anytypeio.anytype.core_utils.ext.argString import com.anytypeio.anytype.core_utils.ext.dimen import com.anytypeio.anytype.core_utils.ext.drawable @@ -127,6 +128,7 @@ import com.anytypeio.anytype.ui.templates.EditorTemplateFragment.Companion.ARG_T import com.anytypeio.anytype.ui.templates.EditorTemplateFragment.Companion.ARG_TEMPLATE_ID import com.bumptech.glide.Glide import javax.inject.Inject +import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach @@ -223,7 +225,8 @@ open class ObjectSetFragment : ) } - private val ctx: String get() = argString(CONTEXT_ID_KEY) + private val ctx: Id get() = argString(CONTEXT_ID_KEY) + private val space: Id get() = arg(SPACE_ID_KEY) @Inject lateinit var factory: ObjectSetViewModelFactory @@ -319,7 +322,8 @@ open class ObjectSetFragment : .longClicks(withHaptic = true) .onEach { val dialog = SelectObjectTypeFragment.new( - flow = SelectObjectTypeFragment.FLOW_CREATE_OBJECT + flow = SelectObjectTypeFragment.FLOW_CREATE_OBJECT, + space = space ).apply { onTypeSelected = { vm.onAddNewDocumentClicked(it) @@ -523,6 +527,13 @@ open class ObjectSetFragment : lifecycleScope.subscribe(vm.isCustomizeViewPanelVisible) { isCustomizeViewPanelVisible -> if (isCustomizeViewPanelVisible) showBottomPanel() else hideBottomPanel() } + lifecycleScope.subscribe(vm.permission.filterNotNull()) { permission -> + if (permission.isOwnerOrEditor()) { + binding.topToolbar.ivThreeDots.visible() + } else { + binding.topToolbar.ivThreeDots.invisible() + } + } } private fun setStatus(status: SyncStatusView?) { @@ -606,6 +617,11 @@ open class ObjectSetFragment : dataViewHeader.visible() viewerTitle.isEnabled = true setupNewButtons(state.isCreateObjectAllowed) + if (state.isEditingViewAllowed) { + customizeViewButton.visible() + } else { + customizeViewButton.invisible() + } customizeViewButton.isEnabled = true setCurrentViewerName(state.viewer?.title) setViewer(viewer = state.viewer) @@ -729,6 +745,9 @@ open class ObjectSetFragment : private fun bindHeader(header: SetOrCollectionHeaderState.Default) { setupHeaderMargins(header) + + title.isEnabled = !header.isReadOnlyMode + if (title.text.toString() != header.title.text) { title.pauseTextWatchers { title.setText(header.title.text) @@ -1206,7 +1225,7 @@ open class ObjectSetFragment : bindHeader(header) } is SetOrCollectionHeaderState.None -> { - + // Do nothing. } } } @@ -1245,7 +1264,7 @@ open class ObjectSetFragment : binding.bottomToolbar.bind(icon) } - vm.onStart(ctx) + vm.onStart(ctx = ctx, space = space) } override fun onStop() { @@ -1374,10 +1393,16 @@ open class ObjectSetFragment : companion object { const val CONTEXT_ID_KEY = "arg.object_set.context" + const val SPACE_ID_KEY = "arg.object_set.space-id" val EMPTY_TAG = null const val BOTTOM_PANEL_ANIM_DURATION = 150L const val DEFAULT_ANIM_DURATION = 300L const val DRAWABLE_ALPHA_FULL = 255 const val DRAWABLE_ALPHA_ZERO = 0 + + fun args(ctx: Id, space: Id) = bundleOf( + CONTEXT_ID_KEY to ctx, + SPACE_ID_KEY to space + ) } } \ No newline at end of file diff --git a/app/src/main/java/com/anytypeio/anytype/ui/sets/modals/SetObjectSetRecordNameFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/sets/modals/SetObjectSetRecordNameFragment.kt index 016ad18941..666fffc8f0 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/sets/modals/SetObjectSetRecordNameFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/sets/modals/SetObjectSetRecordNameFragment.kt @@ -17,9 +17,9 @@ import com.anytypeio.anytype.di.common.componentManager import com.anytypeio.anytype.presentation.sets.ObjectSetRecordViewModel import com.anytypeio.anytype.presentation.sets.ObjectSetRecordViewModel.Command import com.anytypeio.anytype.ui.editor.EditorFragment +import javax.inject.Inject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch -import javax.inject.Inject class SetObjectSetRecordNameFragment : SetObjectCreateRecordFragmentBase() { @@ -46,7 +46,7 @@ class SetObjectSetRecordNameFragment : SetObjectCreateRecordFragmentBase { findNavController().navigate( R.id.objectNavigation, - bundleOf(EditorFragment.ID_KEY to command.ctx) + bundleOf(EditorFragment.CTX_KEY to command.ctx) ) } } diff --git a/app/src/main/java/com/anytypeio/anytype/ui/settings/RemoteFilesManageFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/settings/RemoteFilesManageFragment.kt index 055a4bf16c..99146a19be 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/settings/RemoteFilesManageFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/settings/RemoteFilesManageFragment.kt @@ -71,10 +71,19 @@ class RemoteFilesManageFragment : BaseBottomSheetComposeFragment() { private fun execute(command: CollectionViewModel.Command) { when (command) { - is CollectionViewModel.Command.LaunchDocument -> launchDocument(command.id) - is CollectionViewModel.Command.LaunchObjectSet -> launchObjectSet(command.target) + is CollectionViewModel.Command.LaunchDocument -> launchDocument( + target = command.target, + space = command.space + ) + is CollectionViewModel.Command.LaunchObjectSet -> launchObjectSet( + target = command.target, + space = command.space + ) is CollectionViewModel.Command.ConfirmRemoveFromBin -> confirmRemoveFromBin(command) - is CollectionViewModel.Command.OpenCollection -> navigation.launchCollections(command.subscription) + is CollectionViewModel.Command.OpenCollection -> navigation.launchCollections( + subscription = command.subscription, + space = command.space + ) is CollectionViewModel.Command.ToDesktop -> navigation.exitToDesktop() is CollectionViewModel.Command.ToSearch -> navigation.openPageSearch() is CollectionViewModel.Command.Exit -> exit() @@ -94,12 +103,15 @@ class RemoteFilesManageFragment : BaseBottomSheetComposeFragment() { navigation.exit() } - private fun launchObjectSet(target: Id) { - navigation.launchObjectSet(target) + private fun launchObjectSet(target: Id, space: Id) { + navigation.launchObjectSet( + target = target, + space = space + ) } - private fun launchDocument(id: Id) { - navigation.launchDocument(id) + private fun launchDocument(target: Id, space: Id) { + navigation.launchDocument(target = target, space = space) } override fun onStop() { diff --git a/app/src/main/java/com/anytypeio/anytype/ui/sharing/SharingFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/sharing/SharingFragment.kt index 2594ea83ff..8f47878597 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/sharing/SharingFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/sharing/SharingFragment.kt @@ -24,7 +24,6 @@ import com.anytypeio.anytype.presentation.home.OpenObjectNavigation import com.anytypeio.anytype.presentation.sharing.AddToAnytypeViewModel import com.anytypeio.anytype.ui.editor.EditorFragment import com.anytypeio.anytype.ui.settings.typography -import java.lang.IllegalStateException import javax.inject.Inject import kotlinx.coroutines.flow.map @@ -120,7 +119,7 @@ class SharingFragment : BaseBottomSheetComposeFragment() { findNavController().navigate( R.id.objectNavigation, bundleOf( - EditorFragment.ID_KEY to nav.target + EditorFragment.CTX_KEY to nav.target ) ) } diff --git a/app/src/main/java/com/anytypeio/anytype/ui/splash/SplashFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/splash/SplashFragment.kt index edf630fd07..d161bb77ed 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/splash/SplashFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/splash/SplashFragment.kt @@ -106,7 +106,7 @@ class SplashFragment : BaseFragment(R.layout.fragment_spl findNavController().navigate(R.id.action_splashScreen_to_widgets) findNavController().navigate( R.id.objectNavigation, - bundleOf(EditorFragment.ID_KEY to command.id), + bundleOf(EditorFragment.CTX_KEY to command.id), ) } is SplashViewModel.Command.NavigateToObjectSet -> { diff --git a/app/src/main/java/com/anytypeio/anytype/ui/templates/EditorTemplateFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/templates/EditorTemplateFragment.kt index 0c2a997248..da3d8fd819 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/templates/EditorTemplateFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/templates/EditorTemplateFragment.kt @@ -126,7 +126,7 @@ class EditorTemplateFragment : EditorFragment() { ): EditorTemplateFragment = EditorTemplateFragment().apply { arguments = bundleOf( - ID_KEY to id, + CTX_KEY to id, ARG_TARGET_TYPE_ID to targetTypeId, ARG_TARGET_TYPE_KEY to targetTypeKey, ARG_TEMPLATE_TYPE to type diff --git a/app/src/main/java/com/anytypeio/anytype/ui/widgets/collection/CollectionFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/widgets/collection/CollectionFragment.kt index 114d8fc896..5b20c0cb34 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/widgets/collection/CollectionFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/widgets/collection/CollectionFragment.kt @@ -7,10 +7,12 @@ import android.view.ViewGroup import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.ViewCompositionStrategy +import androidx.core.os.bundleOf import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController import com.anytypeio.anytype.R import com.anytypeio.anytype.core_models.Id +import com.anytypeio.anytype.core_utils.ext.arg import com.anytypeio.anytype.core_utils.ext.argString import com.anytypeio.anytype.core_utils.ui.BaseComposeFragment import com.anytypeio.anytype.core_utils.ui.proceed @@ -32,6 +34,8 @@ class CollectionFragment : BaseComposeFragment() { private val navigation get() = navigation() + private val space get() = arg(SPACE_ID_KEY) + private val subscription: Subscription by lazy { SubscriptionMapper().map( argString( @@ -56,7 +60,8 @@ class CollectionFragment : BaseComposeFragment() { vm = vm, onCreateObjectLongClicked = { val dialog = SelectObjectTypeFragment.new( - flow = SelectObjectTypeFragment.FLOW_CREATE_OBJECT + flow = SelectObjectTypeFragment.FLOW_CREATE_OBJECT, + space = space ).apply { onTypeSelected = { vm.onAddClicked(it) @@ -78,11 +83,20 @@ class CollectionFragment : BaseComposeFragment() { private fun execute(command: Command) { when (command) { - is Command.LaunchDocument -> launchDocument(command.id) - is Command.LaunchObjectSet -> launchObjectSet(command.target) + is Command.LaunchDocument -> launchDocument( + target = command.target, + space = command.space + ) + is Command.LaunchObjectSet -> launchObjectSet( + target = command.target, + space = command.space + ) is Command.Exit -> exit() is Command.ConfirmRemoveFromBin -> confirmRemoveFromBin(command) - is Command.OpenCollection -> navigation.launchCollections(command.subscription) + is Command.OpenCollection -> navigation.launchCollections( + subscription = command.subscription, + space = space + ) is Command.ToDesktop -> navigation.exitToDesktop() is Command.ToSearch -> navigation.openPageSearch() is Command.SelectSpace -> { @@ -104,12 +118,18 @@ class CollectionFragment : BaseComposeFragment() { navigation.exit() } - private fun launchObjectSet(target: Id) { - navigation.launchObjectSet(target) + private fun launchObjectSet(target: Id, space: Id) { + navigation.launchObjectSet( + target = target, + space = space + ) } - private fun launchDocument(id: Id) { - navigation.launchDocument(id) + private fun launchDocument(target: Id, space: Id) { + navigation.launchDocument( + target = target, + space = space + ) } override fun onStop() { @@ -127,5 +147,10 @@ class CollectionFragment : BaseComposeFragment() { companion object { const val SUBSCRIPTION_KEY: String = "arg.collection.subscription" + const val SPACE_ID_KEY = "arg.collection.space-id" + fun args(subscription: Id, space: Id) = bundleOf( + SUBSCRIPTION_KEY to subscription, + SPACE_ID_KEY to space + ) } } \ No newline at end of file diff --git a/core-ui/src/main/java/com/anytypeio/anytype/core_ui/menu/ObjectTypePopupMenu.kt b/core-ui/src/main/java/com/anytypeio/anytype/core_ui/menu/ObjectTypePopupMenu.kt index e776fb1cea..33ae05d4d8 100644 --- a/core-ui/src/main/java/com/anytypeio/anytype/core_ui/menu/ObjectTypePopupMenu.kt +++ b/core-ui/src/main/java/com/anytypeio/anytype/core_ui/menu/ObjectTypePopupMenu.kt @@ -5,6 +5,7 @@ import android.view.Gravity import android.view.View import android.widget.PopupMenu import com.anytypeio.anytype.core_models.Id +import com.anytypeio.anytype.core_models.primitives.SpaceId import com.anytypeio.anytype.core_ui.R import com.anytypeio.anytype.presentation.editor.editor.ObjectTypeMenuItem @@ -12,7 +13,7 @@ class ObjectTypePopupMenu( context: Context, anchor: View, onChangeTypeClicked: () -> Unit, - onOpenSetClicked: (Id) -> Unit, + onOpenSetClicked: (Id, SpaceId) -> Unit, onCreateSetClicked: (Id) -> Unit, items: List ) : PopupMenu(context, anchor, Gravity.BOTTOM, 0, R.style.DefaultPopupMenuStyle) { @@ -49,7 +50,9 @@ class ObjectTypePopupMenu( index, res.getString(R.string.menu_type_open_set, objectTypeMenuItem.typeName) ).setOnMenuItemClickListener { - onOpenSetClicked(objectTypeMenuItem.set) + onOpenSetClicked( + objectTypeMenuItem.set, SpaceId(objectTypeMenuItem.space) + ) true } } diff --git a/core-ui/src/main/java/com/anytypeio/anytype/core_ui/relations/ObjectItem.kt b/core-ui/src/main/java/com/anytypeio/anytype/core_ui/relations/ObjectItem.kt index 39a52e1a7a..bb54a8a197 100644 --- a/core-ui/src/main/java/com/anytypeio/anytype/core_ui/relations/ObjectItem.kt +++ b/core-ui/src/main/java/com/anytypeio/anytype/core_ui/relations/ObjectItem.kt @@ -202,7 +202,8 @@ fun PreviewObjectItem() { type = "Type", typeName = "Type Name", description = "Description", - icon = ObjectIcon.Basic.Emoji("\uD83D\uDCA1") + icon = ObjectIcon.Basic.Emoji("\uD83D\uDCA1"), + space = "space-1" ), isSelected = true, number = 1, diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/multiplayer/DefaultUserPermissionProvider.kt b/domain/src/main/java/com/anytypeio/anytype/domain/multiplayer/DefaultUserPermissionProvider.kt index 1ded2ed592..ddf36d27c6 100644 --- a/domain/src/main/java/com/anytypeio/anytype/domain/multiplayer/DefaultUserPermissionProvider.kt +++ b/domain/src/main/java/com/anytypeio/anytype/domain/multiplayer/DefaultUserPermissionProvider.kt @@ -9,6 +9,7 @@ import com.anytypeio.anytype.core_models.multiplayer.SpaceMemberPermissions import com.anytypeio.anytype.core_models.primitives.SpaceId import com.anytypeio.anytype.domain.auth.repo.AuthRepository import com.anytypeio.anytype.domain.base.AppCoroutineDispatchers +import com.anytypeio.anytype.domain.debugging.Logger import com.anytypeio.anytype.domain.library.StoreSearchParams import com.anytypeio.anytype.domain.library.StorelessSubscriptionContainer import javax.inject.Inject @@ -48,7 +49,8 @@ class DefaultUserPermissionProvider @Inject constructor( private val container: StorelessSubscriptionContainer, private val repo: AuthRepository, private val dispatchers: AppCoroutineDispatchers, - private val scope: CoroutineScope + private val scope: CoroutineScope, + private val logger: Logger ) : UserPermissionProvider { private val members = MutableStateFlow>(emptyList()) diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/page/CreateObject.kt b/domain/src/main/java/com/anytypeio/anytype/domain/page/CreateObject.kt index f3581fd0ac..1490ff399b 100644 --- a/domain/src/main/java/com/anytypeio/anytype/domain/page/CreateObject.kt +++ b/domain/src/main/java/com/anytypeio/anytype/domain/page/CreateObject.kt @@ -72,6 +72,9 @@ class CreateObject @Inject constructor( ) } + /** + * DROID-2341 TODO provide custom space to params? + */ data class Param( val type: TypeKey? = null, val template: Id? = null, diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/workspace/WorkspaceManager.kt b/domain/src/main/java/com/anytypeio/anytype/domain/workspace/WorkspaceManager.kt index ad0a8e7fc8..62b99d1e49 100644 --- a/domain/src/main/java/com/anytypeio/anytype/domain/workspace/WorkspaceManager.kt +++ b/domain/src/main/java/com/anytypeio/anytype/domain/workspace/WorkspaceManager.kt @@ -125,6 +125,7 @@ interface SpaceManager { } } +@Deprecated("Do not use.") suspend fun SpaceManager.getSpaceWithTechSpace(): List { val config = getConfig() return if (config != null) { @@ -132,4 +133,13 @@ suspend fun SpaceManager.getSpaceWithTechSpace(): List { } else { listOf(get()) } +} + +suspend fun SpaceManager.getSpaceWithTechSpace(space: Id): List { + val config = getConfig(SpaceId(space)) + return if (config != null) { + listOf(config.space, config.techSpace) + } else { + listOf(get()) + } } \ No newline at end of file diff --git a/middleware/src/main/java/com/anytypeio/anytype/middleware/interactor/Middleware.kt b/middleware/src/main/java/com/anytypeio/anytype/middleware/interactor/Middleware.kt index 1dfbc44fee..bc8b953460 100644 --- a/middleware/src/main/java/com/anytypeio/anytype/middleware/interactor/Middleware.kt +++ b/middleware/src/main/java/com/anytypeio/anytype/middleware/interactor/Middleware.kt @@ -1035,7 +1035,6 @@ class Middleware @Inject constructor( val response = service.objectCreateSet(request) if (BuildConfig.DEBUG) logResponse(response) - return Response.Set.Create( targetId = response.objectId, payload = response.event.toPayload(), diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/common/Delegator.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/common/Delegator.kt index 433410e126..31f9502685 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/common/Delegator.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/common/Delegator.kt @@ -21,7 +21,7 @@ sealed class Action { data class SetUnsplashImage(val img: Id) : Action() object SearchOnPage: Action() object UndoRedo : Action() - data class OpenObject(val id: Id) : Action() - data class OpenCollection(val id: Id) : Action() - data class Duplicate(val id: Id) : Action() + data class OpenObject(val target: Id, val space: Id) : Action() + data class OpenCollection(val target: Id, val space: Id) : Action() + data class Duplicate(val target: Id, val space: Id) : Action() } \ No newline at end of file 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 8a9d0f76d6..a1bb0e2b24 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 @@ -99,7 +99,6 @@ import com.anytypeio.anytype.domain.templates.ApplyTemplate import com.anytypeio.anytype.domain.unsplash.DownloadUnsplashImage import com.anytypeio.anytype.domain.workspace.InterceptFileLimitEvents import com.anytypeio.anytype.domain.workspace.SpaceManager -import com.anytypeio.anytype.domain.workspace.getSpaceWithTechSpace import com.anytypeio.anytype.presentation.BuildConfig import com.anytypeio.anytype.presentation.common.Action import com.anytypeio.anytype.presentation.common.Delegator @@ -197,7 +196,6 @@ import com.anytypeio.anytype.presentation.editor.selection.updateTableBlockSelec import com.anytypeio.anytype.presentation.editor.selection.updateTableBlockTab import com.anytypeio.anytype.presentation.editor.template.SelectTemplateViewState import com.anytypeio.anytype.presentation.editor.toggle.ToggleStateHolder -import com.anytypeio.anytype.presentation.extension.getProperObjectName import com.anytypeio.anytype.presentation.extension.getUrlForFileBlock import com.anytypeio.anytype.presentation.extension.sendAnalyticsBlockActionEvent import com.anytypeio.anytype.presentation.extension.sendAnalyticsBlockAlignEvent @@ -378,9 +376,16 @@ class EditorViewModel( /** * Currently opened document id. + * TODO move to vm params */ var context: String = EMPTY_CONTEXT + /** + * Space in which this document exists. + * TODO move to vm params + */ + lateinit var space: String + /** * Current document */ @@ -420,11 +425,18 @@ class EditorViewModel( is Action.SetUnsplashImage -> { proceedWithSettingUnsplashImage(action) } - is Action.Duplicate -> proceedWithOpeningObject(action.id) + is Action.Duplicate -> proceedWithOpeningObject( + target = action.target + ) Action.SearchOnPage -> onEnterSearchModeClicked() Action.UndoRedo -> onUndoRedoActionClicked() - is Action.OpenObject -> proceedWithOpeningObject(action.id) - is Action.OpenCollection -> proceedWithOpeningDataViewObject(action.id) + is Action.OpenObject -> proceedWithOpeningObject( + target = action.target + ) + is Action.OpenCollection -> proceedWithOpeningDataViewObject( + target = action.target, + space = SpaceId(action.space) + ) } } } @@ -492,8 +504,7 @@ class EditorViewModel( downloadUnsplashImage( DownloadUnsplashImage.Params( picture = action.img, - // TODO re-fact to use space id from arguments or target space id of this object - space = SpaceId(spaceManager.get()) + space = SpaceId(space) ) ).process( failure = { @@ -988,10 +999,11 @@ class EditorViewModel( } } - fun onStart(id: Id, saveAsLastOpened: Boolean = true) { + fun onStart(id: Id, space: Id, saveAsLastOpened: Boolean = true) { Timber.d("onStart, id:[$id]") - context = id + this.context = id + this.space = space stateData.postValue(ViewState.Loading) @@ -1014,7 +1026,7 @@ class EditorViewModel( .build(InterceptThreadStatus.Params(context)) .collect { status -> val statusView = status.toView( - networkId = spaceManager.getConfig()?.network, + networkId = spaceManager.getConfig(space = SpaceId(space))?.network, networkMode = networkMode ) syncStatus.value = statusView @@ -1035,7 +1047,7 @@ class EditorViewModel( val params = OpenPage.Params( obj = id, saveAsLastOpened = saveAsLastOpened, - space = SpaceId(spaceManager.get()) + space = SpaceId(space) ) openPage.async(params).fold( onSuccess = { result -> @@ -1500,7 +1512,7 @@ class EditorViewModel( handleEndlineEnterPressedEventForListItem(content, id) } else { proceedWithCreatingNewTextBlock( - id = id, + target = id, style = Content.Text.Style.P ) } @@ -1702,7 +1714,7 @@ class EditorViewModel( } private fun proceedWithCreatingNewTextBlock( - id: String, + target: String, style: Content.Text.Style, position: Position = Position.BOTTOM ) { @@ -1710,7 +1722,7 @@ class EditorViewModel( orchestrator.proxies.intents.send( Intent.CRUD.Create( context = context, - target = id, + target = target, position = position, prototype = Prototype.Text(style = style) ) @@ -2261,7 +2273,7 @@ class EditorViewModel( } } else { proceedWithCreatingNewTextBlock( - id = target.id, + target = target.id, style = style, position = Position.BOTTOM ) @@ -3121,7 +3133,19 @@ class EditorViewModel( private fun proceedWithOpeningDataViewBlock(dv: Content.DataView) { if (dv.targetObjectId.isNotEmpty()) { - proceedWithOpeningDataViewObject(dv.targetObjectId) + val targetSpace = orchestrator.stores.details.current().let { details -> + val detail = details.details[dv.targetObjectId] + if (detail != null && detail.map.isNotEmpty()) { + val wrapper = ObjectWrapper.Basic(detail.map) + wrapper.spaceId ?: space + } else { + space + } + } + proceedWithOpeningDataViewObject( + target = dv.targetObjectId, + space = SpaceId(targetSpace) + ) viewModelScope.sendAnalyticsOpenAsObject( analytics = analytics, type = EventsDictionary.Type.dataView @@ -3160,7 +3184,13 @@ class EditorViewModel( } } ObjectType.Layout.SET, ObjectType.Layout.COLLECTION -> { - proceedWithOpeningDataViewObject(target = target) + val space = wrapper.spaceId + if (space != null) { + proceedWithOpeningDataViewObject( + target = target, + space = SpaceId(checkNotNull(wrapper.spaceId)) + ) + } } else -> { sendToast("Cannot open object with layout: ${wrapper.layout}") @@ -3209,7 +3239,7 @@ class EditorViewModel( typeId = TypeId(objectTypeView.id), typeKey = TypeKey(objectTypeView.key), template = objectTypeView.defaultTemplate, - space = spaceManager.get() + space = space ) createBlockLinkWithObject.async( params = params @@ -4025,7 +4055,7 @@ class EditorViewModel( type = relation.type, filters = ObjectSearchConstants.setsByObjectTypeFilters( types = listOf(relation.type), - space = spaceManager.get() + space = space ) ) findObjectSetForType(params).process( @@ -4041,7 +4071,12 @@ class EditorViewModel( Command.OpenObjectTypeMenu(listOf(ObjectTypeMenuItem.ChangeType)) is FindObjectSetForType.Response.Success -> - Command.OpenObjectTypeMenu(clicked.items(set = response.obj.id)) + Command.OpenObjectTypeMenu( + clicked.items( + set = response.obj.id, + space = requireNotNull(response.obj.spaceId) + ) + ) } commands.postValue(EventWrapper(command)) } @@ -4235,7 +4270,7 @@ class EditorViewModel( private fun addNewBlockAtTheEnd() { proceedWithCreatingNewTextBlock( - id = "", + target = "", position = Position.INNER, style = Content.Text.Style.P ) @@ -4246,10 +4281,14 @@ class EditorViewModel( closePage.async(context).fold( onFailure = { Timber.e(it, "Error while closing object") - navigate(EventWrapper(AppNavigation.Command.OpenObject(target))) + navigate(EventWrapper( + AppNavigation.Command.OpenObject(target = target, space = space)) + ) }, onSuccess = { - navigate(EventWrapper(AppNavigation.Command.OpenObject(target))) + navigate(EventWrapper( + AppNavigation.Command.OpenObject(target = target, space = space)) + ) } ) } @@ -4270,10 +4309,24 @@ class EditorViewModel( private fun proceedWithOpeningObject(obj: ObjectWrapper.Basic) { when (val navigation = obj.navigation()) { is OpenObjectNavigation.OpenDataView -> { - navigate(EventWrapper(AppNavigation.Command.OpenSetOrCollection(navigation.target))) + navigate( + EventWrapper( + AppNavigation.Command.OpenSetOrCollection( + target = navigation.target, + space = navigation.space + ) + ) + ) } is OpenObjectNavigation.OpenEditor -> { - navigate(EventWrapper(AppNavigation.Command.OpenObject(navigation.target))) + navigate( + EventWrapper( + AppNavigation.Command.OpenObject( + target = navigation.target, + space = navigation.space + ) + ) + ) } is OpenObjectNavigation.UnexpectedLayoutError -> { sendToast("Unexpected layout: ${navigation.layout}") @@ -4281,7 +4334,11 @@ class EditorViewModel( } } - fun proceedWithOpeningDataViewObject(target: Id, isPopUpToDashboard: Boolean = false) { + fun proceedWithOpeningDataViewObject( + target: Id, + space: SpaceId, + isPopUpToDashboard: Boolean = false + ) { viewModelScope.launch { closePage.async(context).fold( onFailure = { @@ -4289,7 +4346,8 @@ class EditorViewModel( navigate( EventWrapper( AppNavigation.Command.OpenSetOrCollection( - target, + target = target, + space = space.id, isPopUpToDashboard ) ) @@ -4299,7 +4357,8 @@ class EditorViewModel( navigate( EventWrapper( AppNavigation.Command.OpenSetOrCollection( - target, + target = target, + space = space.id, isPopUpToDashboard ) ) @@ -4453,7 +4512,11 @@ class EditorViewModel( objectToSet.async(params).fold( onFailure = { error -> Timber.e(error, "Error convert object to set") }, onSuccess = { - proceedWithOpeningDataViewObject(target = context, isPopUpToDashboard = true) + proceedWithOpeningDataViewObject( + target = context, + space = SpaceId(space), + isPopUpToDashboard = true + ) viewModelScope.sendAnalyticsObjectTypeSelectOrChangeEvent( analytics = analytics, startTime = startTime, @@ -4471,7 +4534,11 @@ class EditorViewModel( objectToCollection.async(params).fold( onFailure = { error -> Timber.e(error, "Error convert object to collection") }, onSuccess = { - proceedWithOpeningDataViewObject(target = context, isPopUpToDashboard = true) + proceedWithOpeningDataViewObject( + target = context, + space = SpaceId(space), + isPopUpToDashboard = true + ) viewModelScope.sendAnalyticsObjectTypeSelectOrChangeEvent( analytics = analytics, startTime = startTime, @@ -4964,7 +5031,7 @@ class EditorViewModel( sorts = sorts, filters = ObjectSearchConstants.filterTypes( spaces = buildList { - add(spaceManager.get()) + add(space) }, recommendedLayouts = SupportedLayouts.editorLayouts ), @@ -5347,6 +5414,7 @@ class EditorViewModel( fun proceedWithMoveToAction( target: Id, + space: Id, text: String, icon: ObjectIcon, blocks: List, @@ -5373,6 +5441,7 @@ class EditorViewModel( dispatch( Command.OpenObjectSnackbar( id = target, + space = space, fromText = "${blocks.size} block${if (blocks.size > 1) "s" else ""} ", toText = text, icon = icon, @@ -5527,7 +5596,7 @@ class EditorViewModel( val page = blocks.first { it.id == context } val next = page.children.getOrElse(0) { "" } proceedWithCreatingNewTextBlock( - id = next, + target = next, style = Content.Text.Style.P, position = Position.TOP ) @@ -5652,7 +5721,7 @@ class EditorViewModel( val target = currentSelection().first() clearSelections() proceedWithCreatingNewTextBlock( - id = target, + target = target, style = Content.Text.Style.P ) } @@ -5951,7 +6020,11 @@ class EditorViewModel( limit = ObjectSearchViewModel.SEARCH_LIMIT, filters = ObjectSearchConstants.getFilterLinkTo( ignore = context, - spaces = spaceManager.getSpaceWithTechSpace(), + spaces = buildList { + add(space) + val config = spaceManager.getConfig(SpaceId(space)) + if (config != null) add(config.techSpace) + }, ), sorts = ObjectSearchConstants.sortLinkTo, fulltext = fullText, @@ -6061,7 +6134,7 @@ class EditorViewModel( sorts = emptyList(), filters = ObjectSearchConstants.filterTypes( spaces = buildList { - add(spaceManager.get()) + add(space) }, recommendedLayouts = SupportedLayouts.createObjectLayouts ), @@ -6168,11 +6241,16 @@ class EditorViewModel( createObjectSet( CreateObjectSet.Params( type = type, - space = spaceManager.get() + space = space ) ).process( failure = { Timber.e(it, "Error while creating a set of type: $type") }, - success = { response -> proceedWithOpeningDataViewObject(response.target) } + success = { response -> + proceedWithOpeningDataViewObject( + target = response.target, + space = SpaceId(space) + ) + } ) } } diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/editor/editor/Command.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/editor/editor/Command.kt index 96724d0819..9be2f599dd 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/editor/editor/Command.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/editor/editor/Command.kt @@ -39,6 +39,7 @@ sealed class Command { data class OpenObjectSnackbar( val id: Id, + val space: Id, val fromText: String, val toText: String, val icon: ObjectIcon, diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/editor/editor/ObjectTypeMenuItem.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/editor/editor/ObjectTypeMenuItem.kt index d0965e7032..045159d289 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/editor/editor/ObjectTypeMenuItem.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/editor/editor/ObjectTypeMenuItem.kt @@ -5,11 +5,14 @@ import com.anytypeio.anytype.presentation.editor.editor.listener.ListenerType sealed class ObjectTypeMenuItem { object ChangeType: ObjectTypeMenuItem() - data class OpenSet(val set: Id, val typeName: String) : ObjectTypeMenuItem() + data class OpenSet(val set: Id, val space: Id, val typeName: String) : ObjectTypeMenuItem() data class CreateSet(val type: Id, val typeName: String) : ObjectTypeMenuItem() } -fun ListenerType.Relation.ObjectType.items(set: Id? = null): List { +fun ListenerType.Relation.ObjectType.items( + set: Id? = null, + space: Id +): List { val relation = this return if (set.isNullOrBlank()) { listOf( @@ -24,6 +27,7 @@ fun ListenerType.Relation.ObjectType.items(set: Id? = null): List { viewModelScope.sendSelectHomeTabEvent( @@ -765,7 +772,14 @@ class HomeScreenViewModel( bundled = source ) // TODO switch to bundled widgets id - navigate(Navigation.ExpandWidget(Subscription.Sets)) + viewModelScope.launch { + navigation( + Navigation.ExpandWidget( + subscription = Subscription.Sets, + space = spaceManager.get() + ) + ) + } } is Widget.Source.Bundled.Recent -> { @@ -774,7 +788,14 @@ class HomeScreenViewModel( bundled = source ) // TODO switch to bundled widgets id - navigate(Navigation.ExpandWidget(Subscription.Recent)) + viewModelScope.launch { + navigation( + Navigation.ExpandWidget( + subscription = Subscription.Recent, + space = spaceManager.get() + ) + ) + } } is Widget.Source.Bundled.RecentLocal -> { @@ -783,7 +804,14 @@ class HomeScreenViewModel( bundled = source ) // TODO switch to bundled widgets id - navigate(Navigation.ExpandWidget(Subscription.RecentLocal)) + viewModelScope.launch { + navigation( + Navigation.ExpandWidget( + subscription = Subscription.RecentLocal, + space = spaceManager.get() + ) + ) + } } is Widget.Source.Bundled.Collections -> { @@ -792,7 +820,14 @@ class HomeScreenViewModel( bundled = source ) // TODO switch to bundled widgets id - navigate(Navigation.ExpandWidget(Subscription.Collections)) + viewModelScope.launch { + navigation( + Navigation.ExpandWidget( + subscription = Subscription.Collections, + space = spaceManager.get() + ) + ) + } } is Widget.Source.Default -> { @@ -830,18 +865,42 @@ class HomeScreenViewModel( } fun onBundledWidgetClicked(widget: Id) { - when (widget) { - Subscriptions.SUBSCRIPTION_SETS -> { - navigate(Navigation.ExpandWidget(Subscription.Sets)) - } - Subscriptions.SUBSCRIPTION_RECENT -> { - navigate(Navigation.ExpandWidget(Subscription.Recent)) - } - Subscriptions.SUBSCRIPTION_ARCHIVED -> { - navigate(Navigation.ExpandWidget(Subscription.Bin)) - } - Subscriptions.SUBSCRIPTION_FAVORITES -> { - navigate(Navigation.ExpandWidget(Subscription.Favorites)) + viewModelScope.launch { + // TODO DROID-2341 get space from widget views for better consistency + val space = spaceManager.get() + when (widget) { + Subscriptions.SUBSCRIPTION_SETS -> { + navigation( + Navigation.ExpandWidget( + subscription = Subscription.Sets, + space = space + ) + ) + } + Subscriptions.SUBSCRIPTION_RECENT -> { + navigation( + Navigation.ExpandWidget( + subscription = Subscription.Recent, + space = space + ) + ) + } + Subscriptions.SUBSCRIPTION_ARCHIVED -> { + navigation( + Navigation.ExpandWidget( + subscription = Subscription.Bin, + space = space + ) + ) + } + Subscriptions.SUBSCRIPTION_FAVORITES -> { + navigation( + Navigation.ExpandWidget( + subscription = Subscription.Favorites, + space = space + ) + ) + } } } } @@ -1103,10 +1162,20 @@ class HomeScreenViewModel( private fun proceedWithOpeningObject(obj: ObjectWrapper.Basic) { when(val navigation = obj.navigation()) { is OpenObjectNavigation.OpenDataView -> { - navigate(Navigation.OpenSet(navigation.target)) + navigate( + Navigation.OpenSet( + ctx = navigation.target, + space = navigation.target + ) + ) } is OpenObjectNavigation.OpenEditor -> { - navigate(Navigation.OpenObject(navigation.target)) + navigate( + Navigation.OpenObject( + ctx = navigation.target, + space = navigation.space + ) + ) } is OpenObjectNavigation.UnexpectedLayoutError -> { sendToast("Unexpected layout: ${navigation.layout}") @@ -1149,6 +1218,15 @@ class HomeScreenViewModel( } } + fun onCreateNewObjectLongClicked() { + viewModelScope.launch { + val space = spaceManager.get() + if (space.isNotEmpty()) { + commands.emit(Command.OpenObjectCreateDialog(SpaceId(space))) + } + } + } + fun onMove(views: List, from: Int, to: Int) { viewModelScope.launch { val config = spaceManager.getConfig() @@ -1421,10 +1499,20 @@ class HomeScreenViewModel( } } + fun onLibraryClicked() { + viewModelScope.launch { + val space = spaceManager.get() + navigation( + Navigation.OpenLibrary(space) + ) + } + } + sealed class Navigation { - data class OpenObject(val ctx: Id) : Navigation() - data class OpenSet(val ctx: Id) : Navigation() - data class ExpandWidget(val subscription: Subscription) : Navigation() + data class OpenObject(val ctx: Id, val space: Id) : Navigation() + data class OpenSet(val ctx: Id, val space: Id) : Navigation() + data class ExpandWidget(val subscription: Subscription, val space: Id) : Navigation() + data class OpenLibrary(val space: Id) : Navigation() } class Factory @Inject constructor( @@ -1541,6 +1629,8 @@ sealed class Command { data class OpenSpaceSettings(val spaceId: SpaceId) : Command() + data class OpenObjectCreateDialog(val space: SpaceId) : Command() + data class SelectWidgetType( val ctx: Id, val source: Id, @@ -1598,8 +1688,8 @@ typealias Widgets = List? typealias Containers = List? sealed class OpenObjectNavigation { - data class OpenEditor(val target: Id) : OpenObjectNavigation() - data class OpenDataView(val target: Id): OpenObjectNavigation() + data class OpenEditor(val target: Id, val space: Id) : OpenObjectNavigation() + data class OpenDataView(val target: Id, val space: Id): OpenObjectNavigation() data class UnexpectedLayoutError(val layout: ObjectType.Layout?): OpenObjectNavigation() } @@ -1610,22 +1700,37 @@ fun ObjectWrapper.Basic.navigation() : OpenObjectNavigation { ObjectType.Layout.TODO, ObjectType.Layout.BOOKMARK, ObjectType.Layout.PARTICIPANT -> { - OpenObjectNavigation.OpenEditor(id) + OpenObjectNavigation.OpenEditor( + target = id, + space = requireNotNull(spaceId) + ) } in SupportedLayouts.fileLayouts -> { - OpenObjectNavigation.OpenEditor(id) + OpenObjectNavigation.OpenEditor( + target = id, + space = requireNotNull(spaceId) + ) } ObjectType.Layout.PROFILE -> { val identityLink = getValue(Relations.IDENTITY_PROFILE_LINK) if (identityLink.isNullOrEmpty()) { - OpenObjectNavigation.OpenEditor(id) + OpenObjectNavigation.OpenEditor( + target = id, + space = requireNotNull(spaceId) + ) } else { - OpenObjectNavigation.OpenEditor(identityLink) + OpenObjectNavigation.OpenEditor( + target = identityLink, + space = requireNotNull(spaceId) + ) } } ObjectType.Layout.SET, ObjectType.Layout.COLLECTION -> { - OpenObjectNavigation.OpenDataView(id) + OpenObjectNavigation.OpenDataView( + target = id, + space = requireNotNull(spaceId) + ) } else -> { OpenObjectNavigation.UnexpectedLayoutError(layout) diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/library/LibraryViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/library/LibraryViewModel.kt index cdcc955a78..fb6e2b2d8b 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/library/LibraryViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/library/LibraryViewModel.kt @@ -11,10 +11,9 @@ import com.anytypeio.anytype.analytics.base.EventsDictionary.libraryView import com.anytypeio.anytype.analytics.base.sendEvent import com.anytypeio.anytype.analytics.props.Props 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.Relations -import com.anytypeio.anytype.core_models.primitives.TypeKey +import com.anytypeio.anytype.core_models.primitives.SpaceId import com.anytypeio.anytype.core_utils.ext.allUniqueBy import com.anytypeio.anytype.core_utils.ext.orNull import com.anytypeio.anytype.domain.base.AppCoroutineDispatchers @@ -58,6 +57,7 @@ import kotlinx.coroutines.launch import timber.log.Timber class LibraryViewModel( + private val params: Params, private val myTypesDelegate: MyTypesDelegate, private val libraryTypesDelegate: LibraryTypesDelegate, private val myRelationsDelegate: MyRelationsDelegate, @@ -482,6 +482,7 @@ class LibraryViewModel( } class Factory @Inject constructor( + private val params: Params, private val myTypesDelegate: MyTypesDelegate, private val libraryTypesDelegate: LibraryTypesDelegate, private val myRelationsDelegate: MyRelationsDelegate, @@ -501,17 +502,18 @@ class LibraryViewModel( @Suppress("UNCHECKED_CAST") override fun create(modelClass: Class): T { return LibraryViewModel( - myTypesDelegate, - libraryTypesDelegate, - myRelationsDelegate, - libraryRelationsDelegate, - addObjectToWorkspace, - removeObjectsFromWorkspace, - resourceManager, - setObjectDetails, - createObject, - analytics, - spaceManager, + params = params, + myTypesDelegate = myTypesDelegate, + libraryTypesDelegate = libraryTypesDelegate, + myRelationsDelegate = myRelationsDelegate, + libraryRelationsDelegate = libraryRelationsDelegate, + addObjectToWorkspace = addObjectToWorkspace, + removeObjectsFromWorkspace = removeObjectsFromWorkspace, + resourceManager = resourceManager, + setObjectDetails = setObjectDetails, + createObject = createObject, + analytics = analytics, + spaceManager = spaceManager, storelessSubscriptionContainer = storelessSubscriptionContainer, appCoroutineDispatchers = appCoroutineDispatchers, urlBuilder = urlBuilder, @@ -520,6 +522,8 @@ class LibraryViewModel( } } + class Params(val space: SpaceId) + sealed class Navigation { class OpenTypeCreation( val name: String = "" diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/AppNavigation.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/AppNavigation.kt index 065defd212..46d4138e56 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/AppNavigation.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/AppNavigation.kt @@ -10,8 +10,12 @@ interface AppNavigation { fun openSpaceSettings() - fun openObjectSet(target: String, isPopUpToDashboard: Boolean = false) - fun openDocument(id: String) + fun openObjectSet( + target: Id, + space: Id, + isPopUpToDashboard: Boolean = false + ) + fun openDocument(target: Id, space: Id) fun openModalTemplateSelect( template: Id, templateTypeId: Id, @@ -23,11 +27,9 @@ interface AppNavigation { templateTypeKey: Key ) - fun launchDocument(id: String) - fun launchCollections(subscription: Subscription) - fun launchObjectFromSplash(id: Id) - fun launchObjectSetFromSplash(id: Id) - fun launchObjectSet(id: Id) + fun launchDocument(target: String, space: Id) + fun launchCollections(subscription: Subscription, space: Id) + fun launchObjectSet(target: Id, space: Id) fun openKeychainScreen() fun openUserSettingsScreen() @@ -42,7 +44,7 @@ interface AppNavigation { fun deletedAccountScreen(deadline: Long) - fun openLibrary() + fun openLibrary(space: Id) fun logout() @@ -57,11 +59,8 @@ interface AppNavigation { object ExitFromMigrationScreen : Command() - data class OpenObject(val id: String) : Command() - - data class LaunchDocument(val id: String) : Command() - data class LaunchObjectFromSplash(val target: Id) : Command() - data class LaunchObjectSetFromSplash(val target: Id) : Command() + data class OpenObject(val target: Id, val space: Id) : Command() + data class LaunchDocument(val target: Id, val space: Id) : Command() data class OpenModalTemplateSelect( val template: Id, val templateTypeId: Id, @@ -76,10 +75,13 @@ interface AppNavigation { data class ExitToDesktopAndOpenPage(val pageId: String) : Command() object OpenPageSearch : Command() - data class OpenSetOrCollection(val target: String, val isPopUpToDashboard: Boolean = false) : - Command() + data class OpenSetOrCollection( + val target: Id, + val space: Id, + val isPopUpToDashboard: Boolean = false + ) : Command() - data class LaunchObjectSet(val target: Id) : Command() + data class LaunchObjectSet(val target: Id, val space: Id) : Command() object OpenUpdateAppScreen : Command() @@ -87,7 +89,7 @@ interface AppNavigation { data class OpenTemplates(val typeId: Id) : Command() - object OpenLibrary: Command() + data class OpenLibrary(val space: Id): Command() data class OpenRemoteFilesManageScreen(val subscription: Id) : Command() } diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/ObjectView.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/ObjectView.kt index 6cdbed8295..85b7614c89 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/ObjectView.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/ObjectView.kt @@ -8,6 +8,7 @@ interface DefaultSearchItem data class DefaultObjectView( val id: Id, + val space: Id, val name: String, val type: String? = null, val typeName: String? = null, diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/SupportNavigation.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/SupportNavigation.kt index baa711bb40..e3d1e477ac 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/SupportNavigation.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/navigation/SupportNavigation.kt @@ -23,4 +23,7 @@ open class NavigationViewModel : BaseViewModel() { fun navigate(destination: Navigation) = viewModelScope.launch { _navigation.emit(destination) } + suspend fun navigation(destination: Navigation) { + _navigation.emit(destination) + } } \ No newline at end of file diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/ObjectWrapperMapper.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/ObjectWrapperMapper.kt index c00d3396b1..11361ee87e 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/ObjectWrapperMapper.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/ObjectWrapperMapper.kt @@ -8,13 +8,13 @@ import com.anytypeio.anytype.core_models.ObjectTypeUniqueKeys import com.anytypeio.anytype.core_models.ObjectWrapper import com.anytypeio.anytype.core_models.Relations import com.anytypeio.anytype.core_models.Relations.SOURCE_OBJECT +import com.anytypeio.anytype.core_models.ext.DateParser import com.anytypeio.anytype.core_models.restrictions.ObjectRestriction import com.anytypeio.anytype.core_utils.ext.readableFileSize import com.anytypeio.anytype.domain.misc.UrlBuilder import com.anytypeio.anytype.presentation.library.LibraryView import com.anytypeio.anytype.presentation.linking.LinkToItemView import com.anytypeio.anytype.presentation.navigation.DefaultObjectView -import com.anytypeio.anytype.core_models.ext.DateParser import com.anytypeio.anytype.presentation.relations.RelationValueView import com.anytypeio.anytype.presentation.sets.filter.CreateFilterView import com.anytypeio.anytype.presentation.spaces.SpaceGradientProvider @@ -43,7 +43,8 @@ fun List.toView( obj = obj, layout = layout, builder = urlBuilder - ) + ), + space = requireNotNull(obj.spaceId) ) } @@ -85,7 +86,8 @@ fun ObjectWrapper.Basic.toView( ), lastModifiedDate = DateParser.parseInMillis(obj.lastModifiedDate) ?: 0L, lastOpenedDate = DateParser.parseInMillis(obj.lastOpenedDate) ?: 0L, - isFavorite = obj.isFavorite ?: false + isFavorite = obj.isFavorite ?: false, + space = requireNotNull(obj.spaceId) ) } @@ -234,6 +236,7 @@ fun List.toRelationObjectValueView( if (obj.isDeleted == null || obj.isDeleted == false) { RelationValueView.Object.Default( id = obj.id, + space = requireNotNull(obj.spaceId), name = obj.getProperName(), typeName = getProperTypeName( id = typeUrl, @@ -253,6 +256,7 @@ fun List.toRelationObjectValueView( } else { RelationValueView.Object.NonExistent( id = obj.id, + space = requireNotNull(obj.spaceId), isSelected = false, removable = false ) @@ -271,6 +275,7 @@ fun List.toRelationFileValueView( if (obj.id !in ids) { RelationValueView.File( id = obj.id, + space = requireNotNull(obj.spaceId), name = obj.getProperName(), ext = obj.getProperFileExt(), mime = obj.getProperFileMime(), @@ -308,7 +313,8 @@ fun ObjectWrapper.Basic.mapFileObjectToView(): CollectionView.ObjectView { name = getProperName(), description = sizeInBytes?.toLong()?.readableFileSize().orEmpty(), layout = layout, - icon = fileIcon + icon = fileIcon, + space = requireNotNull(spaceId) ) return CollectionView.ObjectView(defaultObjectView) } diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/SelectObjectTypeViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/SelectObjectTypeViewModel.kt index cb6fe42834..78575d109c 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/SelectObjectTypeViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/SelectObjectTypeViewModel.kt @@ -9,7 +9,6 @@ import com.anytypeio.anytype.core_models.EMPTY_QUERY import com.anytypeio.anytype.core_models.Id import com.anytypeio.anytype.core_models.Key import com.anytypeio.anytype.core_models.Marketplace -import com.anytypeio.anytype.core_models.Name import com.anytypeio.anytype.core_models.ObjectOrigin import com.anytypeio.anytype.core_models.ObjectTypeUniqueKeys import com.anytypeio.anytype.core_models.ObjectWrapper @@ -72,28 +71,24 @@ class SelectObjectTypeViewModel( private val query = MutableSharedFlow() - lateinit var space: Id - private val defaultObjectTypePipeline = MutableSharedFlow(1) private val pinned = MutableStateFlow>(emptyList()) init { viewModelScope.launch { - space = spaceManager.get() getPinnedObjectTypes.flow( - GetPinnedObjectTypes.Params(SpaceId(space)) + GetPinnedObjectTypes.Params(params.space) ).collect { pinned.value = it } } viewModelScope.launch { - space = spaceManager.get() query.onStart { emit(EMPTY_QUERY) }.flatMapLatest { query -> val types = getObjectTypes.stream( GetObjectTypes.Params( sorts = ObjectSearchConstants.defaultObjectTypeSearchSorts(), filters = ObjectSearchConstants.filterTypes( spaces = buildList { - add(space) + add(params.space.id) if (query.isNotEmpty()) { add(Marketplace.MARKETPLACE_SPACE_ID) } @@ -123,7 +118,7 @@ class SelectObjectTypeViewModel( .sortedBy { obj -> pinnedObjectTypesIds.indexOf(obj.id) } val (allUserTypes, allLibraryTypes) = allTypes.partition { type -> - type.getValue(Relations.SPACE_ID) == space + type.getValue(Relations.SPACE_ID) == params.space.id } val filteredLibraryTypes = allLibraryTypes.filter { type -> allUserTypes.none { it.uniqueKey == type.uniqueKey } @@ -293,7 +288,7 @@ class SelectObjectTypeViewModel( viewModelScope.launch { setPinnedObjectTypes.async( SetPinnedObjectTypes.Params( - space = SpaceId(id = space), + space = params.space, types = pinned ) ).fold( @@ -311,7 +306,7 @@ class SelectObjectTypeViewModel( viewModelScope.launch { setDefaultObjectType.async( SetDefaultObjectType.Params( - space = SpaceId(space), + space = params.space, type = TypeId(typeView.id) ) ).fold( @@ -330,7 +325,7 @@ class SelectObjectTypeViewModel( if (typeView.isFromLibrary) { val params = AddObjectToSpace.Params( obj = typeView.id, - space = space + space = params.space.id ) addObjectToSpace.async(params = params).fold( onSuccess = { result -> @@ -385,7 +380,7 @@ class SelectObjectTypeViewModel( val startTime = System.currentTimeMillis() createBookmarkObject( CreateBookmarkObject.Params( - space = space, + space = params.space.id, url = url, details = mapOf( Relations.ORIGIN to ObjectOrigin.CLIPBOARD.code.toDouble() @@ -400,7 +395,12 @@ class SelectObjectTypeViewModel( // route = EventsDictionary.Routes.sharingExtension, // startTime = startTime // ) - navigation.emit(OpenObjectNavigation.OpenEditor(obj)) + navigation.emit( + OpenObjectNavigation.OpenEditor( + target = obj, + space = params.space.id + ) + ) }, failure = { Timber.d(it, "Error while creating bookmark") @@ -422,21 +422,26 @@ class SelectObjectTypeViewModel( createPrefilledNote.async( CreatePrefilledNote.Params( text = text, - space = space, + space = params.space.id, details = mapOf( Relations.ORIGIN to ObjectOrigin.CLIPBOARD.code.toDouble() ), customType = defaultObjectType ?: TypeKey(ObjectTypeUniqueKeys.NOTE) ) ).fold( - onSuccess = { result -> + onSuccess = { obj -> sendAnalyticsObjectCreateEvent( analytics = analytics, objType = defaultObjectType?.key ?: ObjectTypeUniqueKeys.NOTE, route = EventsDictionary.Routes.sharingExtension, startTime = startTime ) - navigation.emit(OpenObjectNavigation.OpenEditor(result)) + navigation.emit( + OpenObjectNavigation.OpenEditor( + target = obj, + space = params.space.id + ) + ) }, onFailure = { Timber.d(it, "Error while creating note") @@ -482,6 +487,7 @@ class SelectObjectTypeViewModel( } data class Params( + val space: SpaceId, val excludedTypeKeys: List ) } diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/menu/ObjectMenuViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/menu/ObjectMenuViewModel.kt index fb8f266903..b3940984d1 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/menu/ObjectMenuViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/menu/ObjectMenuViewModel.kt @@ -173,7 +173,7 @@ class ObjectMenuViewModel( } } - override fun onIconClicked(ctx: Id) { + override fun onIconClicked(ctx: Id, space: Id) { viewModelScope.launch { if (objectRestrictions.contains(ObjectRestriction.DETAILS)) { _toasts.emit(NOT_ALLOWED) @@ -191,7 +191,7 @@ class ObjectMenuViewModel( } } - override fun onCoverClicked(ctx: Id) { + override fun onCoverClicked(ctx: Id, space: Id) { viewModelScope.launch { if (objectRestrictions.contains(ObjectRestriction.DETAILS)) { _toasts.emit(NOT_ALLOWED) @@ -209,7 +209,7 @@ class ObjectMenuViewModel( } } - override fun onLayoutClicked(ctx: Id) { + override fun onLayoutClicked(ctx: Id, space: Id) { viewModelScope.launch { if (objectRestrictions.contains(ObjectRestriction.LAYOUT_CHANGE)) { _toasts.emit(NOT_ALLOWED) @@ -237,13 +237,17 @@ class ObjectMenuViewModel( } } - override fun onActionClicked(ctx: Id, action: ObjectAction) { + override fun onActionClicked(ctx: Id, space: Id, action: ObjectAction) { when (action) { ObjectAction.DELETE -> { proceedWithUpdatingArchivedStatus(ctx = ctx, isArchived = true) } ObjectAction.DUPLICATE -> { - proceedWithDuplication(ctx = ctx, details = storage.details.current().details) + proceedWithDuplication( + ctx = ctx, + space = space, + details = storage.details.current().details + ) } ObjectAction.RESTORE -> { proceedWithUpdatingArchivedStatus(ctx = ctx, isArchived = false) diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/menu/ObjectMenuViewModelBase.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/menu/ObjectMenuViewModelBase.kt index b7f0852de0..ddc31cd262 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/menu/ObjectMenuViewModelBase.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/menu/ObjectMenuViewModelBase.kt @@ -78,9 +78,9 @@ abstract class ObjectMenuViewModelBase( ) val options: Flow = _options - abstract fun onIconClicked(ctx: Id) - abstract fun onCoverClicked(ctx: Id) - abstract fun onLayoutClicked(ctx: Id) + abstract fun onIconClicked(ctx: Id, space: Id) + abstract fun onCoverClicked(ctx: Id, space: Id) + abstract fun onLayoutClicked(ctx: Id, space: Id) abstract fun onRelationsClicked() fun onHistoryClicked() { @@ -111,7 +111,7 @@ abstract class ObjectMenuViewModelBase( } } - abstract fun onActionClicked(ctx: Id, action: ObjectAction) + abstract fun onActionClicked(ctx: Id, space: Id, action: ObjectAction) abstract fun buildActions( ctx: Id, @@ -188,6 +188,7 @@ abstract class ObjectMenuViewModelBase( fun onBackLinkOrAddToObjectAction( ctx: Id, + space: Id, backLinkId: Id, backLinkName: String, backLinkLayout: ObjectType.Layout?, @@ -206,12 +207,16 @@ abstract class ObjectMenuViewModelBase( ObjectType.Layout.TODO, ObjectType.Layout.NOTE -> { onLinkedMyselfTo( - myself = ctx, addTo = backLinkId, fromName = fromName + myself = ctx, + addTo = backLinkId, + fromName = fromName, + space = space ) } ObjectType.Layout.COLLECTION -> { proceedWithAddObjectToCollection( ctx = ctx, + space = space, collection = backLinkId, collectionName = backLinkName, collectionIcon = backLinkIcon, @@ -224,6 +229,7 @@ abstract class ObjectMenuViewModelBase( private fun proceedWithAddObjectToCollection( ctx: Id, + space: Id, collection: Id, collectionName: String, collectionIcon: ObjectIcon, @@ -249,7 +255,8 @@ abstract class ObjectMenuViewModelBase( currentObjectName = fromName, targetObjectName = collectionName, icon = collectionIcon, - isCollection = true + isCollection = true, + space = space ) ) }, @@ -258,7 +265,12 @@ abstract class ObjectMenuViewModelBase( } } - fun onLinkedMyselfTo(myself: Id, addTo: Id, fromName: String?) { + fun onLinkedMyselfTo( + myself: Id, + addTo: Id, + fromName: String?, + space: Id + ) { Timber.d("onLinkedMyselfTo, myself:[$myself], addTo:[$addTo], fromName:[$fromName]") jobs += viewModelScope.launch { val startTime = System.currentTimeMillis() @@ -267,8 +279,7 @@ abstract class ObjectMenuViewModelBase( objectToLink = myself, objectToPlaceLink = addTo, saveAsLastOpened = true, - // TODO resolve space from screen args or from object details - spaceId = SpaceId(spaceManager.get()) + spaceId = SpaceId(space) ) ).fold( onSuccess = { obj -> @@ -281,7 +292,8 @@ abstract class ObjectMenuViewModelBase( id = addTo, currentObjectName = fromName, targetObjectName = obj.getProperName(), - icon = ObjectIcon.from(obj, obj.layout, urlBuilder) + icon = ObjectIcon.from(obj, obj.layout, urlBuilder), + space = requireNotNull(obj.spaceId) ) ) }, @@ -296,21 +308,28 @@ abstract class ObjectMenuViewModelBase( jobs += viewModelScope.launch { commands.emit(Command.OpenLinkToChooser) } } - fun proceedWithOpeningPage(id: Id) { - Timber.d("proceedWithOpeningPage, id:[$id]") + fun proceedWithOpeningPage(target: Id, space: Id) { + Timber.d("proceedWithOpeningPage, id:[$target]") viewModelScope.launch { - delegator.delegate(Action.OpenObject(id)) + delegator.delegate( + Action.OpenObject(target = target, space = space) + ) } } - fun proceedWithOpeningCollection(id: Id) { - Timber.d("proceedWithOpeningCollection, id:[$id]") + fun proceedWithOpeningCollection(target: Id, space: Id) { + Timber.d("proceedWithOpeningCollection, id:[$target]") viewModelScope.launch { - delegator.delegate(Action.OpenCollection(id)) + delegator.delegate( + Action.OpenCollection( + target = target, + space = space + ) + ) } } - fun proceedWithDuplication(ctx: Id, details: Map?) { + fun proceedWithDuplication(ctx: Id, space: Id, details: Map?) { Timber.d("proceedWithDuplication, ctx:[$ctx]") val startTime = System.currentTimeMillis() viewModelScope.launch { @@ -319,9 +338,14 @@ abstract class ObjectMenuViewModelBase( Timber.e(it, "Duplication error") _toasts.emit(SOMETHING_WENT_WRONG_MSG) }, - success = { + success = { id -> _toasts.emit("Your object is duplicated") - delegator.delegate(Action.Duplicate(it)) + delegator.delegate( + Action.Duplicate( + target = id, + space = space + ) + ) sendAnalyticsDuplicateEvent( analytics = analytics, startTime = startTime, @@ -406,6 +430,7 @@ abstract class ObjectMenuViewModelBase( data class ShareDebugGoroutines(val path: String) : Command() data class OpenSnackbar( val id: Id, + val space: Id, val currentObjectName: String?, val targetObjectName: String?, val icon: ObjectIcon, diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/menu/ObjectSetMenuViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/menu/ObjectSetMenuViewModel.kt index a69d8bc590..8aa15b0e1c 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/menu/ObjectSetMenuViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/objects/menu/ObjectSetMenuViewModel.kt @@ -100,7 +100,7 @@ class ObjectSetMenuViewModel( } } - override fun onIconClicked(ctx: Id) { + override fun onIconClicked(ctx: Id, space: Id) { val dataViewState = objectState.value.dataViewState() ?: return viewModelScope.launch { if (dataViewState.objectRestrictions.contains(ObjectRestriction.DETAILS)) { @@ -111,7 +111,7 @@ class ObjectSetMenuViewModel( } } - override fun onCoverClicked(ctx: Id) { + override fun onCoverClicked(ctx: Id, space: Id) { val dataViewState = objectState.value.dataViewState() ?: return viewModelScope.launch { if (dataViewState.objectRestrictions.contains(ObjectRestriction.DETAILS)) { @@ -122,7 +122,7 @@ class ObjectSetMenuViewModel( } } - override fun onLayoutClicked(ctx: Id) { + override fun onLayoutClicked(ctx: Id, space: Id) { val dataViewState = objectState.value.dataViewState() ?: return viewModelScope.launch { if (dataViewState.objectRestrictions.contains(ObjectRestriction.LAYOUT_CHANGE)) { @@ -168,7 +168,7 @@ class ObjectSetMenuViewModel( add(ObjectAction.LINK_TO) } - override fun onActionClicked(ctx: Id, action: ObjectAction) { + override fun onActionClicked(ctx: Id, space: Id, action: ObjectAction) { when (action) { ObjectAction.DELETE -> { proceedWithUpdatingArchivedStatus(ctx = ctx, isArchived = true) @@ -186,7 +186,11 @@ class ObjectSetMenuViewModel( proceedWithLinkTo() } ObjectAction.DUPLICATE -> { - proceedWithDuplication(ctx = ctx, details = objectState.value.dataViewState()?.details) + proceedWithDuplication( + ctx = ctx, + space = space, + details = objectState.value.dataViewState()?.details + ) } ObjectAction.CREATE_WIDGET -> { val details = objectState.value.dataViewState()?.details?.get(ctx) diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/relations/RelationValueView.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/relations/RelationValueView.kt index 5cc5d9d873..f4b18e1150 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/relations/RelationValueView.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/relations/RelationValueView.kt @@ -40,9 +40,11 @@ sealed class RelationValueView { sealed class Object : RelationValueView(), Selectable { abstract val id: Id + abstract val space: Id data class Default( override val id: Id, + override val space: Id, val name: String, val typeName: String?, val type: String?, @@ -56,6 +58,7 @@ sealed class RelationValueView { data class NonExistent( override val id: Id, + override val space: Id, override val isSelected: Boolean? = null, val removable: Boolean ) : Object(), Selectable @@ -63,6 +66,7 @@ sealed class RelationValueView { data class File( val id: Id, + val space: Id, val name: String, val mime: String, val ext: String, 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 b51e7eefa1..33f59f62c8 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 @@ -165,7 +165,18 @@ open class ObjectSearchViewModel( ObjectType.Layout.IMAGE, ObjectType.Layout.BOOKMARK, ObjectType.Layout.PARTICIPANT -> { - navigate(EventWrapper(AppNavigation.Command.LaunchDocument(id = target))) + val obj = objects + .value + .getOrNull() + ?.find { obj -> obj.id == view.id } + navigate( + EventWrapper( + AppNavigation.Command.LaunchDocument( + target = target, + space = requireNotNull(obj?.spaceId) + ) + ) + ) } ObjectType.Layout.PROFILE -> { val obj = objects @@ -174,13 +185,38 @@ open class ObjectSearchViewModel( ?.find { obj -> obj.id == view.id } val identity = obj?.getValue(Relations.IDENTITY_PROFILE_LINK) if (identity != null) { - navigate(EventWrapper(AppNavigation.Command.LaunchDocument(id = identity))) + navigate( + EventWrapper( + AppNavigation.Command.LaunchDocument( + target = identity, + space = requireNotNull(obj.spaceId) + ) + ) + ) } else { - navigate(EventWrapper(AppNavigation.Command.LaunchDocument(id = target))) + navigate( + EventWrapper( + AppNavigation.Command.LaunchDocument( + target = target, + space = requireNotNull(obj?.spaceId) + ) + ) + ) } } ObjectType.Layout.SET, ObjectType.Layout.COLLECTION -> { - navigate(EventWrapper(AppNavigation.Command.LaunchObjectSet(target = target))) + val obj = objects + .value + .getOrNull() + ?.find { obj -> obj.id == view.id } + navigate( + EventWrapper( + AppNavigation.Command.LaunchObjectSet( + target = target, + space = requireNotNull(obj?.spaceId) + ) + ) + ) } else -> { Timber.e("Unexpected layout: ${view.layout}") diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/DataViewViewState.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/DataViewViewState.kt index 4becc166bf..d182afcc94 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/DataViewViewState.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/DataViewViewState.kt @@ -14,8 +14,15 @@ sealed class DataViewViewState { sealed class Set : DataViewViewState() { object NoQuery : Set() object NoView : Set() - data class NoItems(val title: String, val isCreateObjectAllowed: Boolean) : Set() - data class Default(val viewer: Viewer?, val isCreateObjectAllowed: Boolean) : Set() + data class NoItems( + val title: String, + val isCreateObjectAllowed: Boolean + ) : Set() + data class Default( + val viewer: Viewer?, + val isCreateObjectAllowed: Boolean, + val isEditingViewAllowed: Boolean = true + ) : Set() } object Init: DataViewViewState() @@ -26,7 +33,8 @@ sealed class SetOrCollectionHeaderState { object None : SetOrCollectionHeaderState() data class Default( val title: BlockView.Title.Basic, - val description: Description + val description: Description, + val isReadOnlyMode: Boolean = false ) : SetOrCollectionHeaderState() sealed class Description { diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetExtension.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetExtension.kt index e110d55622..71e3f047da 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetExtension.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetExtension.kt @@ -16,12 +16,17 @@ import com.anytypeio.anytype.core_models.Event.Command.DataView.UpdateView.DVVie import com.anytypeio.anytype.core_models.Id import com.anytypeio.anytype.core_models.ObjectType import com.anytypeio.anytype.core_models.ObjectWrapper +import com.anytypeio.anytype.core_models.PermittedConditions import com.anytypeio.anytype.core_models.Relation import com.anytypeio.anytype.core_models.RelationFormat import com.anytypeio.anytype.core_models.RelationLink import com.anytypeio.anytype.core_models.Relations import com.anytypeio.anytype.core_models.Struct +import com.anytypeio.anytype.core_models.ext.DAYS_IN_MONTH +import com.anytypeio.anytype.core_models.ext.DAYS_IN_WEEK import com.anytypeio.anytype.core_models.ext.DateParser +import com.anytypeio.anytype.core_models.ext.EMPTY_STRING_VALUE +import com.anytypeio.anytype.core_models.ext.SECONDS_IN_DAY import com.anytypeio.anytype.core_models.ext.mapToObjectWrapperType import com.anytypeio.anytype.core_models.ext.title import com.anytypeio.anytype.core_models.primitives.TypeId @@ -46,11 +51,6 @@ import com.anytypeio.anytype.presentation.relations.isSystemKey import com.anytypeio.anytype.presentation.relations.linksFeaturedRelation import com.anytypeio.anytype.presentation.relations.title import com.anytypeio.anytype.presentation.relations.view -import com.anytypeio.anytype.core_models.PermittedConditions -import com.anytypeio.anytype.core_models.ext.DAYS_IN_MONTH -import com.anytypeio.anytype.core_models.ext.DAYS_IN_WEEK -import com.anytypeio.anytype.core_models.ext.EMPTY_STRING_VALUE -import com.anytypeio.anytype.core_models.ext.SECONDS_IN_DAY import com.anytypeio.anytype.presentation.sets.model.ObjectView import com.anytypeio.anytype.presentation.sets.model.SimpleRelationView import com.anytypeio.anytype.presentation.sets.model.Viewer @@ -91,7 +91,8 @@ fun ObjectState.DataView.featuredRelations( fun ObjectState.DataView.header( ctx: Id, urlBuilder: UrlBuilder, - coverImageHashProvider: CoverImageHashProvider + coverImageHashProvider: CoverImageHashProvider, + isReadOnlyMode: Boolean = false ): SetOrCollectionHeaderState { val title = blocks.title() return if (title != null) { @@ -105,7 +106,7 @@ fun ObjectState.DataView.header( title = title, urlBuilder = urlBuilder, details = details, - coverImageHashProvider = coverImageHashProvider + coverImageHashProvider = coverImageHashProvider, ), description = if (featured.contains(Relations.DESCRIPTION)) { SetOrCollectionHeaderState.Description.Default( @@ -113,7 +114,8 @@ fun ObjectState.DataView.header( ) } else { SetOrCollectionHeaderState.Description.None - } + }, + isReadOnlyMode = isReadOnlyMode ) } else { return SetOrCollectionHeaderState.None 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 fdbbe6447b..9647a19584 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 @@ -17,6 +17,7 @@ import com.anytypeio.anytype.core_models.ObjectWrapper import com.anytypeio.anytype.core_models.Payload import com.anytypeio.anytype.core_models.RelationFormat import com.anytypeio.anytype.core_models.Relations +import com.anytypeio.anytype.core_models.multiplayer.SpaceMemberPermissions import com.anytypeio.anytype.core_models.primitives.SpaceId import com.anytypeio.anytype.core_models.primitives.TypeId import com.anytypeio.anytype.core_models.primitives.TypeKey @@ -127,6 +128,7 @@ import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.mapLatest +import kotlinx.coroutines.flow.mapNotNull import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch import kotlinx.coroutines.withTimeout @@ -176,6 +178,8 @@ class ObjectSetViewModel( val icon = MutableStateFlow(ProfileIconView.Loading) + val permission = MutableStateFlow(SpaceMemberPermissions.NO_PERMISSIONS) + val status = MutableStateFlow(null) val error = MutableStateFlow(null) @@ -220,6 +224,7 @@ class ObjectSetViewModel( val isLoading = MutableStateFlow(false) private var context: Id = "" + private var space = MutableStateFlow("") private val selectedTypeFlow: MutableStateFlow = MutableStateFlow(null) @@ -230,7 +235,10 @@ class ObjectSetViewModel( stateReducer.state .filterIsInstance() .distinctUntilChanged() - .collectLatest { state -> + .combine(permission) { state, permission -> + state to permission + } + .collectLatest { (state, permission) -> featured.value = state.featuredRelations( ctx = context, urlBuilder = urlBuilder, @@ -239,7 +247,8 @@ class ObjectSetViewModel( _header.value = state.header( ctx = context, urlBuilder = urlBuilder, - coverImageHashProvider = coverImageHashProvider + coverImageHashProvider = coverImageHashProvider, + isReadOnlyMode = permission == SpaceMemberPermissions.NO_PERMISSIONS || permission == SpaceMemberPermissions.READER ) } } @@ -299,11 +308,18 @@ class ObjectSetViewModel( is Action.SetUnsplashImage -> { proceedWithSettingUnsplashImage(action) } - is Action.OpenObject -> proceedWithOpeningObject(action.id) - is Action.OpenCollection -> proceedWithOpeningObjectCollection(action.id) + is Action.OpenObject -> proceedWithOpeningObject( + target = action.target, + space = action.space + ) + is Action.OpenCollection -> proceedWithOpeningObjectCollection( + target = action.target, + space = action.space + ) is Action.Duplicate -> proceedWithNavigation( - target = action.id, - layout = ObjectType.Layout.SET + target = action.target, + layout = ObjectType.Layout.SET, + space = action.space ) else -> {} } @@ -347,8 +363,9 @@ class ObjectSetViewModel( private fun proceedWithObservingProfileIcon() { viewModelScope.launch { - spaceManager - .observe() + space + .filter { it.isNotEmpty() } + .mapNotNull { spaceManager.getConfig(SpaceId(it)) } .flatMapLatest { config -> storelessSubscriptionContainer.subscribe( StoreSearchByIdsParams( @@ -356,6 +373,7 @@ class ObjectSetViewModel( targets = listOf(config.profile), keys = listOf( Relations.ID, + Relations.SPACE_ID, Relations.NAME, Relations.ICON_EMOJI, Relations.ICON_IMAGE, @@ -380,7 +398,7 @@ class ObjectSetViewModel( DownloadUnsplashImage.Params( picture = action.img, // TODO re-fact to use space id from arguments or target space id of this object - space = SpaceId(spaceManager.get()) + space = SpaceId(space.value) ) ).process( failure = { @@ -402,9 +420,10 @@ class ObjectSetViewModel( ) } - fun onStart(ctx: Id) { + fun onStart(ctx: Id, space: Id) { Timber.d("onStart, ctx:[$ctx]") - context = ctx + this.context = ctx + this.space.value = space subscribeToEvents(ctx = ctx) subscribeToThreadStatus(ctx = ctx) proceedWithOpeningCurrentObject(ctx = ctx) @@ -425,7 +444,7 @@ class ObjectSetViewModel( .build(InterceptThreadStatus.Params(ctx)) .collect { val statusView = it.toView( - networkId = spaceManager.getConfig()?.network, + networkId = spaceManager.getConfig(SpaceId(space.value))?.network, networkMode = networkMode ) status.value = statusView @@ -438,24 +457,30 @@ class ObjectSetViewModel( Timber.d("subscribeToObjectState, ctx:[$context]") viewModelScope.launch { combine( + space.filter { it.isNotEmpty() }, stateReducer.state, paginator.offset, session.currentViewerId, - ) { state, offset, view -> - Triple(state, offset, view) - }.flatMapLatest { (state, offset, view) -> - when (state) { + ) { space, state, offset, view -> + Query( + space = space, + state = state, + offset = offset, + currentViewerId = view + ) + }.flatMapLatest { query -> + when (query.state) { is ObjectState.DataView.Collection -> { Timber.d("subscribeToObjectState, NEW COLLECTION STATE") - if (state.isInitialized) { + if (query.state.isInitialized) { dataViewSubscription.startObjectCollectionSubscription( collection = context, - state = state, - currentViewerId = view, - offset = offset, + state = query.state, + currentViewerId = query.currentViewerId, + offset = query.offset, context = context, - spaces = spaceManager.getSpaceWithTechSpace(), - dataViewRelationLinks = state.dataViewContent.relationLinks + spaces = spaceManager.getSpaceWithTechSpace(space = query.space), + dataViewRelationLinks = query.state.dataViewContent.relationLinks ) } else { emptyFlow() @@ -464,14 +489,14 @@ class ObjectSetViewModel( is ObjectState.DataView.Set -> { Timber.d("subscribeToObjectState, NEW SET STATE") - if (state.isInitialized) { + if (query.state.isInitialized) { dataViewSubscription.startObjectSetSubscription( - state = state, - currentViewerId = view, - offset = offset, + state = query.state, + currentViewerId = query.currentViewerId, + offset = query.offset, context = context, spaces = spaceManager.getSpaceWithTechSpace(), - dataViewRelationLinks = state.dataViewContent.relationLinks + dataViewRelationLinks = query.state.dataViewContent.relationLinks ) } else { emptyFlow() @@ -479,7 +504,7 @@ class ObjectSetViewModel( } else -> { - Timber.d("subscribeToObjectState, NEW STATE, $state") + Timber.d("subscribeToObjectState, NEW STATE, ${query.state}") emptyFlow() } } @@ -551,9 +576,10 @@ class ObjectSetViewModel( combine( database.index, stateReducer.state, - session.currentViewerId - ) { dataViewState, objectState, currentViewId -> - processViewState(dataViewState, objectState, currentViewId) + session.currentViewerId, + permission + ) { dataViewState, objectState, currentViewId, permission -> + processViewState(dataViewState, objectState, currentViewId, permission) }.distinctUntilChanged().collect { viewState -> Timber.d("subscribeToDataViewViewer, newViewerState:[$viewState]") _currentViewer.value = viewState @@ -564,7 +590,8 @@ class ObjectSetViewModel( private suspend fun processViewState( dataViewState: DataViewState, objectState: ObjectState, - currentViewId: String? + currentViewId: String?, + permission: SpaceMemberPermissions? ): DataViewViewState { return when (objectState) { is ObjectState.DataView.Collection -> processCollectionState( @@ -575,7 +602,8 @@ class ObjectSetViewModel( is ObjectState.DataView.Set -> processSetState( dataViewState = dataViewState, objectState = objectState, - currentViewId = currentViewId + currentViewId = currentViewId, + permission = permission ) ObjectState.Init -> DataViewViewState.Init ObjectState.ErrorLayout -> DataViewViewState.Error(msg = "Wrong layout, couldn't open object") @@ -636,6 +664,7 @@ class ObjectSetViewModel( dataViewState: DataViewState, objectState: ObjectState.DataView.Set, currentViewId: String?, + permission: SpaceMemberPermissions? ): DataViewViewState { if (!objectState.isInitialized) return DataViewViewState.Init @@ -688,7 +717,9 @@ class ObjectSetViewModel( ) DataViewViewState.Set.Default( viewer = render, - isCreateObjectAllowed = objectState.isCreateObjectAllowed(defType) + isCreateObjectAllowed = objectState.isCreateObjectAllowed(defType), +// && (permission?.isOwnerOrEditor() == true), + isEditingViewAllowed = permission?.isOwnerOrEditor() == true ) } } @@ -921,6 +952,7 @@ class ObjectSetViewModel( proceedWithNavigation( target = target, layout = obj.layout, + space = requireNotNull(obj.spaceId), identityProfileLink = obj.getSingleValue(Relations.IDENTITY_PROFILE_LINK) ) } @@ -938,6 +970,7 @@ class ObjectSetViewModel( proceedWithNavigation( target = target, layout = obj.layout, + space = requireNotNull(obj.spaceId), identityProfileLink = obj.getSingleValue(Relations.IDENTITY_PROFILE_LINK) ) } else { @@ -1176,7 +1209,8 @@ class ObjectSetViewModel( if (obj.layout == ObjectType.Layout.NOTE) { proceedWithOpeningObject( target = response.objectId, - layout = obj.layout + layout = obj.layout, + space = requireNotNull(obj.spaceId) ) } else { dispatch( @@ -1340,7 +1374,11 @@ class ObjectSetViewModel( //region NAVIGATION - private suspend fun proceedWithOpeningObject(target: Id, layout: ObjectType.Layout? = null) { + private suspend fun proceedWithOpeningObject( + target: Id, + space: Id, + layout: ObjectType.Layout? = null + ) { Timber.d("proceedWithOpeningObject, target:[$target], layout:[$layout]") if (target == context) { toast("You are already here") @@ -1348,11 +1386,10 @@ class ObjectSetViewModel( return } isCustomizeViewPanelVisible.value = false - val navigateCommand = when (layout) { - ObjectType.Layout.SET, - ObjectType.Layout.COLLECTION -> AppNavigation.Command.OpenSetOrCollection(target = target) - else -> AppNavigation.Command.OpenObject(id = target) - } + val navigateCommand = AppNavigation.Command.OpenObject( + target = target, + space = space + ) closeBlock.async(context).fold( onSuccess = { navigate(EventWrapper(navigateCommand)) }, onFailure = { @@ -1380,7 +1417,10 @@ class ObjectSetViewModel( } } - private suspend fun proceedWithOpeningObjectCollection(target: Id) { + private suspend fun proceedWithOpeningObjectCollection( + target: Id, + space: Id + ) { if (target == context) { toast("You are already here") Timber.d("proceedWithOpeningObject, target == context") @@ -1390,11 +1430,25 @@ class ObjectSetViewModel( jobs += viewModelScope.launch { closeBlock.async(context).fold( onSuccess = { - navigate(EventWrapper(AppNavigation.Command.OpenSetOrCollection(target = target))) + navigate( + EventWrapper( + AppNavigation.Command.OpenSetOrCollection( + target = target, + space = space + ) + ) + ) }, onFailure = { Timber.e(it, "Error while closing object set: $context") - navigate(EventWrapper(AppNavigation.Command.OpenSetOrCollection(target = target))) + navigate( + EventWrapper( + AppNavigation.Command.OpenSetOrCollection( + target = target, + space = space + ) + ) + ) } ) } @@ -1402,6 +1456,7 @@ class ObjectSetViewModel( private suspend fun proceedWithNavigation( target: Id, + space: Id, layout: ObjectType.Layout?, identityProfileLink: Id? = null ) { @@ -1420,16 +1475,36 @@ class ObjectSetViewModel( ObjectType.Layout.AUDIO, ObjectType.Layout.PDF, ObjectType.Layout.BOOKMARK, - ObjectType.Layout.PARTICIPANT -> proceedWithOpeningObject(target) - ObjectType.Layout.PROFILE -> proceedWithOpeningObject(identityProfileLink ?: target) + ObjectType.Layout.PARTICIPANT -> proceedWithOpeningObject( + target = target, + space = space + ) + ObjectType.Layout.PROFILE -> proceedWithOpeningObject( + target = identityProfileLink ?: target, + space = space + ) ObjectType.Layout.SET, ObjectType.Layout.COLLECTION -> { closeBlock.async(context).fold( onSuccess = { - navigate(EventWrapper(AppNavigation.Command.OpenSetOrCollection(target))) + navigate( + EventWrapper( + AppNavigation.Command.OpenSetOrCollection( + target = target, + space = space + ) + ) + ) }, onFailure = { Timber.e(it, "Error while closing object set: $context") - navigate(EventWrapper(AppNavigation.Command.OpenSetOrCollection(target))) + navigate( + EventWrapper( + AppNavigation.Command.OpenSetOrCollection( + target = target, + space = space + ) + ) + ) } ) } @@ -1480,7 +1555,8 @@ class ObjectSetViewModel( onSuccess = { result -> proceedWithOpeningObject( target = result.objectId, - layout = result.obj.layout + layout = result.obj.layout, + space = requireNotNull(result.obj.spaceId) ) sendAnalyticsObjectCreateEvent( analytics = analytics, @@ -1951,7 +2027,7 @@ class ObjectSetViewModel( private suspend fun fetchAndProcessObjectTypes(selectedType: Id, widgetState: TypeTemplatesWidgetUI.Data) { val filters = ObjectSearchConstants.filterTypes( - spaces = listOf(spaceManager.get()), + spaces = listOf(space.value), recommendedLayouts = SupportedLayouts.createObjectLayouts ) val params = GetObjectTypes.Params( @@ -2666,4 +2742,17 @@ class ObjectSetViewModel( const val DELAY_BEFORE_CREATING_TEMPLATE = 200L private const val SUBSCRIPTION_TEMPLATES_ID = "-SUBSCRIPTION_TEMPLATES_ID" } + + // TODO will be used in the next pr + data class Params( + val ctx: Id, + val space: SpaceId + ) + + data class Query( + val space: Id, + val state: ObjectState, + val offset: Long, + val currentViewerId: Id? + ) } \ No newline at end of file diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/RelationValueBaseViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/RelationValueBaseViewModel.kt index d2c8f981a5..9cf109b9a6 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/RelationValueBaseViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/RelationValueBaseViewModel.kt @@ -175,6 +175,7 @@ abstract class RelationValueBaseViewModel( items.add( RelationValueView.Object.NonExistent( id = id, + space = requireNotNull(wrapper.spaceId), removable = isRemovable ) ) @@ -182,6 +183,7 @@ abstract class RelationValueBaseViewModel( items.add( RelationValueView.Object.Default( id = id, + space = requireNotNull(wrapper.spaceId), name = wrapper.getProperName(), typeName = objectType?.name, type = type, @@ -222,7 +224,8 @@ abstract class RelationValueBaseViewModel( mime = wrapper.fileMimeType.orEmpty(), ext = wrapper.fileExt.orEmpty(), image = wrapper.iconImage, - removable = isRemovable + removable = isRemovable, + space = requireNotNull(wrapper.spaceId) ) ) } @@ -470,6 +473,7 @@ abstract class RelationValueBaseViewModel( fun onObjectClicked( ctx: Id, id: Id, + space: Id, layout: ObjectType.Layout?, profileLinkIdentity: Id? = null ) { @@ -483,19 +487,32 @@ abstract class RelationValueBaseViewModel( ObjectType.Layout.BOOKMARK, ObjectType.Layout.PARTICIPANT -> { viewModelScope.launch { - navigation.emit(AppNavigation.Command.OpenObject(id)) + navigation.emit( + AppNavigation.Command.OpenObject( + target = id, + space = space + ) + ) } } ObjectType.Layout.PROFILE -> { viewModelScope.launch { navigation.emit( - AppNavigation.Command.OpenObject(profileLinkIdentity ?: id) + AppNavigation.Command.OpenObject( + target = profileLinkIdentity ?: id, + space = space + ) ) } } ObjectType.Layout.SET, ObjectType.Layout.COLLECTION -> { viewModelScope.launch { - navigation.emit(AppNavigation.Command.OpenSetOrCollection(id)) + navigation.emit( + AppNavigation.Command.OpenSetOrCollection( + target = id, + space = space + ) + ) } } else -> Timber.d("Unexpected layout: $layout").also { @@ -507,16 +524,26 @@ abstract class RelationValueBaseViewModel( } } - fun onNonExistentObjectClicked(ctx: Id, target: Id) { + fun onNonExistentObjectClicked(ctx: Id, target: Id, space: Id) { // TODO consider closing object before navigation viewModelScope.launch { - navigation.emit(AppNavigation.Command.OpenObject(target)) + navigation.emit( + AppNavigation.Command.OpenObject( + target = target, + space = space + ) + ) } } - fun onFileClicked(id: Id) { + fun onFileClicked(target: Id, space: Id) { viewModelScope.launch { - navigation.emit(AppNavigation.Command.OpenObject(id)) + navigation.emit( + AppNavigation.Command.OpenObject( + target = target, + space = space + ) + ) } } diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/sharing/AddToAnytypeViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/sharing/AddToAnytypeViewModel.kt index 2378d82dec..28216237f5 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/sharing/AddToAnytypeViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/sharing/AddToAnytypeViewModel.kt @@ -155,7 +155,12 @@ class AddToAnytypeViewModel( 1 -> { // No need to create a wrapper object, opening file object directly instead if (targetSpaceId == spaceManager.get()) { - navigation.emit(OpenObjectNavigation.OpenEditor(files.first())) + navigation.emit( + OpenObjectNavigation.OpenEditor( + target = files.first(), + space = targetSpaceId + ) + ) } else { with(commands) { emit(Command.ObjectAddToSpaceToast(targetSpaceView.obj.name)) @@ -184,7 +189,12 @@ class AddToAnytypeViewModel( startTime = startTime ) if (targetSpaceId == spaceManager.get()) { - navigation.emit(OpenObjectNavigation.OpenEditor(result)) + navigation.emit( + OpenObjectNavigation.OpenEditor( + target = result, + space = targetSpaceId + ) + ) } else { with(commands) { emit(Command.ObjectAddToSpaceToast(targetSpaceView.obj.name)) @@ -227,7 +237,12 @@ class AddToAnytypeViewModel( startTime = startTime ) if (targetSpaceId == spaceManager.get()) { - navigation.emit(OpenObjectNavigation.OpenEditor(obj)) + navigation.emit( + OpenObjectNavigation.OpenEditor( + target = obj, + space = targetSpaceId + ) + ) } else { with(commands) { emit(Command.ObjectAddToSpaceToast(targetSpaceView.obj.name)) @@ -269,7 +284,12 @@ class AddToAnytypeViewModel( startTime = startTime ) if (targetSpaceId == spaceManager.get()) { - navigation.emit(OpenObjectNavigation.OpenEditor(result)) + navigation.emit( + OpenObjectNavigation.OpenEditor( + target = result, + space = targetSpaceId + ) + ) } else { with(commands) { emit(Command.ObjectAddToSpaceToast(targetSpaceView.obj.name)) diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/collection/CollectionViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/collection/CollectionViewModel.kt index d96d98c5bf..f3e5912103 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/collection/CollectionViewModel.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/collection/CollectionViewModel.kt @@ -426,10 +426,20 @@ class CollectionViewModel( ObjectType.Layout.FILE, ObjectType.Layout.IMAGE, ObjectType.Layout.BOOKMARK -> { - commands.emit(Command.LaunchDocument(id = target)) + commands.emit( + Command.LaunchDocument( + target = target, + space = view.space + ) + ) } ObjectType.Layout.SET, ObjectType.Layout.COLLECTION -> { - commands.emit(Command.LaunchObjectSet(target = target)) + commands.emit( + Command.LaunchObjectSet( + target = target, + space = view.space + ) + ) } else -> { Timber.e("Unexpected layout: ${view.layout}") @@ -849,10 +859,20 @@ class CollectionViewModel( private suspend fun proceedWithOpeningObject(obj: ObjectWrapper.Basic) { when (val navigation = obj.navigation()) { is OpenObjectNavigation.OpenDataView -> { - commands.emit(Command.LaunchObjectSet(navigation.target)) + commands.emit( + Command.LaunchObjectSet( + target = navigation.target, + space = navigation.space + ) + ) } is OpenObjectNavigation.OpenEditor -> { - commands.emit(Command.LaunchDocument(navigation.target)) + commands.emit( + Command.LaunchDocument( + target = navigation.target, + space = navigation.space + ) + ) } is OpenObjectNavigation.UnexpectedLayoutError -> { toasts.emit("Unexpected layout: ${navigation.layout}") @@ -944,9 +964,9 @@ class CollectionViewModel( sealed class Command { data class ConfirmRemoveFromBin(val count: Int) : Command() - data class LaunchDocument(val id: Id) : Command() - data class OpenCollection(val subscription: Subscription) : Command() - data class LaunchObjectSet(val target: Id) : Command() + data class LaunchDocument(val target: Id, val space: Id) : Command() + data class OpenCollection(val subscription: Subscription, val space: Id) : Command() + data class LaunchObjectSet(val target: Id, val space: Id) : Command() object ToDesktop : Command() object ToSearch : Command() diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/CollectionAddRelationTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/CollectionAddRelationTest.kt index a98766d51a..fc816a3f16 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/CollectionAddRelationTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/CollectionAddRelationTest.kt @@ -48,7 +48,7 @@ class CollectionAddRelationTest : ObjectSetViewModelTestSetup() { @Before fun setup() { MockitoAnnotations.openMocks(this) - objectCollection = MockCollection(context = root) + objectCollection = MockCollection(context = root, space = defaultSpace) viewModel = givenViewModel() } @@ -62,7 +62,7 @@ class CollectionAddRelationTest : ObjectSetViewModelTestSetup() { @Test fun `should add new relation to data view`() = runTest { // SETUP - stubSpaceManager(objectCollection.spaceId) + stubSpaceManager(space = objectCollection.spaceId) stubStoreOfRelations(objectCollection) stubSubscriptionResults( subscription = objectCollection.subscriptionId, @@ -94,7 +94,7 @@ class CollectionAddRelationTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val relationId4 = "rel-newRelationKey" val relationKey4 = "newRelationKey" @@ -294,4 +294,8 @@ class CollectionAddRelationTest : ObjectSetViewModelTestSetup() { expectNoEvents() } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/CollectionCreateAndAddObjectTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/CollectionCreateAndAddObjectTest.kt index 54b1bfc28e..2254749fd4 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/CollectionCreateAndAddObjectTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/CollectionCreateAndAddObjectTest.kt @@ -54,7 +54,7 @@ class CollectionCreateAndAddObjectTest: ObjectSetViewModelTestSetup() { @Before fun setup() { MockitoAnnotations.openMocks(this) - mockObjectCollection = MockCollection(context = root) + mockObjectCollection = MockCollection(context = root, space = defaultSpace) repo = mock(verboseLogging = true) dispatchers = AppCoroutineDispatchers( io = rule.dispatcher, @@ -160,7 +160,7 @@ class CollectionCreateAndAddObjectTest: ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -191,4 +191,8 @@ class CollectionCreateAndAddObjectTest: ObjectSetViewModelTestSetup() { } } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/CollectionDataViewUpdateTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/CollectionDataViewUpdateTest.kt index c1170000a2..d576ef3a96 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/CollectionDataViewUpdateTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/CollectionDataViewUpdateTest.kt @@ -29,7 +29,7 @@ class CollectionDataViewUpdateTest : ObjectSetViewModelTestSetup() { fun setup() { MockitoAnnotations.openMocks(this) viewModel = givenViewModel() - objectCollection = MockCollection(context = root) + objectCollection = MockCollection(context = root, space = defaultSpace) stubGetDefaultPageType() } @@ -65,7 +65,7 @@ class CollectionDataViewUpdateTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT COLLECTION OBJECT STATE stateReducer.state.test { @@ -122,4 +122,8 @@ class CollectionDataViewUpdateTest : ObjectSetViewModelTestSetup() { ) } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/MockCollection.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/MockCollection.kt index a83bc132b0..c52e9a28cf 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/MockCollection.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/MockCollection.kt @@ -5,6 +5,7 @@ import com.anytypeio.anytype.core_models.DVFilter import com.anytypeio.anytype.core_models.DVSort import com.anytypeio.anytype.core_models.DVSortType import com.anytypeio.anytype.core_models.DVViewerType +import com.anytypeio.anytype.core_models.Id import com.anytypeio.anytype.core_models.ObjectOrder import com.anytypeio.anytype.core_models.ObjectType import com.anytypeio.anytype.core_models.Relation @@ -22,7 +23,10 @@ import com.anytypeio.anytype.presentation.sets.subscription.DefaultDataViewSubsc import com.anytypeio.anytype.test_utils.MockDataFactory import net.bytebuddy.utility.RandomString -class MockCollection(context: String) { +class MockCollection( + context: Id, + space: Id +) { val root = context val title = StubTitle(id = "title-${RandomString.make()}", text = "title-name-${RandomString.make()}") val header = StubHeader(id = "header-${RandomString.make()}", children = listOf(title.id)) @@ -231,7 +235,7 @@ class MockCollection(context: String) { isCollection = true, objectOrder = emptyList() ) - val spaceId = "space-${RandomString.make()}" + val spaceId = space val subscriptionId = DefaultDataViewSubscription.getSubscriptionId(context) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/MockSet.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/MockSet.kt index 70500d1635..4828c20398 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/MockSet.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/MockSet.kt @@ -3,6 +3,7 @@ package com.anytypeio.anytype.presentation.collections import com.anytypeio.anytype.core_models.Block import com.anytypeio.anytype.core_models.DVFilter import com.anytypeio.anytype.core_models.DVViewerType +import com.anytypeio.anytype.core_models.Id import com.anytypeio.anytype.core_models.ObjectType import com.anytypeio.anytype.core_models.ObjectTypeIds import com.anytypeio.anytype.core_models.ObjectWrapper @@ -21,10 +22,12 @@ import com.anytypeio.anytype.presentation.sets.subscription.DefaultDataViewSubsc import com.anytypeio.anytype.test_utils.MockDataFactory import net.bytebuddy.utility.RandomString -class MockSet(context: String, - val setOfValue: String = "setOf-${RandomString.make()}", - val setOfKey: String = "setOfKey-${RandomString.make()}" - ) { +class MockSet( + context: String, + val space: Id, + val setOfValue: String = "setOf-${RandomString.make()}", + val setOfKey: String = "setOfKey-${RandomString.make()}" +) { val root = context val title = @@ -36,7 +39,7 @@ class MockSet(context: String, children = listOf(title.id), fields = Block.Fields(mapOf(Relations.ICON_EMOJI to emoji)) ) - val spaceId = "space-${RandomString.make()}" + val spaceId = space val subscriptionId = DefaultDataViewSubscription.getSubscriptionId(context) val setOf get() = setOfValue @@ -174,8 +177,16 @@ class MockSet(context: String, ) // RECORDS - val obj1 = StubObject(id = "object-${RandomString.make()}", name = "object1-name-${RandomString.make()}") - val obj2 = StubObject(id = "object-${RandomString.make()}", name = "object2-name-${RandomString.make()}") + val obj1 = StubObject( + id = "object-${RandomString.make()}", + name = "object1-name-${RandomString.make()}", + space = spaceId + ) + val obj2 = StubObject( + id = "object-${RandomString.make()}", + name = "object2-name-${RandomString.make()}", + space = spaceId + ) // SET OBJECT DETAILS val details = Block.Details( @@ -183,6 +194,7 @@ class MockSet(context: String, root to Block.Fields( mapOf( Relations.ID to root, + Relations.SPACE_ID to spaceId, Relations.LAYOUT to ObjectType.Layout.SET.code.toDouble(), Relations.SET_OF to listOf(setOf) ) @@ -190,6 +202,7 @@ class MockSet(context: String, setOf to Block.Fields( map = mapOf( Relations.ID to setOf, + Relations.SPACE_ID to spaceId, Relations.UNIQUE_KEY to setOfKey, Relations.TYPE to ObjectTypeIds.OBJECT_TYPE, Relations.RECOMMENDED_LAYOUT to ObjectType.Layout.BASIC.code.toDouble(), @@ -204,6 +217,7 @@ class MockSet(context: String, root to Block.Fields( mapOf( Relations.ID to root, + Relations.SPACE_ID to spaceId, Relations.LAYOUT to ObjectType.Layout.SET.code.toDouble(), Relations.SET_OF to listOf() ) @@ -216,6 +230,7 @@ class MockSet(context: String, root to Block.Fields( mapOf( Relations.ID to root, + Relations.SPACE_ID to spaceId, Relations.LAYOUT to ObjectType.Layout.SET.code.toDouble(), Relations.SET_OF to relationObject3.id ) @@ -223,6 +238,7 @@ class MockSet(context: String, relationObject3.id to Block.Fields( mapOf( Relations.ID to relationObject3.id, + Relations.SPACE_ID to spaceId, Relations.RELATION_KEY to relationObject3.key, Relations.LAYOUT to ObjectType.Layout.RELATION.code.toDouble() ) @@ -235,6 +251,7 @@ class MockSet(context: String, root to Block.Fields( mapOf( Relations.ID to root, + Relations.SPACE_ID to spaceId, Relations.LAYOUT to ObjectType.Layout.SET.code.toDouble(), Relations.SET_OF to relationSetBy.id ) @@ -242,6 +259,7 @@ class MockSet(context: String, relationSetBy.id to Block.Fields( mapOf( Relations.ID to relationSetBy.id, + Relations.SPACE_ID to spaceId, Relations.RELATION_KEY to relationSetBy.key, Relations.UNIQUE_KEY to relationSetBy.uniqueKey, Relations.LAYOUT to ObjectType.Layout.RELATION.code.toDouble(), diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/ObjectCreateTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/ObjectCreateTest.kt index f856f60ecc..cf4d4d58da 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/ObjectCreateTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/ObjectCreateTest.kt @@ -4,9 +4,7 @@ import app.cash.turbine.testIn import com.anytypeio.anytype.core_models.ObjectType import com.anytypeio.anytype.core_models.ObjectTypeIds import com.anytypeio.anytype.core_models.ObjectWrapper -import com.anytypeio.anytype.core_models.Relation import com.anytypeio.anytype.core_models.Relations -import com.anytypeio.anytype.core_models.StubRelationObject import com.anytypeio.anytype.core_models.primitives.TypeKey import com.anytypeio.anytype.domain.base.Resultat import com.anytypeio.anytype.domain.dataview.interactor.CreateDataViewObject @@ -54,6 +52,7 @@ class ObjectCreateTest : ObjectSetViewModelTestSetup() { mockObjectSet = MockSet( context = root, + space = defaultSpace, setOfValue = setOfId, setOfKey = setOfKey ) @@ -82,6 +81,7 @@ class ObjectCreateTest : ObjectSetViewModelTestSetup() { objectType = TypeKey(setOfKey), struct = mapOf( Relations.ID to newObjectId, + Relations.SPACE_ID to defaultSpace, Relations.UNIQUE_KEY to setOfKey, Relations.LAYOUT to ObjectType.Layout.NOTE.code.toDouble(), ) @@ -97,7 +97,7 @@ class ObjectCreateTest : ObjectSetViewModelTestSetup() { doReturn(Resultat.success(Unit)).`when`(closeBlock).async(mockObjectSet.root) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -128,6 +128,7 @@ class ObjectCreateTest : ObjectSetViewModelTestSetup() { mockObjectSet = MockSet( context = root, + space = defaultSpace, setOfValue = setOfId, setOfKey = setOfKey ) @@ -165,7 +166,7 @@ class ObjectCreateTest : ObjectSetViewModelTestSetup() { doReturn(Resultat.success(Unit)).`when`(closeBlock).async(mockObjectSet.root) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val commandFlow = viewModel.commands.testIn(backgroundScope) advanceUntilIdle() @@ -194,7 +195,11 @@ class ObjectCreateTest : ObjectSetViewModelTestSetup() { val relationKey = "relationKey-${RandomString.make()}" val relationUniqueKeys = "relationUniqueKeys-${RandomString.make()}" - mockObjectSet = MockSet(context = root, setOfValue = setByRelationValue) + mockObjectSet = MockSet( + context = root, + space = defaultSpace, + setOfValue = setByRelationValue + ) val setByRelationMap = mapOf( Relations.ID to setByRelationValue, Relations.LAYOUT to ObjectType.Layout.RELATION.code.toDouble(), @@ -251,7 +256,7 @@ class ObjectCreateTest : ObjectSetViewModelTestSetup() { doReturn(Resultat.success(Unit)).`when`(closeBlock).async(mockObjectSet.root) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -276,7 +281,7 @@ class ObjectCreateTest : ObjectSetViewModelTestSetup() { @Test fun `Should create new Object and not close Set when clicking on New button in Collection`() = runTest { - val objectCollection = MockCollection(context = root) + val objectCollection = MockCollection(context = root, space = defaultSpace) // SETUP stubSpaceManager(objectCollection.spaceId) @@ -332,7 +337,7 @@ class ObjectCreateTest : ObjectSetViewModelTestSetup() { doReturn(Resultat.success(Unit)).`when`(closeBlock).async(objectCollection.root) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -353,4 +358,8 @@ class ObjectCreateTest : ObjectSetViewModelTestSetup() { verifyNoInteractions(closeBlock) } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/ObjectStateCollectionViewTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/ObjectStateCollectionViewTest.kt index 9852cd0281..cde2928e7c 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/ObjectStateCollectionViewTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/collections/ObjectStateCollectionViewTest.kt @@ -40,7 +40,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { fun setup() { MockitoAnnotations.openMocks(this) viewModel = givenViewModel() - mockObjectCollection = MockCollection(context = root) + mockObjectCollection = MockCollection(context = root, space = defaultSpace) stubGetDefaultPageType() stubNetworkMode() } @@ -62,7 +62,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val headerFlow = viewModel.header.testIn(backgroundScope) val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) @@ -97,7 +97,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -137,7 +137,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -176,7 +176,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -222,7 +222,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -276,7 +276,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -331,7 +331,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -387,7 +387,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -442,7 +442,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -498,7 +498,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { stubTemplatesForTemplatesContainer() // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -572,7 +572,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -639,7 +639,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -708,7 +708,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -773,7 +773,7 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -787,4 +787,8 @@ class ObjectStateCollectionViewTest : ObjectSetViewModelTestSetup() { assertIs(item) assertTrue(item.isCreateObjectAllowed) } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file 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 adc6bef4be..374cbf3d7d 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 @@ -40,7 +40,7 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { fun setup() { MockitoAnnotations.openMocks(this) viewModel = givenViewModel() - mockObjectSet = MockSet(context = root) + mockObjectSet = MockSet(context = root, space = defaultSpace) } @After @@ -71,7 +71,7 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT COLLECTION OBJECT STATE stateReducer.state.test { @@ -106,7 +106,7 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT SET OBJECT STATE stateReducer.state.test { @@ -135,7 +135,7 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -160,7 +160,7 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -194,7 +194,7 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) val stateFlow = stateReducer.state.testIn(backgroundScope) @@ -227,7 +227,7 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT STATES val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) @@ -304,7 +304,7 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT STATES val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) @@ -385,7 +385,7 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT STATES val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) @@ -405,7 +405,7 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { fun `displaying set with templates present when opening object set of pages with templates`() = runTest { // SETUP - mockObjectSet = MockSet(context = root, setOfValue = ObjectTypeIds.PAGE) + mockObjectSet = MockSet(context = root, setOfValue = ObjectTypeIds.PAGE, space = defaultSpace) val pageTypeMap = mapOf( Relations.ID to ObjectTypeIds.PAGE, Relations.TYPE to ObjectTypeIds.OBJECT_TYPE, @@ -434,7 +434,7 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT STATES val viewerFlow = viewModel.currentViewer.testIn(backgroundScope) @@ -449,4 +449,8 @@ class ObjectStateSetViewTest : ObjectSetViewModelTestSetup() { assertIs(item) assertTrue(item.isCreateObjectAllowed) } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/BlockReadModeTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/BlockReadModeTest.kt index ba13f2c41e..3770198a77 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/BlockReadModeTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/BlockReadModeTest.kt @@ -152,7 +152,7 @@ class BlockReadModeTest : EditorViewModelTest() { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -210,7 +210,7 @@ class BlockReadModeTest : EditorViewModelTest() { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -244,7 +244,7 @@ class BlockReadModeTest : EditorViewModelTest() { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -304,7 +304,7 @@ class BlockReadModeTest : EditorViewModelTest() { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -341,7 +341,7 @@ class BlockReadModeTest : EditorViewModelTest() { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/DataViewBlockTargetObjectSetTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/DataViewBlockTargetObjectSetTest.kt index 75db86b8e1..05a1a3ae96 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/DataViewBlockTargetObjectSetTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/DataViewBlockTargetObjectSetTest.kt @@ -95,7 +95,7 @@ class DataViewBlockTargetObjectSetTest : EditorPresentationTestSetup() { ) // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) assertEquals( expected = state, @@ -158,7 +158,7 @@ class DataViewBlockTargetObjectSetTest : EditorPresentationTestSetup() { ) // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) assertEquals( expected = state, @@ -221,7 +221,7 @@ class DataViewBlockTargetObjectSetTest : EditorPresentationTestSetup() { ) // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) assertEquals( expected = state, @@ -284,7 +284,7 @@ class DataViewBlockTargetObjectSetTest : EditorPresentationTestSetup() { ) // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) assertEquals( expected = state, @@ -346,7 +346,7 @@ class DataViewBlockTargetObjectSetTest : EditorPresentationTestSetup() { ) // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) assertEquals( expected = state, @@ -400,7 +400,7 @@ class DataViewBlockTargetObjectSetTest : EditorPresentationTestSetup() { ) // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) assertEquals( expected = state, @@ -477,7 +477,7 @@ class DataViewBlockTargetObjectSetTest : EditorPresentationTestSetup() { ) // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(DELAY) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/EditorViewModelTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/EditorViewModelTest.kt index 755f3e8de3..a0aa84f221 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/EditorViewModelTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/EditorViewModelTest.kt @@ -394,7 +394,7 @@ open class EditorViewModelTest { private val storeOfRelations: StoreOfRelations = DefaultStoreOfRelations() private val storeOfObjectTypes: StoreOfObjectTypes = DefaultStoreOfObjectTypes() - val spaceId = MockDataFactory.randomString() + val defaultSpace = MockDataFactory.randomString() @Before fun setup() { @@ -404,7 +404,7 @@ open class EditorViewModelTest { spaceManager.stub { onBlocking { get() - } doReturn spaceId + } doReturn defaultSpace } } @@ -425,14 +425,14 @@ open class EditorViewModelTest { val param = OpenPage.Params( obj = root, saveAsLastOpened = true, - space = SpaceId(spaceId) + space = SpaceId(defaultSpace) ) stubInterceptEvents() givenViewModel() stubOpenPage(context = root) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) runBlockingTest { verify(openPage, times(1)).async(param) } } @@ -471,7 +471,7 @@ open class EditorViewModelTest { givenViewModel(builder) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = ViewState.Success( blocks = listOf( @@ -506,7 +506,7 @@ open class EditorViewModelTest { givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) verifyNoInteractions(closePage) @@ -546,7 +546,7 @@ open class EditorViewModelTest { stubInterceptEvents() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val testObserver = vm.navigation.test() @@ -569,7 +569,7 @@ open class EditorViewModelTest { stubOpenPage(context = pageId) stubUpdateText() - vm.onStart(pageId) + vm.onStart(id = pageId, space = defaultSpace) val blockView = BlockView.Text.Paragraph(id = blockId, text = text) vm.onTextBlockTextChanged(blockView) @@ -595,7 +595,7 @@ open class EditorViewModelTest { stubOpenPage(context = pageId) givenViewModel() - vm.onStart(pageId) + vm.onStart(id = pageId, space = defaultSpace) vm.onTextBlockTextChanged( BlockView.Text.Paragraph( @@ -693,7 +693,7 @@ open class EditorViewModelTest { stubOpenPage() givenViewModel(builder) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(200) @@ -770,7 +770,7 @@ open class EditorViewModelTest { givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged(id = paragraph.id, hasFocus = true) @@ -831,7 +831,7 @@ open class EditorViewModelTest { stubOpenPage() givenViewModel(builder) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -875,7 +875,7 @@ open class EditorViewModelTest { val testObserver = vm.state.test() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) testObserver.assertValue(ViewState.Loading) } @@ -934,7 +934,7 @@ open class EditorViewModelTest { givenViewModel(builder) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -1084,7 +1084,7 @@ open class EditorViewModelTest { stubOpenPage() givenViewModel(builder) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -1231,7 +1231,7 @@ open class EditorViewModelTest { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -1313,7 +1313,7 @@ open class EditorViewModelTest { val testObserver = vm.state.test() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) testObserver.assertValue(ViewState.Loading) @@ -1410,7 +1410,7 @@ open class EditorViewModelTest { givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -1501,7 +1501,7 @@ open class EditorViewModelTest { givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -1563,7 +1563,7 @@ open class EditorViewModelTest { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(1001) @@ -1636,7 +1636,7 @@ open class EditorViewModelTest { givenViewModel(builder) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(500) @@ -1730,7 +1730,7 @@ open class EditorViewModelTest { ) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(1001) @@ -1798,7 +1798,7 @@ open class EditorViewModelTest { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -1875,7 +1875,7 @@ open class EditorViewModelTest { givenViewModel(builder) stubUnlinkBlocks(root) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(pageOpenedDelay) @@ -1993,7 +1993,7 @@ open class EditorViewModelTest { givenViewModel() stubUnlinkBlocks(root) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2051,7 +2051,7 @@ open class EditorViewModelTest { stubObserveEvents(events) givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2109,7 +2109,7 @@ open class EditorViewModelTest { stubCreateBlock(root) givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2164,7 +2164,7 @@ open class EditorViewModelTest { stubUpdateTextColor(root) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2236,7 +2236,7 @@ open class EditorViewModelTest { stubCreateBlock(root) givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2301,7 +2301,7 @@ open class EditorViewModelTest { stubUpdateTextStyle() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2371,7 +2371,7 @@ open class EditorViewModelTest { stubUpdateText() stubSplitBlocks(root) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2473,7 +2473,7 @@ open class EditorViewModelTest { stubUpdateText() stubSplitBlocks(root) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2573,7 +2573,7 @@ open class EditorViewModelTest { givenSharedFile() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2630,7 +2630,7 @@ open class EditorViewModelTest { stubDownloadFile() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2700,7 +2700,7 @@ open class EditorViewModelTest { ) } - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2765,7 +2765,7 @@ open class EditorViewModelTest { ) } - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2819,7 +2819,7 @@ open class EditorViewModelTest { stubClosePage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(300) @@ -2871,7 +2871,7 @@ open class EditorViewModelTest { givenViewModel() stubReplaceBlock(root) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -2940,7 +2940,7 @@ open class EditorViewModelTest { stubReplaceBlock(root) givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -3014,7 +3014,7 @@ open class EditorViewModelTest { stubUpdateText() stubReplaceBlock(root) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -3072,7 +3072,7 @@ open class EditorViewModelTest { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -3167,7 +3167,7 @@ open class EditorViewModelTest { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -3338,7 +3338,7 @@ open class EditorViewModelTest { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -3438,7 +3438,7 @@ open class EditorViewModelTest { givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( @@ -3513,7 +3513,7 @@ open class EditorViewModelTest { givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( @@ -3583,7 +3583,7 @@ open class EditorViewModelTest { givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( @@ -3687,7 +3687,7 @@ open class EditorViewModelTest { async( OpenPage.Params( obj = context, - space = SpaceId(spaceId), + space = SpaceId(defaultSpace), saveAsLastOpened = true ) ) @@ -3968,7 +3968,7 @@ open class EditorViewModelTest { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -4071,7 +4071,7 @@ open class EditorViewModelTest { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -4178,7 +4178,7 @@ open class EditorViewModelTest { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) @@ -4319,7 +4319,7 @@ open class EditorViewModelTest { stubOpenPage() givenViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) coroutineTestRule.advanceTime(100) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorBackButtonTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorBackButtonTest.kt index 2c703d4ec9..cc1d6f96d1 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorBackButtonTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorBackButtonTest.kt @@ -36,7 +36,7 @@ class EditorBackButtonTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorBackspaceDeleteTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorBackspaceDeleteTest.kt index 9ba49dbf48..4897ef9532 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorBackspaceDeleteTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorBackspaceDeleteTest.kt @@ -132,7 +132,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = child.id, hasFocus = true @@ -251,7 +251,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = child2.id, hasFocus = true @@ -384,7 +384,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = child2.id, hasFocus = true @@ -488,7 +488,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = paragraph.id, hasFocus = true @@ -587,7 +587,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = paragraph.id, hasFocus = true @@ -658,7 +658,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = checkbox.id, hasFocus = true @@ -703,7 +703,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = bulleted.id, hasFocus = true @@ -748,7 +748,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = numbered.id, hasFocus = true @@ -793,7 +793,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = toggle.id, hasFocus = true @@ -838,7 +838,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = quote.id, hasFocus = true @@ -889,7 +889,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = checkbox.id, hasFocus = true @@ -973,7 +973,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = bulleted.id, hasFocus = true @@ -1056,7 +1056,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = quote.id, hasFocus = true @@ -1139,7 +1139,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = toggle.id, hasFocus = true @@ -1222,7 +1222,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = numbered.id, hasFocus = true @@ -1339,7 +1339,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = paragraph.id, hasFocus = true @@ -1412,7 +1412,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = paragraph.id, hasFocus = true @@ -1473,7 +1473,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = paragraph.id, hasFocus = true @@ -1562,7 +1562,7 @@ class EditorBackspaceDeleteTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = paragraph.id, hasFocus = true diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorBlockActionsTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorBlockActionsTest.kt index 3a462fc02a..2b5e6edc46 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorBlockActionsTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorBlockActionsTest.kt @@ -50,7 +50,7 @@ class EditorBlockActionsTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // Simulating long tap on link block, in order to enter multi-select mode. @@ -92,7 +92,7 @@ class EditorBlockActionsTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // Simulating long tap on "divider" block, in order to enter multi-select mode. @@ -134,7 +134,7 @@ class EditorBlockActionsTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // Simulating long tap on "p1" block, in order to enter multi-select mode. @@ -183,7 +183,7 @@ class EditorBlockActionsTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // Simulating long tap on "p1" block, in order to enter multi-select mode. diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorCheckboxTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorCheckboxTest.kt index f786c9244d..71c3a7471a 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorCheckboxTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorCheckboxTest.kt @@ -76,7 +76,7 @@ class EditorCheckboxTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onCheckboxClicked(view) @@ -136,7 +136,7 @@ class EditorCheckboxTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onCheckboxClicked(view) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorCreateBlockTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorCreateBlockTest.kt index 5a8cb5f392..9ee719dfc3 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorCreateBlockTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorCreateBlockTest.kt @@ -63,7 +63,7 @@ class EditorCreateBlockTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged(id = a.id, hasFocus = true) vm.onSelectionChanged( id = a.id, diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorDuplicateTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorDuplicateTest.kt index 1957a75322..ed1ff16acf 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorDuplicateTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorDuplicateTest.kt @@ -73,7 +73,7 @@ class EditorDuplicateTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // Simulating long tap on "c" block, in order to enter multi-select mode. @@ -150,7 +150,7 @@ class EditorDuplicateTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // Simulating long tap on "c" block, in order to enter multi-select mode. @@ -298,7 +298,7 @@ class EditorDuplicateTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // Simulating long tap on "a" block, in order to enter in multi-select mode. diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorEmptySpaceInteractionTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorEmptySpaceInteractionTest.kt index 5b41987769..868c8e8eb6 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorEmptySpaceInteractionTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorEmptySpaceInteractionTest.kt @@ -87,7 +87,7 @@ class EditorEmptySpaceInteractionTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -140,7 +140,7 @@ class EditorEmptySpaceInteractionTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -189,7 +189,7 @@ class EditorEmptySpaceInteractionTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root.id) + vm.onStart(id = root.id, space = defaultSpace) // TESTING @@ -259,7 +259,7 @@ class EditorEmptySpaceInteractionTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // Checking that no text block is focused @@ -306,7 +306,7 @@ class EditorEmptySpaceInteractionTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -338,7 +338,7 @@ class EditorEmptySpaceInteractionTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -383,7 +383,7 @@ class EditorEmptySpaceInteractionTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorErrorMessageTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorErrorMessageTest.kt index f4b7a45774..82e30bbbb1 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorErrorMessageTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorErrorMessageTest.kt @@ -62,7 +62,7 @@ class EditorErrorMessageTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) runBlockingTest { diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorEventSubscriptionTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorEventSubscriptionTest.kt index f7f4c56faf..abea4b498b 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorEventSubscriptionTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorEventSubscriptionTest.kt @@ -62,13 +62,13 @@ class EditorEventSubscriptionTest : EditorPresentationTestSetup() { verifyNoInteractions(interceptEvents) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) verify(interceptEvents, times(1)).build(params) vm.onStop() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) verify(interceptEvents, times(2)).build(params) } diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorFeaturedRelationsTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorFeaturedRelationsTest.kt index b0285c7aeb..4daed7e29a 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorFeaturedRelationsTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorFeaturedRelationsTest.kt @@ -130,7 +130,7 @@ class EditorFeaturedRelationsTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.Title.Basic( @@ -250,7 +250,7 @@ class EditorFeaturedRelationsTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( @@ -352,7 +352,7 @@ class EditorFeaturedRelationsTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( @@ -455,7 +455,7 @@ class EditorFeaturedRelationsTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.Title.Basic( @@ -576,7 +576,7 @@ class EditorFeaturedRelationsTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.Title.Basic( @@ -706,7 +706,7 @@ class EditorFeaturedRelationsTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.Title.Basic( @@ -830,7 +830,7 @@ class EditorFeaturedRelationsTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.Title.Basic( @@ -958,7 +958,7 @@ class EditorFeaturedRelationsTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.Title.Basic( @@ -1063,7 +1063,7 @@ class EditorFeaturedRelationsTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.Title.Basic( diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorFocusTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorFocusTest.kt index 73754a1ce4..e8bf735b89 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorFocusTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorFocusTest.kt @@ -97,7 +97,7 @@ class EditorFocusTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val testViewStateObserver = vm.state.test() @@ -150,7 +150,7 @@ class EditorFocusTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val testViewStateObserver = vm.state.test() val testFocusObserver = vm.focus.test() @@ -189,7 +189,7 @@ class EditorFocusTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val testViewStateObserver = vm.state.test() val testFocusObserver = vm.focus.test() @@ -250,7 +250,7 @@ class EditorFocusTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.state.test().apply { assertValue { value -> @@ -319,7 +319,7 @@ class EditorFocusTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onSelectionChanged( id = paragraph.id, selection = IntRange(0, 0) @@ -361,7 +361,7 @@ class EditorFocusTest : EditorPresentationTestSetup() { // TESTING Click on text block vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = first.id, hasFocus = true @@ -413,7 +413,7 @@ class EditorFocusTest : EditorPresentationTestSetup() { // TESTING Click on title block vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = title.id, hasFocus = true @@ -480,7 +480,7 @@ class EditorFocusTest : EditorPresentationTestSetup() { // TESTING Click on cell block vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = cells[0].id, hasFocus = true diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorGranularChangeTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorGranularChangeTest.kt index 8468ac5a5d..b4133fdcf1 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorGranularChangeTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorGranularChangeTest.kt @@ -144,7 +144,7 @@ class EditorGranularChangeTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // Checking that checkbox is not checked diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorInternalFlagsTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorInternalFlagsTest.kt index 6839ba8591..9808216512 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorInternalFlagsTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorInternalFlagsTest.kt @@ -60,7 +60,7 @@ class EditorInternalFlagsTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) advanceUntilIdle() @@ -89,7 +89,7 @@ class EditorInternalFlagsTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) advanceUntilIdle() @@ -135,7 +135,7 @@ class EditorInternalFlagsTest : EditorPresentationTestSetup() { stubFileLimitEvents() stubSetInternalFlags() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) advanceUntilIdle() @@ -175,7 +175,7 @@ class EditorInternalFlagsTest : EditorPresentationTestSetup() { stubFileLimitEvents() stubSetInternalFlags() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) advanceUntilIdle() @@ -215,7 +215,7 @@ class EditorInternalFlagsTest : EditorPresentationTestSetup() { // stubFileLimitEvents() // stubSetInternalFlags() // -// vm.onStart(root) +// vm.onStart(id = root, space = defaultSpace) // // advanceUntilIdle() // vm.onObjectTypesWidgetDoneClicked() @@ -267,7 +267,7 @@ class EditorInternalFlagsTest : EditorPresentationTestSetup() { stubFileLimitEvents() stubSetInternalFlags() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) advanceUntilIdle() diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorLatexBlockTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorLatexBlockTest.kt index 319baae39f..6a40365064 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorLatexBlockTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorLatexBlockTest.kt @@ -78,7 +78,7 @@ class EditorLatexBlockTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -137,7 +137,7 @@ class EditorLatexBlockTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorListBlockTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorListBlockTest.kt index 84de38efa2..85bc0d6121 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorListBlockTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorListBlockTest.kt @@ -90,7 +90,7 @@ class EditorListBlockTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = child, @@ -159,7 +159,7 @@ class EditorListBlockTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = child, @@ -228,7 +228,7 @@ class EditorListBlockTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = child, @@ -293,7 +293,7 @@ class EditorListBlockTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = child, @@ -369,7 +369,7 @@ class EditorListBlockTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = child, @@ -496,7 +496,7 @@ class EditorListBlockTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = child, @@ -642,7 +642,7 @@ class EditorListBlockTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = child, @@ -769,7 +769,7 @@ class EditorListBlockTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = child, diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorLockPageTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorLockPageTest.kt index 8d61d41eaa..7ed850c66d 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorLockPageTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorLockPageTest.kt @@ -89,7 +89,7 @@ class EditorLockPageTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.Title.Basic( @@ -154,7 +154,7 @@ class EditorLockPageTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.Title.Basic( @@ -219,7 +219,7 @@ class EditorLockPageTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.Title.Basic( @@ -286,7 +286,7 @@ class EditorLockPageTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -325,7 +325,10 @@ class EditorLockPageTest : EditorPresentationTestSetup() { // checking navigation command testObserver.assertValue { value -> - value is EventWrapper && value.peekContent() == AppNavigation.Command.OpenObject(target) + value is EventWrapper && value.peekContent() == AppNavigation.Command.OpenObject( + target = target, + space = defaultSpace + ) } } @@ -388,7 +391,7 @@ class EditorLockPageTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -436,7 +439,10 @@ class EditorLockPageTest : EditorPresentationTestSetup() { // checking navigation command testObserver.assertValue { value -> - value is EventWrapper && value.peekContent() == AppNavigation.Command.OpenObject(target) + value is EventWrapper && value.peekContent() == AppNavigation.Command.OpenObject( + target = target, + space = defaultSpace + ) } } @@ -494,7 +500,7 @@ class EditorLockPageTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -603,7 +609,7 @@ class EditorLockPageTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -709,7 +715,7 @@ class EditorLockPageTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMarkupObjectTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMarkupObjectTest.kt index 2e61203073..4d0bcce3e8 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMarkupObjectTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMarkupObjectTest.kt @@ -5,7 +5,6 @@ import androidx.arch.core.executor.testing.InstantTaskExecutorRule import com.anytypeio.anytype.core_models.Block import com.anytypeio.anytype.core_models.ObjectTypeIds.PAGE import com.anytypeio.anytype.core_models.ext.content -import com.anytypeio.anytype.presentation.BuildConfig import com.anytypeio.anytype.presentation.MockTypicalDocumentFactory import com.anytypeio.anytype.presentation.editor.EditorViewModel import com.anytypeio.anytype.presentation.editor.editor.model.BlockView @@ -16,7 +15,6 @@ import com.anytypeio.anytype.test_utils.MockDataFactory import com.jraska.livedata.test import kotlin.test.assertEquals import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.awaitAll import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.runTest import net.lachlanmckee.timberjunit.TimberTestRule @@ -92,7 +90,7 @@ class EditorMarkupObjectTest : EditorPresentationTestSetup() { //TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = block.id, hasFocus = true @@ -239,7 +237,7 @@ class EditorMarkupObjectTest : EditorPresentationTestSetup() { //TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = block.id, hasFocus = true @@ -411,7 +409,7 @@ class EditorMarkupObjectTest : EditorPresentationTestSetup() { ) stubGetDefaultObjectType(type = newObjectType) vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = block.id, hasFocus = true diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMentionTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMentionTest.kt index eccce929d1..3430d4653a 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMentionTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMentionTest.kt @@ -8,14 +8,11 @@ import com.anytypeio.anytype.core_models.Event import com.anytypeio.anytype.core_models.ObjectTypeIds import com.anytypeio.anytype.core_models.Payload import com.anytypeio.anytype.core_models.ext.content -import com.anytypeio.anytype.core_models.primitives.TypeId -import com.anytypeio.anytype.core_models.primitives.TypeKey import com.anytypeio.anytype.domain.base.Either import com.anytypeio.anytype.domain.base.Result import com.anytypeio.anytype.domain.base.Resultat import com.anytypeio.anytype.domain.event.interactor.InterceptEvents import com.anytypeio.anytype.domain.icon.DocumentEmojiIconProvider -import com.anytypeio.anytype.domain.page.CreateObjectAsMentionOrLink import com.anytypeio.anytype.presentation.editor.EditorViewModel import com.anytypeio.anytype.presentation.editor.editor.control.ControlPanelState import com.anytypeio.anytype.presentation.editor.editor.mention.MentionConst.MENTION_TITLE_EMPTY @@ -44,7 +41,6 @@ import org.mockito.kotlin.doReturn import org.mockito.kotlin.stub import org.mockito.kotlin.times import org.mockito.kotlin.verify -import org.mockito.kotlin.verifyBlocking import org.mockito.kotlin.verifyNoInteractions class EditorMentionTest : EditorPresentationTestSetup() { @@ -176,7 +172,7 @@ class EditorMentionTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -331,7 +327,7 @@ class EditorMentionTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -478,7 +474,7 @@ class EditorMentionTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -584,7 +580,7 @@ class EditorMentionTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -686,7 +682,7 @@ class EditorMentionTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) //TESTING @@ -861,7 +857,7 @@ class EditorMentionTest : EditorPresentationTestSetup() { verifyNoInteractions(interceptEvents) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val actual = vm.state.value val expected = ViewState.Success( @@ -1004,7 +1000,7 @@ class EditorMentionTest : EditorPresentationTestSetup() { verifyNoInteractions(interceptEvents) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val actual = vm.state.value val expected = ViewState.Success( @@ -1116,7 +1112,7 @@ class EditorMentionTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMenuTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMenuTest.kt index 5608772d6a..f0236725ef 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMenuTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMenuTest.kt @@ -58,8 +58,6 @@ class EditorMenuTest : EditorPresentationTestSetup() { // SETUP - val space = MockDataFactory.randomUuid() - val doc = page(root) val details = Block.Details( @@ -67,7 +65,7 @@ class EditorMenuTest : EditorPresentationTestSetup() { root to Block.Fields( mapOf( Relations.ID to root, - Relations.SPACE_ID to space + Relations.SPACE_ID to defaultSpace ) ) ) @@ -77,15 +75,15 @@ class EditorMenuTest : EditorPresentationTestSetup() { stubOpenDocument( document = doc, details = details, - spaceId = SpaceId(space) + spaceId = SpaceId(defaultSpace) ) - stubSpaceManager(space = space) + stubSpaceManager(space = defaultSpace) val vm = buildViewModel() // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val observer = vm.commands.test() @@ -99,7 +97,7 @@ class EditorMenuTest : EditorPresentationTestSetup() { isFavorite = false, isLocked = false, isTemplate = false, - space = space, + space = defaultSpace, ctx = root ) } @@ -110,7 +108,7 @@ class EditorMenuTest : EditorPresentationTestSetup() { // SETUP - val space = MockDataFactory.randomUuid() + val space = defaultSpace val details = Block.Details( mapOf( @@ -140,7 +138,7 @@ class EditorMenuTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val observer = vm.commands.test() @@ -188,7 +186,7 @@ class EditorMenuTest : EditorPresentationTestSetup() { // SETUP - val space = MockDataFactory.randomUuid() + val space = defaultSpace val doc = page(root) @@ -221,7 +219,7 @@ class EditorMenuTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val observer = vm.commands.test() diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMergeTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMergeTest.kt index 1d2df36c17..91956ea52a 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMergeTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMergeTest.kt @@ -60,7 +60,7 @@ class EditorMergeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = second.id, @@ -175,7 +175,7 @@ class EditorMergeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged(b.id, true) @@ -282,7 +282,7 @@ class EditorMergeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged(d.id, true) @@ -345,7 +345,7 @@ class EditorMergeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged(b.id, true) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMultiSelectModeTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMultiSelectModeTest.kt index c5bc8ab724..6d09d34296 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMultiSelectModeTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorMultiSelectModeTest.kt @@ -164,7 +164,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -422,7 +422,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -654,7 +654,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -734,7 +734,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -809,7 +809,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // Simulating long tap on "b" block, in order to enter multi-select mode. @@ -884,7 +884,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // Selecting blocks "a", "b" and "c" @@ -1025,7 +1025,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onClickListener(ListenerType.LongClick(target = a.id)) @@ -1098,7 +1098,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onClickListener(ListenerType.LongClick(target = a.id)) @@ -1146,7 +1146,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onClickListener(ListenerType.LongClick(target = a.id)) @@ -1195,7 +1195,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onClickListener(ListenerType.LongClick(target = a.id)) @@ -1243,7 +1243,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onClickListener(ListenerType.LongClick(target = a.id)) @@ -1323,7 +1323,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -1374,7 +1374,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onClickListener(ListenerType.LongClick(target = table.id)) @@ -1412,7 +1412,7 @@ class EditorMultiSelectModeTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onClickListener(ListenerType.CellLongClick(tableId = table.id)) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorNoteLayoutTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorNoteLayoutTest.kt index 519876be31..b386d26cff 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorNoteLayoutTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorNoteLayoutTest.kt @@ -140,7 +140,7 @@ class EditorNoteLayoutTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.FeaturedRelation( @@ -259,7 +259,7 @@ class EditorNoteLayoutTest : EditorPresentationTestSetup() { val vm = buildViewModel() storeOfRelations.merge(objectRelations) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.FeaturedRelation( diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorObjectTypeChangeWidgetTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorObjectTypeChangeWidgetTest.kt index 1ff2148be2..94dd4370cf 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorObjectTypeChangeWidgetTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorObjectTypeChangeWidgetTest.kt @@ -107,7 +107,7 @@ class EditorObjectTypeChangeWidgetTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val objectTypesWidget = vm.typesWidgetState.value @@ -174,7 +174,7 @@ class EditorObjectTypeChangeWidgetTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val objectTypesWidget = vm.typesWidgetState.value diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorPresentationTestSetup.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorPresentationTestSetup.kt index dfe287e52b..f22b80e5f2 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorPresentationTestSetup.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorPresentationTestSetup.kt @@ -125,6 +125,7 @@ import org.mockito.kotlin.stub open class EditorPresentationTestSetup { val root: Id = MockDataFactory.randomString() + val defaultSpace: Id = MockDataFactory.randomUuid() @Mock lateinit var openPage: OpenPage @@ -494,7 +495,7 @@ open class EditorPresentationTestSetup { relations: List = emptyList(), objectRestrictions: List = emptyList(), relationLinks: List = emptyList(), - spaceId: SpaceId = SpaceId("") + spaceId: SpaceId = SpaceId(defaultSpace) ) { openPage.stub { onBlocking { async( diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorQuickStartingScrollAndMoveTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorQuickStartingScrollAndMoveTest.kt index 785fe6bcc0..97a79eee60 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorQuickStartingScrollAndMoveTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorQuickStartingScrollAndMoveTest.kt @@ -95,7 +95,7 @@ class EditorQuickStartingScrollAndMoveTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val controlPanelTestObserver = vm.controlPanelViewState.test() val viewStateTestObserver = vm.state.test() @@ -210,7 +210,7 @@ class EditorQuickStartingScrollAndMoveTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val controlPanelTestObserver = vm.controlPanelViewState.test() val viewStateTestObserver = vm.state.test() diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorRelationBlockTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorRelationBlockTest.kt index a4b83f2b39..1dce7e81ba 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorRelationBlockTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorRelationBlockTest.kt @@ -102,7 +102,7 @@ class EditorRelationBlockTest : EditorPresentationTestSetup() { relations = listOf(relation) ) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -224,7 +224,7 @@ class EditorRelationBlockTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( @@ -345,7 +345,7 @@ class EditorRelationBlockTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( BlockView.Title.Basic( @@ -428,7 +428,7 @@ class EditorRelationBlockTest : EditorPresentationTestSetup() { val vm = buildViewModel() storeOfRelations.merge(listOf()) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val expected = listOf( diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorScrollAndMoveTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorScrollAndMoveTest.kt index 8958585004..e0fe0c68c3 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorScrollAndMoveTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorScrollAndMoveTest.kt @@ -112,7 +112,7 @@ class EditorScrollAndMoveTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -189,7 +189,7 @@ class EditorScrollAndMoveTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -245,7 +245,7 @@ class EditorScrollAndMoveTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -348,7 +348,7 @@ class EditorScrollAndMoveTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onClickListener( @@ -417,7 +417,7 @@ class EditorScrollAndMoveTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -488,7 +488,7 @@ class EditorScrollAndMoveTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -550,7 +550,7 @@ class EditorScrollAndMoveTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -623,7 +623,7 @@ class EditorScrollAndMoveTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -718,7 +718,7 @@ class EditorScrollAndMoveTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val toasts = mutableListOf() @@ -849,7 +849,7 @@ class EditorScrollAndMoveTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetActionsTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetActionsTest.kt index 47ef7a5d51..66131039c0 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetActionsTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetActionsTest.kt @@ -67,7 +67,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -104,7 +104,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -143,7 +143,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onSlashTextWatcherEvent( @@ -178,7 +178,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -223,7 +223,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -261,7 +261,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -297,7 +297,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -336,7 +336,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -372,7 +372,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -418,7 +418,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -452,7 +452,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -496,7 +496,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -541,7 +541,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -612,7 +612,7 @@ class EditorSlashWidgetActionsTest : EditorPresentationTestSetup() { stubSearchObjects() val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetClicksTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetClicksTest.kt index 846e610f67..136d814f45 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetClicksTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetClicksTest.kt @@ -66,7 +66,7 @@ class EditorSlashWidgetClicksTest: EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -137,7 +137,7 @@ class EditorSlashWidgetClicksTest: EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -207,7 +207,7 @@ class EditorSlashWidgetClicksTest: EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -303,7 +303,7 @@ class EditorSlashWidgetClicksTest: EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -468,7 +468,7 @@ class EditorSlashWidgetClicksTest: EditorPresentationTestSetup() { storeOfRelations.merge(listOf(relation1, relation2, relation3)) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -559,7 +559,7 @@ class EditorSlashWidgetClicksTest: EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -623,7 +623,7 @@ class EditorSlashWidgetClicksTest: EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -689,7 +689,7 @@ class EditorSlashWidgetClicksTest: EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -750,7 +750,7 @@ class EditorSlashWidgetClicksTest: EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetColorTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetColorTest.kt index f7eda17775..b76aef7e6f 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetColorTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetColorTest.kt @@ -90,7 +90,7 @@ class EditorSlashWidgetColorTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -175,7 +175,7 @@ class EditorSlashWidgetColorTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -260,7 +260,7 @@ class EditorSlashWidgetColorTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -316,7 +316,7 @@ class EditorSlashWidgetColorTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(4, 4) @@ -359,7 +359,7 @@ class EditorSlashWidgetColorTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -397,7 +397,7 @@ class EditorSlashWidgetColorTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -472,7 +472,7 @@ class EditorSlashWidgetColorTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -559,7 +559,7 @@ class EditorSlashWidgetColorTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -646,7 +646,7 @@ class EditorSlashWidgetColorTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -704,7 +704,7 @@ class EditorSlashWidgetColorTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(4, 4) @@ -750,7 +750,7 @@ class EditorSlashWidgetColorTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -788,7 +788,7 @@ class EditorSlashWidgetColorTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetCutFilterTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetCutFilterTest.kt index 94a9a73cbb..e59c10af10 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetCutFilterTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetCutFilterTest.kt @@ -152,7 +152,7 @@ class EditorSlashWidgetCutFilterTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onSelectionChanged( diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetFilterTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetFilterTest.kt index fb2c5fa59f..976885fce5 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetFilterTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetFilterTest.kt @@ -78,7 +78,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -122,7 +122,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -166,7 +166,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -254,7 +254,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -314,7 +314,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -364,7 +364,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -421,7 +421,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { stubGetObjectTypes(objectTypes) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -459,7 +459,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { ) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -529,7 +529,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { val vm = buildViewModel() storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -574,7 +574,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { val vm = buildViewModel() storeOfRelations.merge(objectRelations) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -646,7 +646,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -696,7 +696,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -750,7 +750,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -800,7 +800,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -854,7 +854,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -904,7 +904,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -958,7 +958,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1008,7 +1008,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1076,7 +1076,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1126,7 +1126,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1194,7 +1194,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1246,7 +1246,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1301,7 +1301,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1353,7 +1353,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { storeOfRelations.merge(objectRelations) stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1401,7 +1401,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { val vm = buildViewModel() stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1449,7 +1449,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { val vm = buildViewModel() stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1496,7 +1496,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { val vm = buildViewModel() stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1544,7 +1544,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1626,7 +1626,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1695,7 +1695,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { val vm = buildViewModel() stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1748,7 +1748,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { val vm = buildViewModel() stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1806,7 +1806,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { val vm = buildViewModel() stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1848,7 +1848,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { val vm = buildViewModel() stubGetObjectTypes(objectTypes) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1884,7 +1884,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { stubGetObjectTypes(listOf()) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1922,7 +1922,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { stubGetObjectTypes(listOf()) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1960,7 +1960,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { stubGetObjectTypes(listOf()) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -1998,7 +1998,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { stubGetObjectTypes(listOf()) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -2036,7 +2036,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { stubGetObjectTypes(listOf()) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -2073,7 +2073,7 @@ class EditorSlashWidgetFilterTest : EditorPresentationTestSetup() { stubOpenDocument(doc, customDetails) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetMarksTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetMarksTest.kt index 3930e2d262..f18ea3ba63 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetMarksTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetMarksTest.kt @@ -84,7 +84,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onSelectionChanged( @@ -143,7 +143,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onSelectionChanged( @@ -297,7 +297,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(7, 7) @@ -394,7 +394,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(7, 7) @@ -465,7 +465,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onSelectionChanged( @@ -554,7 +554,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(11, 11) @@ -635,7 +635,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(7, 7) @@ -704,7 +704,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onSelectionChanged( @@ -787,7 +787,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(5, 5) @@ -868,7 +868,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(7, 7) @@ -937,7 +937,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onSelectionChanged( @@ -1026,7 +1026,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(15, 15) @@ -1107,7 +1107,7 @@ class EditorSlashWidgetMarksTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(7, 7) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetObjectTypeTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetObjectTypeTest.kt index 6f343400d2..84f87da232 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetObjectTypeTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetObjectTypeTest.kt @@ -34,7 +34,7 @@ class EditorSlashWidgetObjectTypeTest : EditorPresentationTestSetup() { @get:Rule val coroutineTestRule = CoroutinesTestRule() - val space = "" + val space = defaultSpace @Before fun setup() { @@ -62,10 +62,10 @@ class EditorSlashWidgetObjectTypeTest : EditorPresentationTestSetup() { stubSearchObjects(listOf(type1, type2, type3)) stubCreateBlockLinkWithObject(root, a.id) stubOpenDocument(doc) - stubSpaceManager("") + stubSpaceManager(defaultSpace) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(a.id, true) onSlashTextWatcherEvent(SlashEvent.Start(100, 0)) @@ -125,7 +125,7 @@ class EditorSlashWidgetObjectTypeTest : EditorPresentationTestSetup() { stubSpaceManager(space = space) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged(paragraph.id, true) onSlashTextWatcherEvent(SlashEvent.Start(1, 0)) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetRelationsTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetRelationsTest.kt index 03ce477169..d6173e311d 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetRelationsTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetRelationsTest.kt @@ -92,7 +92,7 @@ class EditorSlashWidgetRelationsTest: EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(1, 1) vm.apply { onSelectionChanged( @@ -196,7 +196,7 @@ class EditorSlashWidgetRelationsTest: EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(0, 0) vm.apply { @@ -311,7 +311,7 @@ class EditorSlashWidgetRelationsTest: EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(0, 0) vm.apply { @@ -404,7 +404,7 @@ class EditorSlashWidgetRelationsTest: EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(1, 1) vm.apply { onSelectionChanged( @@ -479,7 +479,7 @@ class EditorSlashWidgetRelationsTest: EditorPresentationTestSetup() { ) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(1, 1) //TESTING diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetShowHideTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetShowHideTest.kt index ea02717687..372a4a83c3 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetShowHideTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetShowHideTest.kt @@ -5,14 +5,14 @@ import androidx.arch.core.executor.testing.InstantTaskExecutorRule import com.anytypeio.anytype.presentation.MockTypicalDocumentFactory import com.anytypeio.anytype.presentation.editor.editor.slash.SlashEvent import com.anytypeio.anytype.presentation.util.CoroutinesTestRule +import kotlin.test.assertFalse +import kotlin.test.assertNotNull +import kotlin.test.assertTrue import net.lachlanmckee.timberjunit.TimberTestRule import org.junit.Before import org.junit.Rule import org.junit.Test import org.mockito.MockitoAnnotations -import kotlin.test.assertFalse -import kotlin.test.assertNotNull -import kotlin.test.assertTrue class EditorSlashWidgetShowHideTest : EditorPresentationTestSetup() { @@ -45,7 +45,7 @@ class EditorSlashWidgetShowHideTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( @@ -77,7 +77,7 @@ class EditorSlashWidgetShowHideTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onBlockFocusChanged( diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetStyleTypeTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetStyleTypeTest.kt index 4693c3e31e..2670d12235 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetStyleTypeTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSlashWidgetStyleTypeTest.kt @@ -92,7 +92,7 @@ class EditorSlashWidgetStyleTypeTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(7, 7) @@ -138,7 +138,7 @@ class EditorSlashWidgetStyleTypeTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onSelectionChanged( @@ -226,7 +226,7 @@ class EditorSlashWidgetStyleTypeTest : EditorPresentationTestSetup() { stubOpenDocument(document = doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val selection = IntRange(7, 7) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSplitTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSplitTest.kt index 9f21dc9ec7..d1974eb71f 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSplitTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorSplitTest.kt @@ -218,7 +218,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 0, endInclusive = 0) @@ -253,7 +253,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 0, endInclusive = 0) @@ -303,7 +303,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 3, endInclusive = 3) @@ -364,7 +364,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 7, endInclusive = 7) @@ -426,7 +426,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 0, endInclusive = 0) @@ -475,7 +475,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 3, endInclusive = 3) @@ -535,7 +535,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 7, endInclusive = 7) @@ -613,7 +613,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { relations = listOf() ) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 0, endInclusive = 0) @@ -664,7 +664,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, description, featured, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 3, endInclusive = 3) @@ -727,7 +727,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, description, featured, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 6, endInclusive = 6) @@ -778,7 +778,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, description, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 0, endInclusive = 0) @@ -827,7 +827,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, description, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 3, endInclusive = 3) @@ -888,7 +888,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, description, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 6, endInclusive = 6) @@ -954,7 +954,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { relations = listOf() ) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 0, endInclusive = 0) @@ -1018,7 +1018,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { relations = listOf() ) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 0, endInclusive = 0) @@ -1069,7 +1069,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, description, featured, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 3, endInclusive = 3) @@ -1132,7 +1132,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, description, featured, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 6, endInclusive = 6) @@ -1197,7 +1197,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { relations = listOf() ) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 0, endInclusive = 0) @@ -1250,7 +1250,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, description, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 3, endInclusive = 3) @@ -1312,7 +1312,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { val doc = listOf(page, header, title, description, block) setupInteractions(doc) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 6, endInclusive = 6) @@ -1378,7 +1378,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { relations = listOf() ) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 0, endInclusive = 0) @@ -1452,7 +1452,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { relations = listOf() ) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 3, endInclusive = 3) @@ -1526,7 +1526,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { relations = listOf() ) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 8, endInclusive = 8) @@ -1602,7 +1602,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { relations = listOf() ) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 0, endInclusive = 0) @@ -1675,7 +1675,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { relations = listOf() ) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 3, endInclusive = 3) @@ -1748,7 +1748,7 @@ class EditorSplitTest : EditorPresentationTestSetup() { relations = listOf() ) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) val range = IntRange(start = 8, endInclusive = 8) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorStartupTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorStartupTest.kt index f1867d4599..3292499a6d 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorStartupTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorStartupTest.kt @@ -44,7 +44,7 @@ class EditorStartupTest : EditorPresentationTestSetup() { // TESTING - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.state.test().assertValue { state -> state is ViewState.Success && state.blocks.isEmpty() diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTableOfContentsBlockTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTableOfContentsBlockTest.kt index f3abf63d96..05b995894b 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTableOfContentsBlockTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTableOfContentsBlockTest.kt @@ -230,7 +230,7 @@ class EditorTableOfContentsBlockTest : EditorPresentationTestSetup() { val vm = buildViewModel() //TESTING - vm.apply { onStart(root) } + vm.apply { onStart(id = root, space = defaultSpace) } val expected = ViewState.Success( blocks = listOf( @@ -513,7 +513,7 @@ class EditorTableOfContentsBlockTest : EditorPresentationTestSetup() { //TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) } val expectedBefore = ViewState.Success( @@ -825,7 +825,7 @@ class EditorTableOfContentsBlockTest : EditorPresentationTestSetup() { val vm = buildViewModel() //TESTING - vm.apply { onStart(root) } + vm.apply { onStart(id = root, space = defaultSpace) } val expected = ViewState.Success( blocks = listOf( @@ -1051,7 +1051,7 @@ class EditorTableOfContentsBlockTest : EditorPresentationTestSetup() { val vm = buildViewModel() //TESTING - vm.apply { onStart(root) } + vm.apply { onStart(id = root, space = defaultSpace) } val expected = ViewState.Success( blocks = listOf( diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTextUpdateTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTextUpdateTest.kt index 7f6e9c32fc..363f71b4b9 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTextUpdateTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTextUpdateTest.kt @@ -96,7 +96,7 @@ class EditorTextUpdateTest : EditorPresentationTestSetup() { text = "ABCD" ) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = block.id, hasFocus = true @@ -168,7 +168,7 @@ class EditorTextUpdateTest : EditorPresentationTestSetup() { text = "ABCD" ) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = block.id, hasFocus = true @@ -241,7 +241,7 @@ class EditorTextUpdateTest : EditorPresentationTestSetup() { text = "ABCD" ) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = block.id, hasFocus = true @@ -315,7 +315,7 @@ class EditorTextUpdateTest : EditorPresentationTestSetup() { text = "ABCD" ) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onBlockFocusChanged( id = block.id, hasFocus = true diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTitleAddBlockTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTitleAddBlockTest.kt index f5078fe62d..273ffd178f 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTitleAddBlockTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTitleAddBlockTest.kt @@ -85,7 +85,7 @@ class EditorTitleAddBlockTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = title.id, hasFocus = true @@ -140,7 +140,7 @@ class EditorTitleAddBlockTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = title.id, hasFocus = true @@ -188,7 +188,7 @@ class EditorTitleAddBlockTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = title.id, hasFocus = true @@ -247,7 +247,7 @@ class EditorTitleAddBlockTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = title.id, hasFocus = true @@ -288,7 +288,7 @@ class EditorTitleAddBlockTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = title.id, hasFocus = true @@ -340,7 +340,7 @@ class EditorTitleAddBlockTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = title.id, hasFocus = true @@ -381,7 +381,7 @@ class EditorTitleAddBlockTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = title.id, hasFocus = true @@ -433,7 +433,7 @@ class EditorTitleAddBlockTest : EditorPresentationTestSetup() { // TESTING vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = title.id, hasFocus = true diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTitleTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTitleTest.kt index a508b5ad67..ff68d0507f 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTitleTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/EditorTitleTest.kt @@ -107,7 +107,7 @@ class EditorTitleTest : EditorPresentationTestSetup() { val commandTestObserver = vm.commands.test() vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged(title.id, true) onBlockToolbarBlockActionsClicked() } @@ -149,7 +149,7 @@ class EditorTitleTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -204,7 +204,7 @@ class EditorTitleTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -314,7 +314,7 @@ class EditorTitleTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING @@ -431,7 +431,7 @@ class EditorTitleTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) // TESTING diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/mention/MentionExtKtTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/mention/MentionExtKtTest.kt index f8d4ccc845..750307c1e9 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/mention/MentionExtKtTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/mention/MentionExtKtTest.kt @@ -10,13 +10,13 @@ import com.anytypeio.anytype.domain.misc.UrlBuilder import com.anytypeio.anytype.presentation.editor.editor.Markup import com.anytypeio.anytype.presentation.navigation.DefaultObjectView import com.anytypeio.anytype.test_utils.MockDataFactory +import kotlin.test.Test +import kotlin.test.assertEquals import net.lachlanmckee.timberjunit.TimberTestRule import org.junit.Before import org.junit.Rule import org.mockito.Mock import org.mockito.MockitoAnnotations -import kotlin.test.Test -import kotlin.test.assertEquals class MentionExtTest { @@ -36,16 +36,19 @@ class MentionExtTest { val mention1 = DefaultObjectView( id = MockDataFactory.randomUuid(), + space = MockDataFactory.randomUuid(), name = "abc" ) val mention2 = DefaultObjectView( id = MockDataFactory.randomUuid(), + space = MockDataFactory.randomUuid(), name = "Cde" ) val mention3 = DefaultObjectView( id = MockDataFactory.randomUuid(), + space = MockDataFactory.randomUuid(), name = "EfB" ) @@ -65,17 +68,20 @@ class MentionExtTest { val mention1 = DefaultObjectView( id = MockDataFactory.randomUuid(), - name = "abc" + name = "abc", + space = MockDataFactory.randomUuid(), ) val mention2 = DefaultObjectView( id = MockDataFactory.randomUuid(), - name = "Cde" + name = "Cde", + space = MockDataFactory.randomUuid(), ) val mention3 = DefaultObjectView( id = MockDataFactory.randomUuid(), - name = "EfB" + name = "EfB", + space = MockDataFactory.randomUuid(), ) val mentions = listOf(mention1, mention2, mention3) @@ -94,16 +100,19 @@ class MentionExtTest { val mention1 = DefaultObjectView( id = MockDataFactory.randomUuid(), + space = MockDataFactory.randomUuid(), name = "abc" ) val mention2 = DefaultObjectView( id = MockDataFactory.randomUuid(), + space = MockDataFactory.randomUuid(), name = "Cde" ) val mention3 = DefaultObjectView( id = MockDataFactory.randomUuid(), + space = MockDataFactory.randomUuid(), name = "EfB" ) @@ -123,16 +132,19 @@ class MentionExtTest { val mention1 = DefaultObjectView( id = MockDataFactory.randomUuid(), + space = MockDataFactory.randomUuid(), name = "abc" ) val mention2 = DefaultObjectView( id = MockDataFactory.randomUuid(), + space = MockDataFactory.randomUuid(), name = "Cde" ) val mention3 = DefaultObjectView( id = MockDataFactory.randomUuid(), + space = MockDataFactory.randomUuid(), name = "EfB" ) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/styling/EditorStyleBackgroundToolbarTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/styling/EditorStyleBackgroundToolbarTest.kt index 4b305dac96..406251d4b2 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/styling/EditorStyleBackgroundToolbarTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/styling/EditorStyleBackgroundToolbarTest.kt @@ -68,7 +68,7 @@ class EditorStyleBackgroundToolbarTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onClickListener(ListenerType.LongClick(target = paragraph.id)) vm.onMultiSelectAction(ActionItemType.Style) @@ -108,9 +108,9 @@ class EditorStyleBackgroundToolbarTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) with(vm) { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged(blockId, true) onBlockToolbarStyleClicked() onBlockFocusChanged(blockId, false) @@ -171,7 +171,7 @@ class EditorStyleBackgroundToolbarTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onClickListener(ListenerType.LongClick(target = block1.id)) vm.onTextInputClicked(target = block2.id) @@ -216,7 +216,7 @@ class EditorStyleBackgroundToolbarTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.onClickListener(ListenerType.LongClick(target = codeId)) vm.onMultiSelectAction(ActionItemType.Style) @@ -258,9 +258,9 @@ class EditorStyleBackgroundToolbarTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) with(vm) { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged(blockId, true) onBlockToolbarStyleClicked() onBlockFocusChanged(blockId, false) diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/table/EditorTableBlockTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/table/EditorTableBlockTest.kt index 75b5faaa87..a2eea1083f 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/table/EditorTableBlockTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/table/EditorTableBlockTest.kt @@ -74,7 +74,7 @@ class EditorTableBlockTest : EditorPresentationTestSetup() { val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onClickListener( @@ -150,7 +150,7 @@ class EditorTableBlockTest : EditorPresentationTestSetup() { stubOpenDocument(document) val vm = buildViewModel() - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) vm.apply { onClickListener( @@ -224,7 +224,7 @@ class EditorTableBlockTest : EditorPresentationTestSetup() { //TESTING val vm = buildViewModel() vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = cells[0].id, @@ -281,7 +281,7 @@ class EditorTableBlockTest : EditorPresentationTestSetup() { //TESTING val vm = buildViewModel() vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = cells[0].id, @@ -401,7 +401,7 @@ class EditorTableBlockTest : EditorPresentationTestSetup() { //TESTING val vm = buildViewModel() vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = cells[0].id, @@ -490,7 +490,7 @@ class EditorTableBlockTest : EditorPresentationTestSetup() { //TESTING val vm = buildViewModel() vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = cells[0].id, @@ -592,7 +592,7 @@ class EditorTableBlockTest : EditorPresentationTestSetup() { //TESTING Focus Cell[0] - Enter Table Mode - Click Cell[13] - Click Cell[11] - Click Tab COLUMN val vm = buildViewModel() vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = cells[0].id, @@ -704,7 +704,7 @@ class EditorTableBlockTest : EditorPresentationTestSetup() { //TESTING Click Cell[15] - Click Cell[0] - Click Cell[2] vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onClickListener( clicked = ListenerType.TableTextCell( @@ -879,7 +879,7 @@ class EditorTableBlockTest : EditorPresentationTestSetup() { //TESTING Click Cell[12] - Click Cell[10] vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onClickListener( clicked = ListenerType.TableTextCell( @@ -1039,7 +1039,7 @@ class EditorTableBlockTest : EditorPresentationTestSetup() { //TESTING Focus Cell[0] - Enter Table Mode - Click Tab COLUMN val vm = buildViewModel() vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = cells[0].id, @@ -1363,7 +1363,7 @@ class EditorTableBlockTest : EditorPresentationTestSetup() { // - main toolbar for cells is visible val vm = buildViewModel() vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = cells[0].id, diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/table/EditorTableMoveRowsColumnsTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/table/EditorTableMoveRowsColumnsTest.kt index d0d248ee5b..9d80255427 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/table/EditorTableMoveRowsColumnsTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/table/EditorTableMoveRowsColumnsTest.kt @@ -87,7 +87,7 @@ class EditorTableMoveRowsColumnsTest : EditorPresentationTestSetup() { val vm = buildViewModel() vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) fillTableRow.stub { onBlocking { @@ -1387,7 +1387,7 @@ class EditorTableMoveRowsColumnsTest : EditorPresentationTestSetup() { val vm = buildViewModel() vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) fillTableRow.stub { onBlocking { diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/table/EditorTableRowsColumnsDelete.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/table/EditorTableRowsColumnsDelete.kt index b11eddb1da..8ad4275557 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/table/EditorTableRowsColumnsDelete.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/table/EditorTableRowsColumnsDelete.kt @@ -58,7 +58,7 @@ class EditorTableRowsColumnsDelete : EditorPresentationTestSetup() { //TESTING Focus Cell[0] - Enter Table Mode - Click Tab ROW val vm = buildViewModel() vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = cells[0].id, @@ -150,7 +150,7 @@ class EditorTableRowsColumnsDelete : EditorPresentationTestSetup() { //TESTING Focus Cell[0] - Enter Table Mode - Click Tab COLUMN val vm = buildViewModel() vm.apply { - onStart(root) + onStart(id = root, space = defaultSpace) onBlockFocusChanged( id = cells[0].id, diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/template/EditorTemplateTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/template/EditorTemplateTest.kt index fc35ab1523..cee08425f6 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/template/EditorTemplateTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/editor/editor/template/EditorTemplateTest.kt @@ -68,7 +68,7 @@ class EditorTemplateTest: EditorPresentationTestSetup() { assertFalse(vm.isObjectTemplate()) - vm.onStart(root) + vm.onStart(id = root, space = defaultSpace) advanceUntilIdle() diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/mapper/ObjectWrapperExtensionsKtTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/mapper/ObjectWrapperExtensionsKtTest.kt index b2749f8940..056472ce04 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/mapper/ObjectWrapperExtensionsKtTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/mapper/ObjectWrapperExtensionsKtTest.kt @@ -2,16 +2,18 @@ package com.anytypeio.anytype.presentation.mapper import com.anytypeio.anytype.core_models.ObjectType import com.anytypeio.anytype.core_models.ObjectWrapper +import com.anytypeio.anytype.core_models.Relations import com.anytypeio.anytype.domain.misc.UrlBuilder import com.anytypeio.anytype.presentation.objects.toView +import com.anytypeio.anytype.test_utils.MockDataFactory +import kotlin.test.assertEquals +import kotlin.test.assertNull import org.junit.Before import org.junit.Test import org.mockito.Mock import org.mockito.MockitoAnnotations import org.mockito.kotlin.doReturn import org.mockito.kotlin.stub -import kotlin.test.assertEquals -import kotlin.test.assertNull class ObjectWrapperExtensionsKtTest { @@ -82,6 +84,7 @@ class ObjectWrapperExtensionsKtTest { val obj = ObjectWrapper.Basic( mapOf( "id" to "Ef6", + Relations.SPACE_ID to MockDataFactory.randomUuid(), "name" to "LmL7R", "snippet" to "OMr2Y", "layout" to ObjectType.Layout.NOTE.code.toDouble() @@ -105,6 +108,7 @@ class ObjectWrapperExtensionsKtTest { val obj = ObjectWrapper.Basic( mapOf( "id" to "Ef6", + Relations.SPACE_ID to MockDataFactory.randomUuid(), "name" to "LmL7R", "snippet" to "OMr2Y", "layout" to ObjectType.Layout.BASIC.code.toDouble() @@ -126,6 +130,7 @@ class ObjectWrapperExtensionsKtTest { val obj = ObjectWrapper.Basic( mapOf( "id" to "Ef6", + Relations.SPACE_ID to MockDataFactory.randomUuid(), "name" to "LmL7R", "snippet" to "Anytype\nis\nnext-generation software that\n" + "works like\nyour brain does. It solves everyday\n" + diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/ViewerDefaultObjectTypeTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/ViewerDefaultObjectTypeTest.kt index e0ccf7ff75..c5f0513a73 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/ViewerDefaultObjectTypeTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/ViewerDefaultObjectTypeTest.kt @@ -74,7 +74,7 @@ class ViewerDefaultObjectTypeTest : ObjectSetViewModelTestSetup() { fun `set by type should has this type for all views default object type ids`() = runTest { val setOfValue = MockDataFactory.randomUuid() - mockSetByType = MockSet(context = root, setOfValue = setOfValue) + mockSetByType = MockSet(context = root, setOfValue = setOfValue, space = defaultSpace) with(mockSetByType) { stubSpaceManager(spaceId) @@ -117,7 +117,7 @@ class ViewerDefaultObjectTypeTest : ObjectSetViewModelTestSetup() { stubTemplatesForTemplatesContainer() } - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -150,7 +150,8 @@ class ViewerDefaultObjectTypeTest : ObjectSetViewModelTestSetup() { mockSetByRelation = MockSet( context = root, - setOfValue = MockSet("").relationObject3.id + space = defaultSpace, + setOfValue = MockSet("", space = defaultSpace).relationObject3.id ) with(mockSetByRelation) { @@ -194,7 +195,7 @@ class ViewerDefaultObjectTypeTest : ObjectSetViewModelTestSetup() { stubTemplatesForTemplatesContainer() } - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -225,7 +226,7 @@ class ViewerDefaultObjectTypeTest : ObjectSetViewModelTestSetup() { @Test fun `collection should has proper views default object type ids`() = runTest { - mockCollection = MockCollection(context = root) + mockCollection = MockCollection(context = root, space = defaultSpace) with(mockCollection) { stubSpaceManager(spaceId) stubStoreOfRelations(this) @@ -274,7 +275,7 @@ class ViewerDefaultObjectTypeTest : ObjectSetViewModelTestSetup() { stubTemplatesForTemplatesContainer() } - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -301,4 +302,8 @@ class ViewerDefaultObjectTypeTest : ObjectSetViewModelTestSetup() { actual = result.items.size ) } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetCellTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetCellTest.kt index 1b22862a04..bba1b586ab 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetCellTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetCellTest.kt @@ -24,7 +24,7 @@ class ObjectSetCellTest : ObjectSetViewModelTestSetup() { fun setup() { MockitoAnnotations.openMocks(this) viewModel = givenViewModel() - mockObjectSet = MockSet(context = root) + mockObjectSet = MockSet(context = root, space = defaultSpace) } @After @@ -62,7 +62,7 @@ class ObjectSetCellTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -98,4 +98,8 @@ class ObjectSetCellTest : ObjectSetViewModelTestSetup() { } } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file 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 5d19e3fe33..746b24bd6e 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 @@ -31,7 +31,7 @@ class ObjectSetConvertToCollectionTest : ObjectSetViewModelTestSetup() { fun setup() { MockitoAnnotations.openMocks(this) viewModel = givenViewModel() - mockObjectSet = MockSet(context = root) + mockObjectSet = MockSet(context = root, space = defaultSpace) stubGetDefaultPageType() } @@ -43,7 +43,7 @@ class ObjectSetConvertToCollectionTest : ObjectSetViewModelTestSetup() { @Test fun `should start collection subscription after changing from set to collection`() = runTest { // SETUP - stubSpaceManager(mockObjectSet.spaceId) + stubSpaceManager(defaultSpace) stubInterceptEvents() stubInterceptThreadStatus() stubOpenObject( @@ -64,7 +64,7 @@ class ObjectSetConvertToCollectionTest : ObjectSetViewModelTestSetup() { // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() val firstState = stateFlow.awaitItem() assertIs(firstState) @@ -113,4 +113,8 @@ class ObjectSetConvertToCollectionTest : ObjectSetViewModelTestSetup() { ) } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetDataViewObjectCreateTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetDataViewObjectCreateTest.kt index 0e7907cf19..79432e6411 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetDataViewObjectCreateTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetDataViewObjectCreateTest.kt @@ -42,8 +42,8 @@ class ObjectSetDataViewObjectCreateTest : ObjectSetViewModelTestSetup() { fun setup() { MockitoAnnotations.openMocks(this) viewModel = givenViewModel() - mockObjectSet = MockSet(context = root, setOfValue = setOfId, setOfKey = setOfKey) - mockObjectCollection = MockCollection(context = root) + mockObjectSet = MockSet(context = root, setOfValue = setOfId, setOfKey = setOfKey, space = defaultSpace) + mockObjectCollection = MockCollection(context = root, space = defaultSpace) stubNetworkMode() } @@ -81,7 +81,7 @@ class ObjectSetDataViewObjectCreateTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -134,7 +134,7 @@ class ObjectSetDataViewObjectCreateTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -192,7 +192,7 @@ class ObjectSetDataViewObjectCreateTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -228,7 +228,7 @@ class ObjectSetDataViewObjectCreateTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -241,4 +241,8 @@ class ObjectSetDataViewObjectCreateTest : ObjectSetViewModelTestSetup() { assertTrue(second.isCreateObjectAllowed) } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetHeaderTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetHeaderTest.kt index a43e8dbf6a..96f0f35853 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetHeaderTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetHeaderTest.kt @@ -22,7 +22,7 @@ class ObjectSetHeaderTest : ObjectSetViewModelTestSetup() { fun setup() { MockitoAnnotations.openMocks(this) viewModel = givenViewModel() - mockObjectSet = MockSet(context = root) + mockObjectSet = MockSet(context = root, space = defaultSpace) } @After @@ -59,7 +59,7 @@ class ObjectSetHeaderTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -114,7 +114,7 @@ class ObjectSetHeaderTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -135,4 +135,8 @@ class ObjectSetHeaderTest : ObjectSetViewModelTestSetup() { ) } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetInitializationTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetInitializationTest.kt index a7952277a9..a73d426472 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetInitializationTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetInitializationTest.kt @@ -23,7 +23,7 @@ class ObjectSetInitializationTest : ObjectSetViewModelTestSetup() { fun setup() { MockitoAnnotations.openMocks(this) viewModel = givenViewModel() - mockObjectSet = MockSet(context = root) + mockObjectSet = MockSet(context = root, space = defaultSpace) } @After @@ -43,10 +43,14 @@ class ObjectSetInitializationTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() viewModel.proceedWithDataViewObjectCreate() // ASSERT verifyNoInteractions(createObject) } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetNavigationTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetNavigationTest.kt index 383af791db..594898bd9c 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetNavigationTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetNavigationTest.kt @@ -39,7 +39,7 @@ class ObjectSetNavigationTest : ObjectSetViewModelTestSetup() { fun setup() { closable = MockitoAnnotations.openMocks(this) viewModel = givenViewModel() - mockObjectSet = MockSet(context = root) + mockObjectSet = MockSet(context = root, space = defaultSpace) stubNetworkMode() } @@ -71,7 +71,7 @@ class ObjectSetNavigationTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -135,7 +135,7 @@ class ObjectSetNavigationTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -192,7 +192,7 @@ class ObjectSetNavigationTest : ObjectSetViewModelTestSetup() { doReturn(Unit).`when`(closeBlock).async(mockObjectSet.root) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -231,6 +231,7 @@ class ObjectSetNavigationTest : ObjectSetViewModelTestSetup() { val objectUnsupportedLayout = ObjectWrapper.Basic( mapOf( Relations.ID to "objectUnsupportedLayout-${RandomString.make()}", + Relations.SPACE_ID to mockObjectSet.spaceId, Relations.LAYOUT to unsupportedLayout.code.toDouble() ) ) @@ -247,7 +248,7 @@ class ObjectSetNavigationTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -270,4 +271,8 @@ class ObjectSetNavigationTest : ObjectSetViewModelTestSetup() { verifyNoInteractions(closeBlock) } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetRestrictionsTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetRestrictionsTest.kt index b458d2efb2..e8985a86d3 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetRestrictionsTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetRestrictionsTest.kt @@ -25,7 +25,7 @@ class ObjectSetRestrictionsTest : ObjectSetViewModelTestSetup() { fun setup() { MockitoAnnotations.openMocks(this) viewModel = givenViewModel() - mockObjectSet = MockSet(context = root) + mockObjectSet = MockSet(context = root, space = defaultSpace) } @After @@ -60,7 +60,7 @@ class ObjectSetRestrictionsTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -106,7 +106,7 @@ class ObjectSetRestrictionsTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -152,7 +152,7 @@ class ObjectSetRestrictionsTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -198,7 +198,7 @@ class ObjectSetRestrictionsTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -244,7 +244,7 @@ class ObjectSetRestrictionsTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -262,4 +262,8 @@ class ObjectSetRestrictionsTest : ObjectSetViewModelTestSetup() { } } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file 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 0ed62b476f..d4ea5f039c 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 @@ -93,6 +93,7 @@ import org.mockito.kotlin.stub open class ObjectSetViewModelTestSetup { val root: Id = "context-${RandomString.make()}" + val defaultSpace = MockDataFactory.randomUuid() @OptIn(ExperimentalCoroutinesApi::class) @get:Rule diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetZeroDataViewTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetZeroDataViewTest.kt index 65ff860fe8..25dcbc360d 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetZeroDataViewTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetZeroDataViewTest.kt @@ -1,6 +1,7 @@ package com.anytypeio.anytype.presentation.sets.main import com.anytypeio.anytype.core_models.Block +import com.anytypeio.anytype.presentation.sets.ObjectSetViewModel import com.anytypeio.anytype.test_utils.MockDataFactory import kotlin.test.assertEquals import org.junit.Before @@ -56,7 +57,7 @@ class ObjectSetZeroDataViewTest : ObjectSetViewModelTestSetup() { actual = vm.error.value ) - vm.onStart(root) + proceedWithStartingViewModel(vm) assertEquals( expected = false, @@ -93,7 +94,11 @@ class ObjectSetZeroDataViewTest : ObjectSetViewModelTestSetup() { actual = vm.error.value ) - vm.onStart(root) + proceedWithStartingViewModel(vm) vm.onExpandViewerMenuClicked() } + + private fun proceedWithStartingViewModel(vm: ObjectSetViewModel) { + vm.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetZeroViewTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetZeroViewTest.kt index 4042c88bb3..084c61098c 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetZeroViewTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/ObjectSetZeroViewTest.kt @@ -3,6 +3,7 @@ package com.anytypeio.anytype.presentation.sets.main import com.anytypeio.anytype.core_models.Block import com.anytypeio.anytype.core_models.DV import com.anytypeio.anytype.core_models.Relations +import com.anytypeio.anytype.presentation.sets.ObjectSetViewModel import com.anytypeio.anytype.test_utils.MockDataFactory import org.junit.Before import org.junit.Test @@ -73,10 +74,14 @@ class ObjectSetZeroViewTest : ObjectSetViewModelTestSetup() { // TESTING - vm.onStart(root) + proceedWithStartingViewModel(vm) vm.onViewerCustomizeButtonClicked() vm.onViewerSortsClicked() vm.onViewerFiltersClicked() vm.onViewerSettingsClicked("") } + + private fun proceedWithStartingViewModel(vm: ObjectSetViewModel) { + vm.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/SetByRelationTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/SetByRelationTest.kt index 51d9da80d0..0cbc6959b0 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/SetByRelationTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/sets/main/SetByRelationTest.kt @@ -32,7 +32,7 @@ class SetByRelationTest : ObjectSetViewModelTestSetup() { fun setup() { closable = MockitoAnnotations.openMocks(this) viewModel = givenViewModel() - mockObjectSet = MockSet(context = root, setOfValue = setOfId, setOfKey = setOfKey) + mockObjectSet = MockSet(context = root, setOfValue = setOfId, setOfKey = setOfKey, space = defaultSpace) stubNetworkMode() } @@ -72,7 +72,7 @@ class SetByRelationTest : ObjectSetViewModelTestSetup() { ) // TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() // ASSERT DATA VIEW STATE viewModel.currentViewer.test { @@ -100,4 +100,8 @@ class SetByRelationTest : ObjectSetViewModelTestSetup() { } } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/templates/CollectionViewerTypeAndTemplateTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/templates/CollectionViewerTypeAndTemplateTest.kt index b817650857..8048ecc69c 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/templates/CollectionViewerTypeAndTemplateTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/templates/CollectionViewerTypeAndTemplateTest.kt @@ -92,7 +92,7 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { */ @Test fun `collection, view type and template are empty, page template empty`() = runTest { - val spaceId = RandomString.make() + val spaceId = defaultSpace val subscriptionId = DefaultDataViewSubscription.getSubscriptionId(root) val relationObject1 = StubRelationObject() val dvViewerRelation1 = @@ -151,7 +151,7 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -184,7 +184,7 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { */ @Test fun `set by relation, view type and template are empty, page template blank`() = runTest { - val spaceId = RandomString.make() + val spaceId = defaultSpace val subscriptionId = DefaultDataViewSubscription.getSubscriptionId(root) val relationObject1 = StubRelationObject() val dvViewerRelation1 = @@ -243,7 +243,7 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -276,7 +276,7 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { */ @Test fun `collection, view type and template are empty, page template custom`() = runTest { - val spaceId = RandomString.make() + val spaceId = defaultSpace val subscriptionId = DefaultDataViewSubscription.getSubscriptionId(root) val relationObject1 = StubRelationObject() val dvViewerRelation1 = @@ -335,7 +335,7 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -368,7 +368,7 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { */ @Test fun `collection, view type custom and template is empty`() = runTest { - val spaceId = RandomString.make() + val spaceId = defaultSpace val subscriptionId = DefaultDataViewSubscription.getSubscriptionId(root) val relationObject1 = StubRelationObject() val dvViewerRelation1 = @@ -427,7 +427,7 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -460,7 +460,7 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { */ @Test fun `collection, view type is custom and template is blank`() = runTest { - val spaceId = RandomString.make() + val spaceId = defaultSpace val subscriptionId = DefaultDataViewSubscription.getSubscriptionId(root) val relationObject1 = StubRelationObject() val dvViewerRelation1 = @@ -519,7 +519,7 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -552,7 +552,7 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { */ @Test fun `collection, view type is custom and template is not empty`() = runTest { - val spaceId = RandomString.make() + val spaceId = defaultSpace val subscriptionId = DefaultDataViewSubscription.getSubscriptionId(root) val relationObject1 = StubRelationObject() val dvViewerRelation1 = @@ -611,7 +611,7 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -635,4 +635,8 @@ class CollectionViewerTypeAndTemplateTest: ObjectSetViewModelTestSetup() { async(params) } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/templates/SetByRelationViewerTypeAndTemplateTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/templates/SetByRelationViewerTypeAndTemplateTest.kt index 09942ef296..809c965e17 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/templates/SetByRelationViewerTypeAndTemplateTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/templates/SetByRelationViewerTypeAndTemplateTest.kt @@ -158,7 +158,7 @@ class SetByRelationViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -248,7 +248,7 @@ class SetByRelationViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -338,7 +338,7 @@ class SetByRelationViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -439,7 +439,7 @@ class SetByRelationViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -540,7 +540,7 @@ class SetByRelationViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -641,7 +641,7 @@ class SetByRelationViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -742,7 +742,7 @@ class SetByRelationViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -843,7 +843,7 @@ class SetByRelationViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -867,4 +867,8 @@ class SetByRelationViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { async(params) } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/presentation/src/test/java/com/anytypeio/anytype/presentation/templates/SetByTypeViewerTypeAndTemplateTest.kt b/presentation/src/test/java/com/anytypeio/anytype/presentation/templates/SetByTypeViewerTypeAndTemplateTest.kt index 91b389b524..58bf78e9a2 100644 --- a/presentation/src/test/java/com/anytypeio/anytype/presentation/templates/SetByTypeViewerTypeAndTemplateTest.kt +++ b/presentation/src/test/java/com/anytypeio/anytype/presentation/templates/SetByTypeViewerTypeAndTemplateTest.kt @@ -132,7 +132,7 @@ class SetByTypeViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -221,7 +221,7 @@ class SetByTypeViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -310,7 +310,7 @@ class SetByTypeViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -413,7 +413,7 @@ class SetByTypeViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -502,7 +502,7 @@ class SetByTypeViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -591,7 +591,7 @@ class SetByTypeViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { stubCreateDataViewObject() //TESTING - viewModel.onStart(ctx = root) + proceedWithStartingViewModel() advanceUntilIdle() @@ -615,4 +615,8 @@ class SetByTypeViewerTypeAndTemplateTest : ObjectSetViewModelTestSetup() { async(params) } } + + private fun proceedWithStartingViewModel() { + viewModel.onStart(ctx = root, space = defaultSpace) + } } \ No newline at end of file diff --git a/test/core-models-stub/src/main/java/com/anytypeio/anytype/core_models/Object.kt b/test/core-models-stub/src/main/java/com/anytypeio/anytype/core_models/Object.kt index f997be6c92..c39e02b46c 100644 --- a/test/core-models-stub/src/main/java/com/anytypeio/anytype/core_models/Object.kt +++ b/test/core-models-stub/src/main/java/com/anytypeio/anytype/core_models/Object.kt @@ -6,6 +6,7 @@ import com.anytypeio.anytype.test_utils.MockDataFactory fun StubObject( id: String = MockDataFactory.randomUuid(), + space: Id = MockDataFactory.randomUuid(), uniqueKey: String? = MockDataFactory.randomUuid(), name: String = MockDataFactory.randomString(), objectType: String = MockDataFactory.randomString(), @@ -22,6 +23,7 @@ fun StubObject( ): ObjectWrapper.Basic = ObjectWrapper.Basic( map = mapOf( Relations.ID to id, + Relations.SPACE_ID to space, Relations.NAME to name, Relations.TYPE to objectType, Relations.LAYOUT to layout,