Gitnuro/src/main/kotlin/com/jetpackduba/gitnuro/di/AppComponent.kt
2024-07-20 01:18:39 +02:00

54 lines
1.7 KiB
Kotlin

package com.jetpackduba.gitnuro.di
import com.jetpackduba.gitnuro.App
import com.jetpackduba.gitnuro.AppEnvInfo
import com.jetpackduba.gitnuro.credentials.CredentialsCacheRepository
import com.jetpackduba.gitnuro.credentials.CredentialsStateManager
import com.jetpackduba.gitnuro.di.modules.AppModule
import com.jetpackduba.gitnuro.di.modules.NetworkModule
import com.jetpackduba.gitnuro.di.modules.ShellModule
import com.jetpackduba.gitnuro.managers.AppStateManager
import com.jetpackduba.gitnuro.managers.IShellManager
import com.jetpackduba.gitnuro.managers.TempFilesManager
import com.jetpackduba.gitnuro.repositories.AppSettingsRepository
import com.jetpackduba.gitnuro.terminal.ITerminalProvider
import com.jetpackduba.gitnuro.ui.TabsManager
import com.jetpackduba.gitnuro.ui.VerticalSplitPaneConfig
import com.jetpackduba.gitnuro.updates.UpdatesRepository
import com.jetpackduba.gitnuro.viewmodels.SettingsViewModel
import dagger.Component
import javax.inject.Singleton
@Singleton
@Component(
modules = [
AppModule::class,
ShellModule::class,
NetworkModule::class,
]
)
interface AppComponent {
fun inject(main: App)
fun appStateManager(): AppStateManager
fun settingsViewModel(): SettingsViewModel
fun credentialsStateManager(): CredentialsStateManager
fun appPreferences(): AppSettingsRepository
fun verticalSplitPaneConfig(): VerticalSplitPaneConfig
fun appEnvInfo(): AppEnvInfo
fun tabsManager(): TabsManager
fun shellManager(): IShellManager
fun terminalProvider(): ITerminalProvider
fun tempFilesManager(): TempFilesManager
fun updatesRepository(): UpdatesRepository
fun credentialsCacheRepository(): CredentialsCacheRepository
}