使用Koin依赖注入框架
This commit is contained in:
2 files changed
+44
-1
No files matched your search
@@ -32,6 +32,7 @@ import io.legado.app.data.entities.rule.BookInfoRule
|
|||||||
import io.legado.app.data.entities.rule.ContentRule
|
import io.legado.app.data.entities.rule.ContentRule
|
||||||
import io.legado.app.data.entities.rule.ExploreRule
|
import io.legado.app.data.entities.rule.ExploreRule
|
||||||
import io.legado.app.data.entities.rule.SearchRule
|
import io.legado.app.data.entities.rule.SearchRule
|
||||||
|
import io.legado.app.di.appDatabaseModule
|
||||||
import io.legado.app.help.AppFreezeMonitor
|
import io.legado.app.help.AppFreezeMonitor
|
||||||
import io.legado.app.help.AppWebDav
|
import io.legado.app.help.AppWebDav
|
||||||
import io.legado.app.help.CrashHandler
|
import io.legado.app.help.CrashHandler
|
||||||
@@ -60,6 +61,7 @@ import io.legado.app.utils.getPrefString
|
|||||||
import io.legado.app.utils.isDebuggable
|
import io.legado.app.utils.isDebuggable
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.chromium.base.ThreadUtils
|
import org.chromium.base.ThreadUtils
|
||||||
|
import org.koin.core.context.GlobalContext.startKoin
|
||||||
import splitties.init.appCtx
|
import splitties.init.appCtx
|
||||||
import splitties.systemservices.notificationManager
|
import splitties.systemservices.notificationManager
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -72,7 +74,9 @@ class App : Application() {
|
|||||||
private lateinit var oldConfig: Configuration
|
private lateinit var oldConfig: Configuration
|
||||||
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
|
startKoin {
|
||||||
|
modules(appDatabaseModule)
|
||||||
|
}
|
||||||
if (getPrefString("app_theme", "0") == "12") {
|
if (getPrefString("app_theme", "0") == "12") {
|
||||||
if (AppConfig.customMode == "accent")
|
if (AppConfig.customMode == "accent")
|
||||||
setTheme(R.style.ThemeOverlay_WhiteBackground)
|
setTheme(R.style.ThemeOverlay_WhiteBackground)
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package io.legado.app.di
|
||||||
|
|
||||||
|
import io.legado.app.data.AppDatabase
|
||||||
|
import io.legado.app.data.appDb
|
||||||
|
import io.legado.app.data.dao.*
|
||||||
|
import org.koin.dsl.module
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用程序的数据库和 DAO 模块
|
||||||
|
*/
|
||||||
|
val appDatabaseModule = module {
|
||||||
|
|
||||||
|
// 注册 AppDatabase 实例
|
||||||
|
// 使用 lazy 属性 appDb,该属性在 AppDatabase.kt 中定义并已初始化
|
||||||
|
single<AppDatabase> { appDb }
|
||||||
|
|
||||||
|
// 注册所有的 DAO 接口,通过 AppDatabase 实例获取
|
||||||
|
factory<BookDao> { get<AppDatabase>().bookDao }
|
||||||
|
factory<BookGroupDao> { get<AppDatabase>().bookGroupDao }
|
||||||
|
factory<BookSourceDao> { get<AppDatabase>().bookSourceDao }
|
||||||
|
factory<BookChapterDao> { get<AppDatabase>().bookChapterDao }
|
||||||
|
factory<ReplaceRuleDao> { get<AppDatabase>().replaceRuleDao }
|
||||||
|
factory<SearchBookDao> { get<AppDatabase>().searchBookDao }
|
||||||
|
factory<SearchKeywordDao> { get<AppDatabase>().searchKeywordDao }
|
||||||
|
factory<RssSourceDao> { get<AppDatabase>().rssSourceDao }
|
||||||
|
factory<BookmarkDao> { get<AppDatabase>().bookmarkDao }
|
||||||
|
factory<RssArticleDao> { get<AppDatabase>().rssArticleDao }
|
||||||
|
factory<RssStarDao> { get<AppDatabase>().rssStarDao }
|
||||||
|
factory<RssReadRecordDao> { get<AppDatabase>().rssReadRecordDao }
|
||||||
|
factory<CookieDao> { get<AppDatabase>().cookieDao }
|
||||||
|
factory<TxtTocRuleDao> { get<AppDatabase>().txtTocRuleDao }
|
||||||
|
factory<ReadRecordDao> { get<AppDatabase>().readRecordDao }
|
||||||
|
factory<HttpTTSDao> { get<AppDatabase>().httpTTSDao }
|
||||||
|
factory<CacheDao> { get<AppDatabase>().cacheDao }
|
||||||
|
factory<RuleSubDao> { get<AppDatabase>().ruleSubDao }
|
||||||
|
factory<DictRuleDao> { get<AppDatabase>().dictRuleDao }
|
||||||
|
factory<KeyboardAssistsDao> { get<AppDatabase>().keyboardAssistsDao }
|
||||||
|
factory<ServerDao> { get<AppDatabase>().serverDao }
|
||||||
|
}
|
||||||
Reference in new issue
Block a user