Просмотр исходного кода

refactor: 清零 WebViewModel DAO 直连

5151561 3 месяцев назад
Родитель
Сommit
71fada7d76

+ 7 - 0
app/src/main/java/io/legado/app/di/appModule.kt

@@ -215,6 +215,7 @@ import io.legado.app.ui.book.import.remote.RemoteBookViewModel
 import io.legado.app.ui.book.import.remote.ServerConfigViewModel
 import io.legado.app.ui.book.import.remote.ServerConfigViewModel
 import io.legado.app.ui.book.import.remote.ServersViewModel
 import io.legado.app.ui.book.import.remote.ServersViewModel
 import io.legado.app.ui.book.info.BookInfoViewModel
 import io.legado.app.ui.book.info.BookInfoViewModel
+import io.legado.app.ui.browser.WebViewModel
 import io.legado.app.ui.book.knowledge.BookCharacterDetailViewModel
 import io.legado.app.ui.book.knowledge.BookCharacterDetailViewModel
 import io.legado.app.ui.book.knowledge.BookCharacterListViewModel
 import io.legado.app.ui.book.knowledge.BookCharacterListViewModel
 import io.legado.app.ui.book.knowledge.BookCharacterNetworkViewModel
 import io.legado.app.ui.book.knowledge.BookCharacterNetworkViewModel
@@ -555,6 +556,12 @@ val appModule = module {
     viewModelOf(::ServerConfigViewModel)
     viewModelOf(::ServerConfigViewModel)
     viewModelOf(::ServersViewModel)
     viewModelOf(::ServersViewModel)
     viewModelOf(::BookInfoViewModel)
     viewModelOf(::BookInfoViewModel)
+    viewModel {
+        WebViewModel(
+            application = get(),
+            bookSourceRepository = get(),
+        )
+    }
     viewModel { (bookUrl: String, characterId: String?) ->
     viewModel { (bookUrl: String, characterId: String?) ->
         BookCharacterDetailViewModel(
         BookCharacterDetailViewModel(
             bookUrl = bookUrl,
             bookUrl = bookUrl,

+ 2 - 2
app/src/main/java/io/legado/app/ui/browser/WebViewActivity.kt

@@ -17,7 +17,7 @@ import android.webkit.WebSettings
 import android.webkit.WebView
 import android.webkit.WebView
 import android.webkit.WebViewClient
 import android.webkit.WebViewClient
 import androidx.activity.addCallback
 import androidx.activity.addCallback
-import androidx.activity.viewModels
+import org.koin.androidx.viewmodel.ext.android.viewModel
 import androidx.core.view.size
 import androidx.core.view.size
 import io.legado.app.R
 import io.legado.app.R
 import io.legado.app.base.VMBaseActivity
 import io.legado.app.base.VMBaseActivity
@@ -49,7 +49,7 @@ import io.legado.app.help.http.CookieManager as AppCookieManager
 class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
 class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
 
 
     override val binding by viewBinding(ActivityWebViewBinding::inflate)
     override val binding by viewBinding(ActivityWebViewBinding::inflate)
-    override val viewModel by viewModels<WebViewModel>()
+    override val viewModel by viewModel<WebViewModel>()
     private var customWebViewCallback: WebChromeClient.CustomViewCallback? = null
     private var customWebViewCallback: WebChromeClient.CustomViewCallback? = null
     private var webPic: String? = null
     private var webPic: String? = null
     private var isCloudflareChallenge = false
     private var isCloudflareChallenge = false

+ 6 - 3
app/src/main/java/io/legado/app/ui/browser/WebViewModel.kt

@@ -8,7 +8,7 @@ import android.webkit.WebView
 import io.legado.app.base.BaseViewModel
 import io.legado.app.base.BaseViewModel
 import io.legado.app.constant.AppConst.imagePathKey
 import io.legado.app.constant.AppConst.imagePathKey
 import io.legado.app.constant.SourceType
 import io.legado.app.constant.SourceType
-import io.legado.app.data.appDb
+import io.legado.app.data.repository.BookSourceRepository
 import io.legado.app.exception.NoStackTraceException
 import io.legado.app.exception.NoStackTraceException
 import io.legado.app.help.http.newCallResponseBody
 import io.legado.app.help.http.newCallResponseBody
 import io.legado.app.help.http.okHttpClient
 import io.legado.app.help.http.okHttpClient
@@ -21,7 +21,10 @@ import io.legado.app.utils.printOnDebug
 import io.legado.app.utils.toastOnUi
 import io.legado.app.utils.toastOnUi
 import org.apache.commons.text.StringEscapeUtils
 import org.apache.commons.text.StringEscapeUtils
 
 
-class WebViewModel(application: Application) : BaseViewModel(application) {
+class WebViewModel(
+    application: Application,
+    private val bookSourceRepository: BookSourceRepository,
+) : BaseViewModel(application) {
     var intent: Intent? = null
     var intent: Intent? = null
     var baseUrl: String = ""
     var baseUrl: String = ""
     var html: String? = null
     var html: String? = null
@@ -97,7 +100,7 @@ class WebViewModel(application: Application) : BaseViewModel(application) {
         if (refetchAfterSuccess) {
         if (refetchAfterSuccess) {
             execute {
             execute {
                 val url = intent!!.getStringExtra("url")!!
                 val url = intent!!.getStringExtra("url")!!
-                val source = appDb.bookSourceDao.getBookSource(sourceOrigin)
+                val source = bookSourceRepository.getBookSource(sourceOrigin)
                 html = AnalyzeUrl(
                 html = AnalyzeUrl(
                     url,
                     url,
                     headerMapF = headerMap,
                     headerMapF = headerMap,

+ 0 - 1
build.gradle.kts

@@ -225,7 +225,6 @@ val verifyConfigArchitecture = tasks.register<VerifyConfigArchitectureTask>(
             "io/legado/app/ui/book/info/edit/BookInfoEditViewModel.kt" to 2,
             "io/legado/app/ui/book/info/edit/BookInfoEditViewModel.kt" to 2,
             "io/legado/app/ui/book/manga/ReadMangaViewModel.kt" to 17,
             "io/legado/app/ui/book/manga/ReadMangaViewModel.kt" to 17,
             "io/legado/app/ui/book/read/ReadBookViewModel.kt" to 52,
             "io/legado/app/ui/book/read/ReadBookViewModel.kt" to 52,
-            "io/legado/app/ui/browser/WebViewModel.kt" to 1,
             "io/legado/app/ui/login/SourceLoginViewModel.kt" to 6,
             "io/legado/app/ui/login/SourceLoginViewModel.kt" to 6,
             "io/legado/app/ui/tagGroupRule/TagGroupRuleViewModel.kt" to 4,
             "io/legado/app/ui/tagGroupRule/TagGroupRuleViewModel.kt" to 4,
         )
         )