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次方
* 以二进制位来区分,数据库查询更高效, 数值>=8和老版本类型区分开
*/
@Suppress("ConstPropertyName")
object BookType {
/**
* 8 文本

View File

@ -13,6 +13,7 @@ import androidx.activity.viewModels
import androidx.lifecycle.lifecycleScope
import io.legado.app.R
import io.legado.app.base.VMBaseActivity
import io.legado.app.constant.BookType
import io.legado.app.constant.Theme
import io.legado.app.data.appDb
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.isLocalTxt
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.LocalConfig
import io.legado.app.lib.dialogs.alert
@ -224,6 +226,9 @@ class BookInfoActivity :
viewModel.getBook()?.let {
it.canUpdate = !it.canUpdate
if (viewModel.inBookshelf) {
if (!it.canUpdate) {
it.removeType(BookType.updateError)
}
viewModel.saveBook(it)
}
}

View File

@ -37,7 +37,11 @@ class BookshelfManageViewModel(application: Application) : BaseViewModel(applica
fun upCanUpdate(books: List<Book>, canUpdate: Boolean) {
execute {
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)
}