Files
Suwayomi-Server/server/src/main/kotlin/eu/kanade/tachiyomi/AppModule.kt
T
2026-05-02 17:20:52 -04:00

90 lines
2.6 KiB
Kotlin

package eu.kanade.tachiyomi
/*
* Copyright (C) Contributors to the Suwayomi project
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// import eu.kanade.tachiyomi.data.cache.ChapterCache
// import eu.kanade.tachiyomi.data.cache.CoverCache
// import eu.kanade.tachiyomi.data.database.DatabaseHelper
// import eu.kanade.tachiyomi.data.download.DownloadManager
// import eu.kanade.tachiyomi.data.preference.PreferencesHelper
// import eu.kanade.tachiyomi.data.sync.LibrarySyncManager
// import eu.kanade.tachiyomi.data.track.TrackManager
// import eu.kanade.tachiyomi.extension.ExtensionManager
import android.app.Application
import eu.kanade.tachiyomi.network.JavaScriptEngine
import eu.kanade.tachiyomi.network.NetworkHelper
import kotlinx.serialization.json.Json
import kotlinx.serialization.protobuf.ProtoBuf
import nl.adaptivity.xmlutil.XmlDeclMode
import nl.adaptivity.xmlutil.core.XmlVersion
import nl.adaptivity.xmlutil.serialization.XML
import org.koin.core.module.Module
import org.koin.dsl.module
fun createAppModule(app: Application): Module {
return module {
single { app }
// addSingletonFactory { PreferencesHelper(app) }
//
// addSingletonFactory { DatabaseHelper(app) }
//
// addSingletonFactory { ChapterCache(app) }
//
// addSingletonFactory { CoverCache(app) }
single { NetworkHelper(app) }
single { JavaScriptEngine(app) }
// addSingletonFactory { SourceManager(app).also { get<ExtensionManager>().init(it) } }
//
// addSingletonFactory { ExtensionManager(app) }
//
// addSingletonFactory { DownloadManager(app) }
//
// addSingletonFactory { TrackManager(app) }
//
// addSingletonFactory { LibrarySyncManager(app) }
single {
Json {
ignoreUnknownKeys = true
explicitNulls = false
}
}
single {
XML {
defaultPolicy {
ignoreUnknownChildren()
}
autoPolymorphic = true
xmlDeclMode = XmlDeclMode.Charset
indent = 2
xmlVersion = XmlVersion.XML10
}
}
single<ProtoBuf> {
ProtoBuf
}
}
// Asynchronously init expensive components for a faster cold start
// rxAsync { get<PreferencesHelper>() }
// rxAsync {
// get<SourceManager>()
// get<DownloadManager>()
// }
// rxAsync { get<DatabaseHelper>() }
}