fix(DI): properly add modules to koin
This commit is contained in:
parent
1b5cc48fdf
commit
c73edaa12f
3 changed files with 20 additions and 22 deletions
|
|
@ -20,39 +20,40 @@ class ManagerApplication : Application() {
|
|||
androidContext(this@ManagerApplication)
|
||||
|
||||
// HTTP
|
||||
module {
|
||||
singleOf(::provideJson)
|
||||
singleOf(::provideHttpClient)
|
||||
}
|
||||
modules(module {
|
||||
single { provideJson() }
|
||||
single { provideHttpClient() }
|
||||
})
|
||||
|
||||
// Services
|
||||
module {
|
||||
modules(module {
|
||||
singleOf(::HttpService)
|
||||
singleOf(::GithubService)
|
||||
singleOf(::MavenService)
|
||||
singleOf(::AliucordGithubService)
|
||||
}
|
||||
})
|
||||
|
||||
// Repositories
|
||||
module {
|
||||
modules(module {
|
||||
singleOf(::GithubRepository)
|
||||
singleOf(::AliucordMavenRepository)
|
||||
}
|
||||
})
|
||||
|
||||
// ViewModels
|
||||
module {
|
||||
modules(module {
|
||||
viewModelOf(::HomeViewModel)
|
||||
viewModelOf(::PluginsViewModel)
|
||||
viewModelOf(::AboutViewModel)
|
||||
viewModelOf(::InstallViewModel)
|
||||
viewModelOf(::SettingsViewModel)
|
||||
viewModelOf(::UpdaterViewModel)
|
||||
}
|
||||
})
|
||||
|
||||
// Managers
|
||||
module {
|
||||
singleOf(::providePreferences)
|
||||
singleOf(::provideDownloadManager)
|
||||
}
|
||||
modules(module {
|
||||
single { providePreferences() }
|
||||
single { provideDownloadManager() }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,13 +10,12 @@ import org.koin.core.scope.Scope
|
|||
import java.net.Inet4Address
|
||||
import java.net.InetAddress
|
||||
|
||||
context(Scope)
|
||||
fun provideJson() = Json {
|
||||
@Suppress("UnusedReceiverParameter")
|
||||
fun Scope.provideJson() = Json {
|
||||
ignoreUnknownKeys = true
|
||||
}
|
||||
|
||||
context(Scope)
|
||||
fun provideHttpClient() = HttpClient(OkHttp) {
|
||||
fun Scope.provideHttpClient() = HttpClient(OkHttp) {
|
||||
val json: Json = get()
|
||||
|
||||
engine {
|
||||
|
|
|
|||
|
|
@ -6,14 +6,12 @@ import com.aliucord.manager.domain.manager.DownloadManager
|
|||
import com.aliucord.manager.domain.manager.PreferencesManager
|
||||
import org.koin.core.scope.Scope
|
||||
|
||||
context(Scope)
|
||||
fun providePreferences(): PreferencesManager {
|
||||
fun Scope.providePreferences(): PreferencesManager {
|
||||
val ctx: Context = get()
|
||||
return PreferencesManager(ctx.getSharedPreferences("preferences", Context.MODE_PRIVATE))
|
||||
}
|
||||
|
||||
context(Scope)
|
||||
fun provideDownloadManager(): DownloadManager {
|
||||
fun Scope.provideDownloadManager(): DownloadManager {
|
||||
val application: Application = get()
|
||||
return DownloadManager(application)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue