This commit is contained in:
Horis 2024-01-22 20:21:46 +08:00
parent 1068f567ad
commit 9de9ac4cf8
3 changed files with 11 additions and 1 deletions

View File

@ -6,6 +6,7 @@ import androidx.annotation.IntDef
* 以二进制位来区分,可能一本书籍包含多个类型,每一位代表一个类型,数值为2的n次方 * 以二进制位来区分,可能一本书籍包含多个类型,每一位代表一个类型,数值为2的n次方
* 以二进制位来区分,数据库查询更高效, 数值>=8和老版本类型区分开 * 以二进制位来区分,数据库查询更高效, 数值>=8和老版本类型区分开
*/ */
@Suppress("ConstPropertyName")
object BookType { object BookType {
/** /**
* 8 文本 * 8 文本

View File

@ -13,6 +13,7 @@ import androidx.activity.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import io.legado.app.R import io.legado.app.R
import io.legado.app.base.VMBaseActivity import io.legado.app.base.VMBaseActivity
import io.legado.app.constant.BookType
import io.legado.app.constant.Theme import io.legado.app.constant.Theme
import io.legado.app.data.appDb import io.legado.app.data.appDb
import io.legado.app.data.entities.Book import io.legado.app.data.entities.Book
@ -26,6 +27,7 @@ import io.legado.app.help.book.isAudio
import io.legado.app.help.book.isLocal import io.legado.app.help.book.isLocal
import io.legado.app.help.book.isLocalTxt import io.legado.app.help.book.isLocalTxt
import io.legado.app.help.book.isWebFile import io.legado.app.help.book.isWebFile
import io.legado.app.help.book.removeType
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.config.LocalConfig import io.legado.app.help.config.LocalConfig
import io.legado.app.lib.dialogs.alert import io.legado.app.lib.dialogs.alert
@ -224,6 +226,9 @@ class BookInfoActivity :
viewModel.getBook()?.let { viewModel.getBook()?.let {
it.canUpdate = !it.canUpdate it.canUpdate = !it.canUpdate
if (viewModel.inBookshelf) { if (viewModel.inBookshelf) {
if (!it.canUpdate) {
it.removeType(BookType.updateError)
}
viewModel.saveBook(it) viewModel.saveBook(it)
} }
} }

View File

@ -37,7 +37,11 @@ class BookshelfManageViewModel(application: Application) : BaseViewModel(applica
fun upCanUpdate(books: List<Book>, canUpdate: Boolean) { fun upCanUpdate(books: List<Book>, canUpdate: Boolean) {
execute { execute {
val array = Array(books.size) { val array = Array(books.size) {
books[it].copy(canUpdate = canUpdate) books[it].copy(canUpdate = canUpdate).apply {
if (!canUpdate) {
removeType(BookType.updateError)
}
}
} }
appDb.bookDao.update(*array) appDb.bookDao.update(*array)
} }