anytype-kotlin-wild/app/src/main/java/com/anytypeio/anytype/di/feature/wallpaper/WallpaperSelectDI.kt
Evgenii Kozlov 5886fc1ae5
DROID-1654 App | Feature | Multispaces + Misc. enhancements (#300)
Co-authored-by: Konstantin Ivanov <54908981+konstantiniiv@users.noreply.github.com>
2023-10-24 12:41:32 +02:00

52 lines
1.6 KiB
Kotlin

package com.anytypeio.anytype.di.feature.wallpaper
import com.anytypeio.anytype.analytics.base.Analytics
import com.anytypeio.anytype.core_utils.di.scope.PerScreen
import com.anytypeio.anytype.device.DefaultGradientCollectionProvider
import com.anytypeio.anytype.domain.config.UserSettingsRepository
import com.anytypeio.anytype.domain.cover.GetCoverGradientCollection
import com.anytypeio.anytype.domain.wallpaper.SetWallpaper
import com.anytypeio.anytype.domain.workspace.SpaceManager
import com.anytypeio.anytype.presentation.wallpaper.WallpaperSelectViewModel
import com.anytypeio.anytype.ui.dashboard.WallpaperSelectFragment
import dagger.Module
import dagger.Provides
import dagger.Subcomponent
@Subcomponent(
modules = [WallpaperSelectModule::class]
)
@PerScreen
interface WallpaperSelectSubComponent {
@Subcomponent.Builder
interface Builder {
fun module(module: WallpaperSelectModule): Builder
fun build(): WallpaperSelectSubComponent
}
fun inject(fragment: WallpaperSelectFragment)
}
@Module
object WallpaperSelectModule {
@JvmStatic
@Provides
@PerScreen
fun provideViewModelFactory(
setWallpaper: SetWallpaper,
analytics: Analytics,
spaceManager: SpaceManager
): WallpaperSelectViewModel.Factory = WallpaperSelectViewModel.Factory(
setWallpaper = setWallpaper,
analytics = analytics,
getGradients = GetCoverGradientCollection(DefaultGradientCollectionProvider),
spaceManager = spaceManager
)
@JvmStatic
@Provides
@PerScreen
fun provideSetWallpaper(repo: UserSettingsRepository) : SetWallpaper = SetWallpaper(repo)
}