使用Koin依赖注入框架
This commit is contained in:
@@ -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.ExploreRule
|
||||
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.AppWebDav
|
||||
import io.legado.app.help.CrashHandler
|
||||
@@ -60,6 +61,7 @@ import io.legado.app.utils.getPrefString
|
||||
import io.legado.app.utils.isDebuggable
|
||||
import kotlinx.coroutines.launch
|
||||
import org.chromium.base.ThreadUtils
|
||||
import org.koin.core.context.GlobalContext.startKoin
|
||||
import splitties.init.appCtx
|
||||
import splitties.systemservices.notificationManager
|
||||
import java.io.File
|
||||
@@ -72,7 +74,9 @@ class App : Application() {
|
||||
private lateinit var oldConfig: Configuration
|
||||
|
||||
override fun onCreate() {
|
||||
|
||||
startKoin {
|
||||
modules(appDatabaseModule)
|
||||
}
|
||||
if (getPrefString("app_theme", "0") == "12") {
|
||||
if (AppConfig.customMode == "accent")
|
||||
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