36fe52e5ad
* DROID-439 App | Relations refactoring, use SearchObjects for object types (#2592) * DROID-446 Objects | Enhancement | Store relation links and process its updates (#2597) * DROID-456 Tech | Remove deprecated API for creating object types (#2601) * DROID-455 Object types | Enhancement Get object type list from ObjectSearch on Global search screen (#2602) * DROID-459 Sets | Refactoring | Use relations links instead of relations for building search params to get data view data (#2603) * DROID-458 Objects | Refactoring | Integrate new api for creating objets (#2604) * DROID-464 Relations | Refactoring | New API for creating a relation from scratch - for data view or for an object (#2605) * DROID-467 Relations | Refactoring | New API for creating options - for tags and statuses (#2607) * DROID-470 Relations | Refactoring | New API for removing any relation from an object or from a data view (#2608) * DROID-460 Tech | Object relations list (#2610) * DROID-486 Sets | Refactoring | Displaying and controlling visibility of data view relations (#2611) * DROID-500 Relations | Refactoring | Extend API of ObjectStore to be able to get a relation by its id (#2619) * DROID-459 Sets | Fix | Get relations from store by id and not by key (#2618) * DROID-489 Tech | Relations as object, add relationKey to relation connected screens (#2622) * DROID-490 Sets | Refactoring | Displaying relation values for current object in bottom sheet cells (#2629) * DROID-505 Relations | Refactoring | New interface for relations store (#2633) * DROID-509 Relations | Refactoring | Bind new relations store with subscription container (#2635) * DROID-507 Tech | MW , migration + relation links (#2636) * DROID-507 Tech | MW , migration + relation links, fixes (#2637) * DROID-517 Sets | Fix | Provide correct keys for data view search-and-subscribe query (#2641) * DROID-409 Relations | Refactoring | Use relation key instead of id when creating new relation (#2642) * DROID-521 Sets & Objects | Refactoring | Add relation to a data view or to an object from existing relations (#2644) * DROID-522 Relations | Refactoring | Add objects to relations with object format (#2645) * DROID-523 Object types | Refactoring | Implement global store for object types (#2646) * DROID-527 Object types | Refactoring | Integrate global store for object types (#2647) * DROID-531 Relations | Refactoring | Parse tag and status relations values (#2649) * DROID-535 Tech | Integrate new MW lib with migration fixes (#2653) * DROID-535 Tech | MW integration fixes (#2660) * DROID-559 Relations | Refactoring | Parse tag and status values in editor (#2662) * DROID-560 Relations | Refactoring | Integrate new lib with fixes (#2663) * DROID-561 Relations | Refactoring | Parsing tag and status values in dv (#2665) * DROID-562 Dashboard | Refactoring | Use store of object types as object type provider for favorites tab on dashboard (#2667) * DROID-567 Relations | Refactoring | Suggest available options to populate a relation (#2671) * DROID-604 Relations | Refactoring | Use details from Object.CreateRelation.Response to populate relation store (#2705) * DROID-603 Relations | Refactoring | Creating relation options + Deleting relation from object (#2706) * DROID-619 Relations | Refactoring | Migrate data view sorts and filters to the new relation-as-object paradigm (#2711) * DROID-622 Relations | Tech | Update MW to 0.24.0-rc1 (#2714) * DROID-598 Sets | Refactoring | Provide relation format for date filters (#2715) * DROID-625 Protocol | Enhancement | Integrate v0.24.0-rc2 (#2718)
145 lines
4.9 KiB
Kotlin
145 lines
4.9 KiB
Kotlin
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.`object`.ObjectTypesProvider
|
|
import com.anytypeio.anytype.domain.auth.interactor.CheckAuthorizationStatus
|
|
import com.anytypeio.anytype.domain.auth.interactor.GetLastOpenedObject
|
|
import com.anytypeio.anytype.domain.auth.interactor.LaunchAccount
|
|
import com.anytypeio.anytype.domain.auth.interactor.LaunchWallet
|
|
import com.anytypeio.anytype.domain.auth.repo.AuthRepository
|
|
import com.anytypeio.anytype.domain.block.interactor.sets.StoreObjectTypes
|
|
import com.anytypeio.anytype.domain.block.repo.BlockRepository
|
|
import com.anytypeio.anytype.domain.config.ConfigStorage
|
|
import com.anytypeio.anytype.domain.config.FeaturesConfigProvider
|
|
import com.anytypeio.anytype.domain.config.UserSettingsRepository
|
|
import com.anytypeio.anytype.domain.device.PathProvider
|
|
import com.anytypeio.anytype.domain.launch.GetDefaultEditorType
|
|
import com.anytypeio.anytype.domain.launch.SetDefaultEditorType
|
|
import com.anytypeio.anytype.domain.misc.AppActionManager
|
|
import com.anytypeio.anytype.domain.page.CreatePage
|
|
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
|
|
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
|
|
import com.anytypeio.anytype.presentation.splash.SplashViewModelFactory
|
|
import com.anytypeio.anytype.ui.splash.SplashFragment
|
|
import dagger.Module
|
|
import dagger.Provides
|
|
import dagger.Subcomponent
|
|
|
|
@PerScreen
|
|
@Subcomponent(modules = [SplashModule::class])
|
|
interface SplashSubComponent {
|
|
|
|
@Subcomponent.Builder
|
|
interface Builder {
|
|
fun build(): SplashSubComponent
|
|
fun module(module: SplashModule): Builder
|
|
}
|
|
|
|
fun inject(fragment: SplashFragment)
|
|
}
|
|
|
|
@Module
|
|
object SplashModule {
|
|
|
|
@JvmStatic
|
|
@PerScreen
|
|
@Provides
|
|
fun provideSplashViewModelFactory(
|
|
checkAuthorizationStatus: CheckAuthorizationStatus,
|
|
launchAccount: LaunchAccount,
|
|
launchWallet: LaunchWallet,
|
|
analytics: Analytics,
|
|
getLastOpenedObject: GetLastOpenedObject,
|
|
getDefaultEditorType: GetDefaultEditorType,
|
|
setDefaultEditorType: SetDefaultEditorType,
|
|
createPage: CreatePage,
|
|
appActionManager: AppActionManager,
|
|
relationsSubscriptionManager: RelationsSubscriptionManager,
|
|
objectTypesSubscriptionManager: ObjectTypesSubscriptionManager
|
|
): SplashViewModelFactory = SplashViewModelFactory(
|
|
checkAuthorizationStatus = checkAuthorizationStatus,
|
|
launchAccount = launchAccount,
|
|
launchWallet = launchWallet,
|
|
analytics = analytics,
|
|
getLastOpenedObject = getLastOpenedObject,
|
|
setDefaultEditorType = setDefaultEditorType,
|
|
getDefaultEditorType = getDefaultEditorType,
|
|
createPage = createPage,
|
|
appActionManager = appActionManager,
|
|
relationsSubscriptionManager = relationsSubscriptionManager,
|
|
objectTypesSubscriptionManager = objectTypesSubscriptionManager
|
|
)
|
|
|
|
@JvmStatic
|
|
@PerScreen
|
|
@Provides
|
|
fun provideCheckAuthorizationStatusUseCase(
|
|
authRepository: AuthRepository
|
|
): CheckAuthorizationStatus = CheckAuthorizationStatus(
|
|
repository = authRepository
|
|
)
|
|
|
|
@JvmStatic
|
|
@PerScreen
|
|
@Provides
|
|
fun provideLaunchAccountUseCase(
|
|
authRepository: AuthRepository,
|
|
pathProvider: PathProvider,
|
|
featuresConfigProvider: FeaturesConfigProvider,
|
|
configStorage: ConfigStorage
|
|
): LaunchAccount = LaunchAccount(
|
|
repository = authRepository,
|
|
pathProvider = pathProvider,
|
|
featuresConfigProvider = featuresConfigProvider,
|
|
configStorage = configStorage
|
|
)
|
|
|
|
@JvmStatic
|
|
@PerScreen
|
|
@Provides
|
|
fun provideLaunchWalletUseCase(
|
|
authRepository: AuthRepository,
|
|
pathProvider: PathProvider
|
|
): LaunchWallet =
|
|
LaunchWallet(
|
|
repository = authRepository,
|
|
pathProvider = pathProvider
|
|
)
|
|
|
|
@JvmStatic
|
|
@Provides
|
|
@PerScreen
|
|
fun provideStoreObjectTypesUseCase(
|
|
repo: BlockRepository,
|
|
objectTypesProvider: ObjectTypesProvider
|
|
) : StoreObjectTypes = StoreObjectTypes(repo, objectTypesProvider)
|
|
|
|
@JvmStatic
|
|
@Provides
|
|
@PerScreen
|
|
fun getLastOpenedObject(
|
|
repo: BlockRepository,
|
|
auth: AuthRepository
|
|
) : GetLastOpenedObject = GetLastOpenedObject(
|
|
authRepo = auth,
|
|
blockRepo = repo
|
|
)
|
|
|
|
@JvmStatic
|
|
@PerScreen
|
|
@Provides
|
|
fun provideGetDefaultPageType(repo: UserSettingsRepository): GetDefaultEditorType =
|
|
GetDefaultEditorType(repo)
|
|
|
|
@JvmStatic
|
|
@PerScreen
|
|
@Provides
|
|
fun provideSetDefaultPageType(repo: UserSettingsRepository): SetDefaultEditorType =
|
|
SetDefaultEditorType(repo)
|
|
|
|
@JvmStatic
|
|
@PerScreen
|
|
@Provides
|
|
fun provideCreatePage(repo: BlockRepository): CreatePage = CreatePage(repo = repo)
|
|
} |