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

refactor: 清零 BookInfoEditViewModel DAO 直连

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

+ 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.book.info.edit.BookInfoEditViewModel
 import io.legado.app.ui.browser.WebViewModel
 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
@@ -562,6 +563,12 @@ val appModule = module {
             bookSourceRepository = get(),
             bookSourceRepository = get(),
         )
         )
     }
     }
+    viewModel {
+        BookInfoEditViewModel(
+            application = get(),
+            bookRepository = 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/book/info/edit/BookInfoEditActivity.kt

@@ -1,7 +1,7 @@
 package io.legado.app.ui.book.info.edit
 package io.legado.app.ui.book.info.edit
 
 
 import android.os.Bundle
 import android.os.Bundle
-import androidx.activity.viewModels
+import org.koin.androidx.viewmodel.ext.android.viewModel
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.Composable
 import io.legado.app.base.BaseComposeActivity
 import io.legado.app.base.BaseComposeActivity
 import io.legado.app.ui.book.changecover.ChangeCoverDialog
 import io.legado.app.ui.book.changecover.ChangeCoverDialog
@@ -9,7 +9,7 @@ import io.legado.app.ui.main.MainActivity
 
 
 class BookInfoEditActivity : BaseComposeActivity(), ChangeCoverDialog.CallBack {
 class BookInfoEditActivity : BaseComposeActivity(), ChangeCoverDialog.CallBack {
 
 
-    private val viewModel by viewModels<BookInfoEditViewModel>()
+    private val viewModel by viewModel<BookInfoEditViewModel>()
 
 
     @Composable
     @Composable
     override fun Content() {
     override fun Content() {

+ 7 - 4
app/src/main/java/io/legado/app/ui/book/info/edit/BookInfoEditViewModel.kt

@@ -7,8 +7,8 @@ import android.net.Uri
 import io.legado.app.base.BaseViewModel
 import io.legado.app.base.BaseViewModel
 import io.legado.app.constant.AppLog
 import io.legado.app.constant.AppLog
 import io.legado.app.constant.BookType
 import io.legado.app.constant.BookType
-import io.legado.app.data.appDb
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.Book
+import io.legado.app.data.repository.BookRepository
 import io.legado.app.help.book.BookHelp
 import io.legado.app.help.book.BookHelp
 import io.legado.app.help.book.addType
 import io.legado.app.help.book.addType
 import io.legado.app.help.book.applyTagGroupRulesForBook
 import io.legado.app.help.book.applyTagGroupRulesForBook
@@ -48,14 +48,17 @@ data class BookInfoEditUiState(
     val book: Book? = null,
     val book: Book? = null,
 )
 )
 
 
-class BookInfoEditViewModel(application: Application) : BaseViewModel(application) {
+class BookInfoEditViewModel(
+    application: Application,
+    private val bookRepository: BookRepository,
+) : BaseViewModel(application) {
     var book: Book? = null
     var book: Book? = null
     private val _uiState = MutableStateFlow(BookInfoEditUiState())
     private val _uiState = MutableStateFlow(BookInfoEditUiState())
     val uiState: StateFlow<BookInfoEditUiState> = _uiState.asStateFlow()
     val uiState: StateFlow<BookInfoEditUiState> = _uiState.asStateFlow()
 
 
     fun loadBook(bookUrl: String) {
     fun loadBook(bookUrl: String) {
         execute {
         execute {
-            book = appDb.bookDao.getBook(bookUrl)
+            book = bookRepository.getBook(bookUrl)
             book?.let {
             book?.let {
                 val selectedType = when {
                 val selectedType = when {
                     it.isImage -> BookInfoEditType.IMAGE
                     it.isImage -> BookInfoEditType.IMAGE
@@ -147,7 +150,7 @@ class BookInfoEditViewModel(application: Application) : BaseViewModel(applicatio
                 if (ReadBook.book?.bookUrl == book.bookUrl) {
                 if (ReadBook.book?.bookUrl == book.bookUrl) {
                     ReadBook.book = book
                     ReadBook.book = book
                 }
                 }
-                appDb.bookDao.update(book)
+                bookRepository.update(book)
             }
             }
         }.onSuccess {
         }.onSuccess {
             onSuccess.invoke()
             onSuccess.invoke()

+ 0 - 1
build.gradle.kts

@@ -222,7 +222,6 @@ val verifyConfigArchitecture = tasks.register<VerifyConfigArchitectureTask>(
             "io/legado/app/ui/book/audio/AudioPlayViewModel.kt" to 11,
             "io/legado/app/ui/book/audio/AudioPlayViewModel.kt" to 11,
             "io/legado/app/ui/book/changecover/ChangeCoverViewModel.kt" to 3,
             "io/legado/app/ui/book/changecover/ChangeCoverViewModel.kt" to 3,
             "io/legado/app/ui/book/info/BookInfoViewModel.kt" to 34,
             "io/legado/app/ui/book/info/BookInfoViewModel.kt" to 34,
-            "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/login/SourceLoginViewModel.kt" to 6,
             "io/legado/app/ui/login/SourceLoginViewModel.kt" to 6,