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 231858f59d..e95bcbbe1a 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 @@ -75,13 +75,6 @@ class ComponentManager(private val main: MainComponent) { .build() } - val profileComponent = Component { - main - .profileComponentBuilder() - .profileModule(ProfileModule) - .build() - } - val debugSettingsComponent = Component { main .debugSettingsBuilder() diff --git a/app/src/main/java/com/anytypeio/anytype/di/feature/ProfileDI.kt b/app/src/main/java/com/anytypeio/anytype/di/feature/ProfileDI.kt deleted file mode 100644 index 82cd8055cc..0000000000 --- a/app/src/main/java/com/anytypeio/anytype/di/feature/ProfileDI.kt +++ /dev/null @@ -1,72 +0,0 @@ -package com.anytypeio.anytype.di.feature - -import com.anytypeio.anytype.analytics.base.Analytics -import com.anytypeio.anytype.core_utils.di.scope.PerScreen -import com.anytypeio.anytype.domain.auth.interactor.GetCurrentAccount -import com.anytypeio.anytype.domain.auth.interactor.GetLibraryVersion -import com.anytypeio.anytype.domain.auth.interactor.Logout -import com.anytypeio.anytype.domain.auth.repo.AuthRepository -import com.anytypeio.anytype.domain.block.repo.BlockRepository -import com.anytypeio.anytype.domain.misc.UrlBuilder -import com.anytypeio.anytype.presentation.profile.ProfileViewModelFactory -import com.anytypeio.anytype.ui.profile.ProfileFragment -import dagger.Module -import dagger.Provides -import dagger.Subcomponent - - -@Subcomponent( - modules = [ProfileModule::class] -) -@PerScreen -interface ProfileSubComponent { - - @Subcomponent.Builder - interface Builder { - fun profileModule(module: ProfileModule): Builder - fun build(): ProfileSubComponent - } - - fun inject(fragment: ProfileFragment) -} - -@Module -object ProfileModule { - - @JvmStatic - @Provides - @PerScreen - fun provideProfileViewModelFactory( - logout: Logout, - getCurrentAccount: GetCurrentAccount, - analytics: Analytics, - getLibraryVersion: GetLibraryVersion - ): ProfileViewModelFactory = ProfileViewModelFactory( - logout = logout, - getCurrentAccount = getCurrentAccount, - analytics = analytics, - getLibraryVersion = getLibraryVersion - ) - - @JvmStatic - @Provides - @PerScreen - fun provideLogoutUseCase( - repository: AuthRepository - ): Logout = Logout(repository) - - @JvmStatic - @Provides - @PerScreen - fun provideGetAccountUseCase( - repo: BlockRepository, - builder: UrlBuilder - ): GetCurrentAccount = GetCurrentAccount(repo = repo, builder = builder) - - @JvmStatic - @Provides - @PerScreen - fun provideGetVersion( - repo: AuthRepository - ): GetLibraryVersion = GetLibraryVersion(repo) -} \ No newline at end of file diff --git a/app/src/main/java/com/anytypeio/anytype/di/main/DataModule.kt b/app/src/main/java/com/anytypeio/anytype/di/main/DataModule.kt index dfa6fe7856..dbcd7476db 100644 --- a/app/src/main/java/com/anytypeio/anytype/di/main/DataModule.kt +++ b/app/src/main/java/com/anytypeio/anytype/di/main/DataModule.kt @@ -22,7 +22,6 @@ import com.anytypeio.anytype.domain.block.repo.BlockRepository import com.anytypeio.anytype.domain.config.FlavourConfigProvider import com.anytypeio.anytype.domain.config.InfrastructureRepository import com.anytypeio.anytype.domain.config.UserSettingsRepository -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository import com.anytypeio.anytype.domain.device.PathProvider import com.anytypeio.anytype.domain.misc.AppActionManager import com.anytypeio.anytype.domain.objects.DefaultObjectStore @@ -237,11 +236,6 @@ object DataModule { @Singleton fun provideMiddlewareService(): MiddlewareService = MiddlewareServiceImplementation() - @JvmStatic - @Provides - @Singleton - fun provideDatabaseRepo(): DatabaseRepository = DatabaseDataRepository() - @JvmStatic @Provides @Singleton diff --git a/app/src/main/java/com/anytypeio/anytype/di/main/MainComponent.kt b/app/src/main/java/com/anytypeio/anytype/di/main/MainComponent.kt index 84c4a5e58a..85081a21d1 100644 --- a/app/src/main/java/com/anytypeio/anytype/di/main/MainComponent.kt +++ b/app/src/main/java/com/anytypeio/anytype/di/main/MainComponent.kt @@ -28,7 +28,6 @@ interface MainComponent { fun inject(app: AndroidApplication) fun authComponentBuilder(): AuthSubComponent.Builder - fun profileComponentBuilder(): ProfileSubComponent.Builder fun splashComponentBuilder(): SplashSubComponent.Builder fun homeDashboardComponentBuilder(): HomeDashboardSubComponent.Builder fun editorComponentBuilder(): EditorSubComponent.Builder diff --git a/app/src/main/java/com/anytypeio/anytype/ui/profile/ProfileFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/profile/ProfileFragment.kt deleted file mode 100644 index b4c5d874e1..0000000000 --- a/app/src/main/java/com/anytypeio/anytype/ui/profile/ProfileFragment.kt +++ /dev/null @@ -1,116 +0,0 @@ -package com.anytypeio.anytype.ui.profile - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.fragment.app.viewModels -import androidx.lifecycle.Lifecycle -import androidx.lifecycle.lifecycleScope -import androidx.lifecycle.repeatOnLifecycle -import androidx.navigation.fragment.findNavController -import com.anytypeio.anytype.BuildConfig -import com.anytypeio.anytype.R -import com.anytypeio.anytype.core_ui.extensions.avatarColor -import com.anytypeio.anytype.core_utils.ext.firstDigitByHash -import com.anytypeio.anytype.core_utils.ext.invisible -import com.anytypeio.anytype.core_utils.ext.toast -import com.anytypeio.anytype.core_utils.ext.visible -import com.anytypeio.anytype.core_utils.ui.ViewState -import com.anytypeio.anytype.databinding.FragmentProfileBinding -import com.anytypeio.anytype.di.common.componentManager -import com.anytypeio.anytype.presentation.profile.ProfileView -import com.anytypeio.anytype.presentation.profile.ProfileViewModel -import com.anytypeio.anytype.presentation.profile.ProfileViewModelFactory -import com.anytypeio.anytype.ui.base.ViewStateFragment -import kotlinx.coroutines.launch -import javax.inject.Inject - -@Deprecated("To be deleted") -class ProfileFragment : ViewStateFragment, FragmentProfileBinding>(R.layout.fragment_profile) { - - @Inject - lateinit var factory: ProfileViewModelFactory - private val vm by viewModels { factory } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - vm.state.observe(viewLifecycleOwner, this) - vm.version.observe(viewLifecycleOwner) { version(it) } - vm.navigation.observe(viewLifecycleOwner, navObserver) - binding.backButtonContainer.setOnClickListener { vm.onBackButtonClicked() } - viewLifecycleOwner.lifecycleScope.launch { - viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { - vm.isLoggingOut.collect { isLoggingOut -> - if (isLoggingOut) - binding.logoutProgressBar.visible() - else - binding.logoutProgressBar.invisible() - } - } - } - vm.onViewCreated() - } - - override fun render(state: ViewState) { - when (state) { - is ViewState.Init -> { - with(binding) { - wallpaperText.setOnClickListener { - findNavController().navigate(R.id.wallpaperSetScreen) - } - logoutButton.setOnClickListener { vm.onLogoutClicked() } - pinCodeText.setOnClickListener { - vm.onPinCodeClicked() - toast("Coming soon...") - } - keychainPhrase.setOnClickListener { vm.onKeyChainPhraseClicked() } - backButton.setOnClickListener { vm.onBackButtonClicked() } - profileCardContainer.setOnClickListener { vm.onProfileCardClicked() } - userSettingsText.setOnClickListener { vm.onUserSettingsClicked() } - - if (BuildConfig.DEBUG) { - with(debugSettingsButton) { - visible() - setOnClickListener { vm.onDebugSettingsClicked() } - } - } - } - } - is ViewState.Success -> { - binding.name.text = state.data.name - val pos = state.data.name.firstDigitByHash() - binding.avatar.bind( - name = state.data.name, - color = requireContext().avatarColor(pos) - ) - state.data.avatar?.let { binding.avatar.icon(it) } - } - is ViewState.Error -> {} - ViewState.Loading -> {} - } - } - - private fun version(version: String) { - if (version.isEmpty()) { - binding.tvVersion.text = "Android v${BuildConfig.VERSION_NAME}-alpha" - } else { - binding.tvVersion.text = "Android v${BuildConfig.VERSION_NAME}-alpha ($version)" - } - } - - override fun injectDependencies() { - componentManager().profileComponent.get().inject(this) - } - - override fun releaseDependencies() { - componentManager().profileComponent.release() - } - - override fun inflateBinding( - inflater: LayoutInflater, - container: ViewGroup? - ): FragmentProfileBinding = FragmentProfileBinding.inflate( - inflater, container, false - ) -} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_modals_nav.xml b/app/src/main/res/layout/fragment_modals_nav.xml index 6f3246cf60..d3fc5445e4 100644 --- a/app/src/main/res/layout/fragment_modals_nav.xml +++ b/app/src/main/res/layout/fragment_modals_nav.xml @@ -1,10 +1,7 @@ + android:layout_height="wrap_content"> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml deleted file mode 100644 index 21ddfb4f75..0000000000 --- a/app/src/main/res/layout/fragment_profile.xml +++ /dev/null @@ -1,326 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data/src/main/java/com/anytypeio/anytype/data/auth/repo/DatabaseDataRepository.kt b/data/src/main/java/com/anytypeio/anytype/data/auth/repo/DatabaseDataRepository.kt deleted file mode 100644 index 00d306e1dd..0000000000 --- a/data/src/main/java/com/anytypeio/anytype/data/auth/repo/DatabaseDataRepository.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.anytypeio.anytype.data.auth.repo - -import com.anytypeio.anytype.domain.database.DatabaseMock -import com.anytypeio.anytype.domain.database.model.DatabaseView -import com.anytypeio.anytype.domain.database.model.ViewType -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository - -class DatabaseDataRepository : DatabaseRepository { - - private var db: DatabaseView - - init { - db = DatabaseMock.getDatabaseView(DatabaseMock.ID) - } - - override fun getDatabase(id: String): DatabaseView = db - - override fun updateDatabase(databse: DatabaseView) { - db = databse - } - - override fun updateViewType(type: ViewType) { - db.let { - val list = it.content.displays - list[0] = list.first().copy(type = type) - db = it.copy(content = it.content.copy(displays = list)) - } - } -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/ContactsMock.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/ContactsMock.kt deleted file mode 100644 index 0ca9cb61bc..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/ContactsMock.kt +++ /dev/null @@ -1,87 +0,0 @@ -package com.anytypeio.anytype.domain.database - -import com.anytypeio.anytype.domain.database.model.Contact -import com.anytypeio.anytype.domain.database.model.Tag - -object ContactsMock { - - val CONTACTS = listOf( - Contact( - id = "kfgonk;lmkmvkld8", - name = "Fred Scott", - date = 1571328513000, - tags = listOf( - Tag( - "777", - "Family" - ) - ), - icon = "" - ), - Contact( - id = "bjcbdjdfb", - name = "Tomas Hale", - date = 1492387200000, - tags = listOf( - Tag("333", "Team"), - Tag("111", "Core") - ), - icon = "" - ), - Contact( - id = "sadfsdas", - name = "Anton Lurie", - date = 1574351513000, - tags = listOf( - Tag("333", "Team"), - Tag("222", "Design") - ), - icon = "" - ), - Contact( - id = "hfjhfgjkshjdh", - name = "Anna Lee", - date = 1571328513000, - tags = listOf( - Tag("333", "Team"), - Tag("555", "Product") - ), - icon = "" - ), - Contact( - id = "zfjh3hjdh", - name = "Neil Keaton", - date = 1571328513000, - tags = listOf( - Tag("777", "Family") - ), - icon = "" - ), - Contact( - id = "dshjfhskdh", - name = "Greg Phillips", - date = 1571328513000, - tags = listOf( - Tag("333", "Team"), - Tag( - "444", - "Programming" - ) - ), - icon = "" - ), - Contact( - id = "sadwcdweew", - name = "Roman Blum", - date = 1571328513000, - tags = listOf( - Tag("333", "Team"), - Tag( - "444", - "Programming" - ) - ), - icon = "" - ) - ) -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/DatabaseMock.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/DatabaseMock.kt deleted file mode 100644 index b5348d4ce4..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/DatabaseMock.kt +++ /dev/null @@ -1,136 +0,0 @@ -package com.anytypeio.anytype.domain.database - -import com.anytypeio.anytype.domain.database.model.* - -object DatabaseMock { - - const val ID = "343253" - - fun getDatabaseView(id: String): DatabaseView { - - val details = listOf( - Detail.Number(id = "21", name = "Id", show = true), - Detail.Title(id = "22", name = "Name", show = true), - Detail.Email(id = "24", name = "E-mail", show = true), - Detail.Date(id = "25", name = "Date", show = true), - Detail.Select( - id = "26", - name = "Select", - select = setOf("select1", "select2", "select3"), - show = true - ), - Detail.Multiple( - id = "27", - name = "Multiple", - multiSelect = setOf( - "multiple1", - "multiple2", - "multiple3", - "multiple4", - "multiple5" - ), - show = true - ), - Detail.Person( - id = "38", - name = "Account", - accounts = setOf( - Value(name = "Gennadiy Gusarov"), - Value(name = "Eduard Streltsov") - ), - show = false - ), - Detail.File(id = "49", name = "File", show = true), - Detail.Bool(id = "510", name = "Bool", show = true), - Detail.Link(id = "711", name = "Link", show = true), - Detail.Phone(id = "3312", name = "Phone", show = true), - Detail.Text(id = "213", name = "Phone", show = true), - Detail.Text(id = "214", name = "Phone", show = true), - Detail.Text(id = "215", name = "Phone", show = true), - Detail.Text(id = "216", name = "Phone", show = true), - Detail.Text(id = "217", name = "Phone", show = true), - Detail.Text(id = "218", name = "Phone", show = true), - Detail.Text(id = "219", name = "Phone", show = true), - Detail.Text(id = "220", name = "Phone", show = true) - ) - - val data1: HashMap = hashMapOf( - "1" to "1", - "2" to "Valentin Ivanov", - "4" to "ivanov@gmail.com", - "5" to 1420200661, - "6" to "select1", - "11" to "httpto//anytype.io", - "12" to "+7 (1234) 5678910", - "7" to arrayOf("value1", "value2", "value3"), - "10" to true, - "8" to { "name" to "Eduard Streltsov" } - ) - - val data2: HashMap = hashMapOf( - "1" to "2", - "2" to "Eduard Streltsov", - "4" to "streltsov@gmail.com", - "5" to 1420200661, - "6" to "select2", - "11" to "ftp://anytype.io" - ) - - val data3: HashMap = hashMapOf( - "1" to "3", - "2" to "Gennadiy Gusarov", - "4" to "gusarov@gmail.com", - "5" to 1420200662, - "6" to "select3", - "11" to "telnet://anytype.io" - ) - - val data4: HashMap = hashMapOf( - "1" to "4", - "2" to "Georgiy Zharkov", - "4" to "zharkov@gmail.com", - "5" to 1420200662, - "6" to "select4", - "11" to "https://anytype.io" - ) - - val data5: HashMap = hashMapOf( - "1" to "5", - "2" to "Pyotr Petrov", - "4" to "ppetrov@gmail.com", - "5" to 1420200663, - "6" to "select5" - ) - - val data = listOf(data1, data2, data3, data4, data5) - - val views = mutableListOf( - Display( - id = "1", - type = ViewType.LIST, - name = "Нобелевские лауреаты 2019", - filters = listOf( - Filter( - detailId = "1", - value = "", - condition = FilterTypeCondition.NONE, - equality = FilterTypeEquality.EQUAL - ) - ) - ) - ) - - val contentDatabaseView = ContentDatabaseView( - data = data, - details = details, - databaseId = ID, - displays = views - ) - - if (id == contentDatabaseView.databaseId) { - return DatabaseView(content = contentDatabaseView) - } else { - throw RuntimeException("Wrong Id") - } - } -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/FilterMock.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/FilterMock.kt deleted file mode 100644 index 7781bccb17..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/FilterMock.kt +++ /dev/null @@ -1,67 +0,0 @@ -package com.anytypeio.anytype.domain.database - -import com.anytypeio.anytype.domain.database.model.* - -const val ALL_ID = "-2" -const val PLUS_ID = "-1" - -object FilterMock { - - val FILTER_ALL = Filter( - detailId = ALL_ID, - condition = FilterTypeCondition.NONE, - equality = FilterTypeEquality.EQUAL, - value = "All" - ) - -// val FILTER_PLUS = Filter( -// propertyId = PLUS_ID, -// condition = FilterTypeCondition.NONE, -// equality = FilterTypeEquality.EQUAL, -// value = "Plus" -// ) - - var filters = mutableListOf( - Filter( - detailId = "333", - condition = FilterTypeCondition.NONE, - equality = FilterTypeEquality.EQUAL, - value = "Team" - ), - Filter( - detailId = "777", - condition = FilterTypeCondition.NONE, - equality = FilterTypeEquality.EQUAL, - value = "Family" - ), -// Filter( -// propertyId = "333", -// condition = FilterTypeCondition.NONE, -// equality = FilterTypeEquality.EQUAL, -// value = "Product" -// ), -// Filter( -// propertyId = "555", -// condition = FilterTypeCondition.NONE, -// equality = FilterTypeEquality.EQUAL, -// value = "Android" -// ), - Filter( - detailId = "888", - condition = FilterTypeCondition.NONE, - equality = FilterTypeEquality.EQUAL, - value = "New" - ) - ) - - val groups = mutableListOf( - Group( - details = listOf( - Detail.File(id = "9", name = "File", show = true), - Detail.Bool(id = "10", name = "Bool", show = true), - Detail.Link(id = "11", name = "Link", show = true), - Detail.Phone(id = "12", name = "Phone", show = true) - ) - ) - ) -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/AddFilter.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/AddFilter.kt deleted file mode 100644 index 6b40f03a66..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/AddFilter.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.FilterMock -import com.anytypeio.anytype.domain.database.model.Filter - -class AddFilter : BaseUseCase() { - - override suspend fun run(params: Params): Either = try { - FilterMock.filters.add(params.filter) - Either.Right(Unit) - } catch (e: Throwable) { - Either.Left(e) - } - - data class Params(val filter: Filter) -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/CreateDisplayView.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/CreateDisplayView.kt deleted file mode 100644 index fbbc22a616..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/CreateDisplayView.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.model.Display -import com.anytypeio.anytype.domain.database.model.ViewType -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository - -class CreateDisplayView( - private val databaseRepo: DatabaseRepository -) : BaseUseCase() { - - override suspend fun run(params: Params): Either { - val displayView = Display( - //todo update id - id = "-1", - name = params.name, - type = params.type - ) - return Either.Right(displayView) - } - - data class Params(val name: String, val type: ViewType) -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/DeleteDatabase.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/DeleteDatabase.kt deleted file mode 100644 index 418eb976ca..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/DeleteDatabase.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository - -class DeleteDatabase( - private val databaseRepo: DatabaseRepository -) : BaseUseCase() { - - override suspend fun run(params: Params): Either = try { - Either.Right("Delete database with id:${params.id}, name:{${params.name}}") - } catch (e: Throwable) { - Either.Left(e) - } - - data class Params(val id: String, val name: String) -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/DeleteDetail.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/DeleteDetail.kt deleted file mode 100644 index a84bb4f14a..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/DeleteDetail.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.model.Detail -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository - -class DeleteDetail( - private val databaseRepo: DatabaseRepository -) : BaseUseCase() { - - override suspend fun run(params: Params): Either = try { - databaseRepo.getDatabase(params.databaseId).let { - val details = it.content.details - - val index = getDetailIndex(details, params.detailId) - if (index == -1) { - Either.Left(DeleteDetailError()) - } else { - databaseRepo.updateDatabase( - it.copy( - content = it.content.copy( - details = details.toMutableList().apply { - removeAt(index) - }) - ) - ) - Either.Right(Unit) - } - } - - } catch (e: Throwable) { - Either.Left(e) - } - - private fun getDetailIndex(details: List, id: String): Int = - details.indexOfFirst { it.id == id } - - class Params(val databaseId: String, val detailId: String) - class DeleteDetailError: Throwable() -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/DuplicateDatabase.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/DuplicateDatabase.kt deleted file mode 100644 index 91bd576fde..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/DuplicateDatabase.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository - -class DuplicateDatabase( - private val databaseRepo: DatabaseRepository -) : BaseUseCase() { - - override suspend fun run(params: Params): Either = try { - Either.Right("Duplicate database with id:${params.id}, name:{${params.name}}") - } catch (e: Throwable) { - Either.Left(e) - } - - data class Params(val id: String, val name: String) -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/DuplicateDetail.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/DuplicateDetail.kt deleted file mode 100644 index c3c38520c4..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/DuplicateDetail.kt +++ /dev/null @@ -1,59 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.model.Detail -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository -import java.util.* - -class DuplicateDetail( - private val databaseRepo: DatabaseRepository -) : BaseUseCase() { - - override suspend fun run(params: Params): Either = try { - databaseRepo.getDatabase(params.databaseId).let { - val details = it.content.details - - val index = getDetailIndex(details, params.detailId) - if (index == -1) { - Either.Left(DuplicateDetailError()) - } else { - val detail: Detail = details[index] - - databaseRepo.updateDatabase( - it.copy( - content = it.content.copy( - details = details.toMutableList().apply { - add(duplicate(detail)) - }) - ) - ) - Either.Right(Unit) - } - } - } catch (e: Throwable) { - Either.Left(e) - } - - private fun getDetailIndex(details: List, id: String): Int = - details.indexOfFirst { it.id == id } - - private fun duplicate(detail: Detail): Detail = - when (detail) { - is Detail.Title -> detail.copy(id = UUID.randomUUID().toString()) - is Detail.Text -> detail.copy(id = UUID.randomUUID().toString()) - is Detail.Number -> detail.copy(id = UUID.randomUUID().toString()) - is Detail.Date -> detail.copy(id = UUID.randomUUID().toString()) - is Detail.Select -> detail.copy(id = UUID.randomUUID().toString()) - is Detail.Multiple -> detail.copy(id = UUID.randomUUID().toString()) - is Detail.Person -> detail.copy(id = UUID.randomUUID().toString()) - is Detail.File -> detail.copy(id = UUID.randomUUID().toString()) - is Detail.Bool -> detail.copy(id = UUID.randomUUID().toString()) - is Detail.Link -> detail.copy(id = UUID.randomUUID().toString()) - is Detail.Email -> detail.copy(id = UUID.randomUUID().toString()) - is Detail.Phone -> detail.copy(id = UUID.randomUUID().toString()) - } - - class Params(val databaseId: String, val detailId: String) - class DuplicateDetailError : Throwable() -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetContact.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetContact.kt deleted file mode 100644 index 723c6724ff..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetContact.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.model.Contact -import com.anytypeio.anytype.domain.database.ContactsMock - -class GetContact : BaseUseCase() { - - override suspend fun run(params: Params): Either = try { - ContactsMock.CONTACTS.find { - it.id == params.contactId - }.let { - if (it == null) { - Either.Left(Throwable("Error getting contact by id=${params.contactId}")) - } else { - Either.Right(it) - } - } - } catch (e: Throwable) { - Either.Left(e) - } - - class Params( - val contactId: String - ) -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetContacts.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetContacts.kt deleted file mode 100644 index e300336fef..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetContacts.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.model.Contact -import com.anytypeio.anytype.domain.database.ContactsMock - -class GetContacts : BaseUseCase, BaseUseCase.None>() { - - override suspend fun run(params: None): Either> = try { - Either.Right(ContactsMock.CONTACTS) - } catch (e: Throwable) { - Either.Left(e) - } -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetDatabase.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetDatabase.kt deleted file mode 100644 index ca817431f9..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetDatabase.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.DatabaseMock -import com.anytypeio.anytype.domain.database.model.DatabaseView -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository - -class GetDatabase( - private val databaseRepo: DatabaseRepository -) : BaseUseCase() { - - override suspend fun run(params: Params): Either = try { - databaseRepo.getDatabase(params.id).let { - Either.Right(it) - } - - } catch (e: Throwable) { - Either.Left(e) - } - - class Params(val id: String) -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetFilters.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetFilters.kt deleted file mode 100644 index f02cf09add..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetFilters.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.FilterMock -import com.anytypeio.anytype.domain.database.model.Filter - -class GetFilters : BaseUseCase, BaseUseCase.None>() { - - override suspend fun run(params: None): Either> = try { - Either.Right(addDefaultFilters(FilterMock.filters.toMutableList())) - } catch (e: Throwable) { - Either.Left(e) - } - - private fun addDefaultFilters(filters: MutableList): List { - filters.add(0, FilterMock.FILTER_ALL) - return filters - } -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetGroups.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetGroups.kt deleted file mode 100644 index b37990fda0..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/GetGroups.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.FilterMock -import com.anytypeio.anytype.domain.database.model.Group - -class GetGroups : BaseUseCase, BaseUseCase.None>() { - - override suspend fun run(params: None): Either> = try { - Either.Right(FilterMock.groups) - } catch (e: Throwable) { - Either.Left(e) - } -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/HideDetail.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/HideDetail.kt deleted file mode 100644 index 65f4e49738..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/HideDetail.kt +++ /dev/null @@ -1,59 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.model.Detail -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository - -class HideDetail( - private val databaseRepo: DatabaseRepository -) : BaseUseCase() { - - override suspend fun run(params: Params): Either = try { - databaseRepo.getDatabase(params.databaseId).let { - val details = it.content.details - - val index = getDetailIndex(details, params.detailId) - if (index == -1) { - Either.Left(HideDetailError()) - } else { - - val detail: Detail = details[index] - databaseRepo.updateDatabase( - it.copy( - content = it.content.copy( - details = details.toMutableList().apply { - set(index, changeShow(detail)) - }) - ) - ) - Either.Right(Unit) - } - } - - } catch (e: Throwable) { - Either.Left(e) - } - - private fun getDetailIndex(details: List, id: String): Int = - details.indexOfFirst { it.id == id } - - private fun changeShow(detail: Detail): Detail = - when (detail) { - is Detail.Title -> detail.copy(show = !detail.show) - is Detail.Text -> detail.copy(show = !detail.show) - is Detail.Number -> detail.copy(show = !detail.show) - is Detail.Date -> detail.copy(show = !detail.show) - is Detail.Select -> detail.copy(show = !detail.show) - is Detail.Multiple -> detail.copy(show = !detail.show) - is Detail.Person -> detail.copy(show = !detail.show) - is Detail.File -> detail.copy(show = !detail.show) - is Detail.Bool -> detail.copy(show = !detail.show) - is Detail.Link -> detail.copy(show = !detail.show) - is Detail.Email -> detail.copy(show = !detail.show) - is Detail.Phone -> detail.copy(show = !detail.show) - } - - class Params(val databaseId: String, val detailId: String) - class HideDetailError : Throwable() -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/SwapDetails.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/SwapDetails.kt deleted file mode 100644 index d262a2c546..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/SwapDetails.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository - -/** - * Created by Konstantin Ivanov - * email : ki@agileburo.com - * on 2019-12-19. - */ -class SwapDetails( - private val databaseRepo: DatabaseRepository -) : BaseUseCase() { - - override suspend fun run(params: Params): Either = try { - - databaseRepo.getDatabase(params.databaseId).let { - val updatedDetails = it.content.details.toMutableList() - updatedDetails.swap(params.from, params.to) - databaseRepo.updateDatabase( - it.copy( - content = it.content.copy( - details = updatedDetails.toList() - ) - ) - ) - Either.Right(Unit) - } - } catch (e: Throwable) { - Either.Left(e) - } - - data class Params(val from: Int, val to: Int, val databaseId: String) -} - -fun MutableList.swap(index1: Int, index2: Int) { - val tmp = this[index1] // 'this' corresponds to the list - this[index1] = this[index2] - this[index2] = tmp -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/SwitchDisplayView.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/SwitchDisplayView.kt deleted file mode 100644 index 49eb430598..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/interactor/SwitchDisplayView.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.BaseUseCase -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.domain.database.model.ViewType -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository -import java.lang.Exception - -class SwitchDisplayView( - private val databaseRepo: DatabaseRepository -) : BaseUseCase() { - - override suspend fun run(params: Params): Either = try { - databaseRepo.updateViewType(params.type) - Either.Right("Switch display view with id:${params.id} to type:${params.type}") - } catch (e: Throwable) { - Either.Left(e) - } - - data class Params(val id: String, val type: ViewType) -} \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/model/Contact.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/model/Contact.kt deleted file mode 100644 index c52f2f66e5..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/model/Contact.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.anytypeio.anytype.domain.database.model - -data class Contact( - val id: String, - val name: String, - val date: Long, - val icon: String?, - val tags: List = emptyList() -) - -data class Tag( - val id: String, - val name: String -) diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/model/DatabaseView.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/model/DatabaseView.kt deleted file mode 100644 index bedf89a6cd..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/model/DatabaseView.kt +++ /dev/null @@ -1,43 +0,0 @@ -package com.anytypeio.anytype.domain.database.model - -import java.io.Serializable - -@Deprecated("Legacy") -enum class ViewType : Serializable { GRID, BOARD, GALLERY, LIST } -@Deprecated("Legacy") -enum class FilterTypeCondition { NONE, AND, OR } -@Deprecated("Legacy") -enum class FilterTypeEquality { EQUAL, NOT_EQUAL, IN, NOT_IN, GREATER, LESSER, LIKE, NOT_LIKE } - -@Deprecated("Legacy") -data class Filter( - val detailId: String, - val condition: FilterTypeCondition, - val equality: FilterTypeEquality, - val value: Any -) - -@Deprecated("Legacy") -data class Group( - val details: List -) - -@Deprecated("Legacy") -data class Display( - val id: String, - val name: String, - val type: ViewType, - val filters: List = emptyList(), - val groups: List = emptyList() -) - -@Deprecated("Legacy") -data class ContentDatabaseView( - val databaseId: String, - val details: List, - val displays: MutableList, - val data: List> -) - -@Deprecated("Legacy") -data class DatabaseView(val content: ContentDatabaseView) \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/model/Detail.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/model/Detail.kt deleted file mode 100644 index d1fa85d6e1..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/model/Detail.kt +++ /dev/null @@ -1,90 +0,0 @@ -package com.anytypeio.anytype.domain.database.model - -sealed class Detail(open val id: String) { - - data class Title( - override val id: String, - val name: String, - val show: Boolean - ) : Detail(id) - - data class Text( - override val id: String, - val name: String, - val show: Boolean - ) : Detail(id) - - data class Number( - override val id: String, - val name: String, - val show: Boolean - ) : - Detail(id) - - data class Date( - override val id: String, - val name: String, - val show: Boolean - ) : Detail(id) - - data class Select( - override val id: String, - val name: String, - val select: Set = emptySet(), - val show: Boolean - ) : - Detail(id) - - data class Multiple( - override val id: String, - val name: String, - val multiSelect: Set = emptySet(), - val show: Boolean - ) : Detail(id) - - data class Person( - override val id: String, - val name: String, - val accounts: Set, - val show: Boolean - ) : - Detail(id) - - data class File( - override val id: String, - val name: String, - val show: Boolean - ) : - Detail(id) - - data class Bool( - override val id: String, - val name: String, - val show: Boolean - ) : - Detail(id) - - data class Link( - override val id: String, - val name: String, - val show: Boolean - ) : - Detail(id) - - data class Email( - override val id: String, - val name: String, - val show: Boolean - ) : - Detail(id) - - data class Phone - ( - override val id: String, - val name: String, - val show: Boolean - ) : - Detail(id) -} - -data class Value(val name: String) \ No newline at end of file diff --git a/domain/src/main/java/com/anytypeio/anytype/domain/database/repo/DatabaseRepository.kt b/domain/src/main/java/com/anytypeio/anytype/domain/database/repo/DatabaseRepository.kt deleted file mode 100644 index 4b1dfc4815..0000000000 --- a/domain/src/main/java/com/anytypeio/anytype/domain/database/repo/DatabaseRepository.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.anytypeio.anytype.domain.database.repo - -import com.anytypeio.anytype.domain.database.model.DatabaseView -import com.anytypeio.anytype.domain.database.model.ViewType - -interface DatabaseRepository { - fun getDatabase(id: String): DatabaseView - fun updateDatabase(databse: DatabaseView) - fun updateViewType(type: ViewType) -} \ No newline at end of file diff --git a/domain/src/test/java/com/anytypeio/anytype/domain/database/interactor/DeleteDetailTest.kt b/domain/src/test/java/com/anytypeio/anytype/domain/database/interactor/DeleteDetailTest.kt deleted file mode 100644 index 86673cde2e..0000000000 --- a/domain/src/test/java/com/anytypeio/anytype/domain/database/interactor/DeleteDetailTest.kt +++ /dev/null @@ -1,78 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.core_models.CoroutineTestRule -import com.anytypeio.anytype.domain.database.model.ContentDatabaseView -import com.anytypeio.anytype.domain.database.model.DatabaseView -import com.anytypeio.anytype.domain.database.model.Detail -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository -import com.nhaarman.mockitokotlin2.doReturn -import com.nhaarman.mockitokotlin2.stub -import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.runBlocking -import org.junit.Before -import org.junit.Rule -import org.junit.Test -import org.mockito.Mock -import org.mockito.MockitoAnnotations -import kotlin.test.assertEquals - -class DeleteDetailTest { - - @ExperimentalCoroutinesApi - @get:Rule - var rule = CoroutineTestRule() - - @Mock - lateinit var databaseRepo: DatabaseRepository - lateinit var deleteDetail: DeleteDetail - - private val db = DatabaseView( - content = ContentDatabaseView( - databaseId = "213", - displays = mutableListOf(), - details = listOf( - Detail.Date(id = "423", show = true, name = "Birthday"), - Detail.Email(id = "544", show = true, name = "Cowokers email"), - Detail.Text(id = "888", show = true, name = "Surnames") - ), - data = listOf() - ) - ) - - @Before - fun setup() { - MockitoAnnotations.initMocks(this) - deleteDetail = DeleteDetail(databaseRepo) - } - - @Test - fun `should delete database detail with id`() = runBlocking { - val databaseId = "213" - val detailId = "423" - - databaseRepo.stub { - onBlocking { getDatabase(databaseId) } doReturn db - } - - val result = - deleteDetail.run(DeleteDetail.Params(databaseId = databaseId, detailId = detailId)) - - assertEquals(Either.Right(Unit), result) - } - -// @Test -// fun `should return error when try to delete wrong detail`() = runBlocking { -// val databaseId = "213" -// val detailId = "424" -// -// databaseRepo.stub { -// onBlocking { getDatabase(databaseId) } doReturn db -// } -// -// val result = -// deleteDetail.run(DeleteDetail.Params(databaseId = databaseId, detailId = detailId)) -// -// Assert.assertEquals(Either.Left(DeleteDetail.DeleteDetailError()), result) -// } -} \ No newline at end of file diff --git a/domain/src/test/java/com/anytypeio/anytype/domain/database/interactor/HideDetailTest.kt b/domain/src/test/java/com/anytypeio/anytype/domain/database/interactor/HideDetailTest.kt deleted file mode 100644 index 7bf4be4ffc..0000000000 --- a/domain/src/test/java/com/anytypeio/anytype/domain/database/interactor/HideDetailTest.kt +++ /dev/null @@ -1,63 +0,0 @@ -package com.anytypeio.anytype.domain.database.interactor - -import com.anytypeio.anytype.domain.base.Either -import com.anytypeio.anytype.core_models.CoroutineTestRule -import com.anytypeio.anytype.domain.database.model.ContentDatabaseView -import com.anytypeio.anytype.domain.database.model.DatabaseView -import com.anytypeio.anytype.domain.database.model.Detail -import com.anytypeio.anytype.domain.database.repo.DatabaseRepository -import com.nhaarman.mockitokotlin2.doReturn -import com.nhaarman.mockitokotlin2.stub -import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.runBlocking -import org.junit.Before -import org.junit.Rule -import org.junit.Test -import org.mockito.Mock -import org.mockito.MockitoAnnotations -import kotlin.test.assertEquals - -class HideDetailTest { - - @ExperimentalCoroutinesApi - @get:Rule - var rule = CoroutineTestRule() - - @Mock - lateinit var databaseRepo: DatabaseRepository - lateinit var hideDetail: HideDetail - - private val db = DatabaseView( - content = ContentDatabaseView( - databaseId = "213", - displays = mutableListOf(), - details = listOf( - Detail.Date(id = "423", show = true, name = "Birthday"), - Detail.Email(id = "544", show = true, name = "Cowokers email"), - Detail.Text(id = "888", show = true, name = "Surnames") - ), - data = listOf() - ) - ) - - @Before - fun setUp() { - MockitoAnnotations.initMocks(this) - hideDetail = HideDetail(databaseRepo) - } - - @Test - fun `should hide detail with id`() = runBlocking { - val databaseId = "213" - val detailId = "423" - - databaseRepo.stub { - onBlocking { getDatabase(databaseId) } doReturn db - } - - val result = - hideDetail.run(HideDetail.Params(databaseId = databaseId, detailId = detailId)) - - assertEquals(Either.Right(Unit), result) - } -} \ No newline at end of file