mirror of
https://github.com/gedoor/legado.git
synced 2024-07-19 01:17:25 +08:00
优化
This commit is contained in:
parent
89695e209b
commit
e103420588
@ -4,6 +4,8 @@ import android.annotation.SuppressLint
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
|
import android.widget.CheckBox
|
||||||
|
import android.widget.LinearLayout
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
import androidx.appcompat.widget.PopupMenu
|
import androidx.appcompat.widget.PopupMenu
|
||||||
import androidx.appcompat.widget.SearchView
|
import androidx.appcompat.widget.SearchView
|
||||||
@ -18,6 +20,7 @@ import io.legado.app.data.entities.BookGroup
|
|||||||
import io.legado.app.data.entities.BookSource
|
import io.legado.app.data.entities.BookSource
|
||||||
import io.legado.app.databinding.ActivityArrangeBookBinding
|
import io.legado.app.databinding.ActivityArrangeBookBinding
|
||||||
import io.legado.app.help.book.contains
|
import io.legado.app.help.book.contains
|
||||||
|
import io.legado.app.help.book.isLocal
|
||||||
import io.legado.app.help.config.AppConfig
|
import io.legado.app.help.config.AppConfig
|
||||||
import io.legado.app.lib.dialogs.alert
|
import io.legado.app.lib.dialogs.alert
|
||||||
import io.legado.app.lib.theme.primaryColor
|
import io.legado.app.lib.theme.primaryColor
|
||||||
@ -29,6 +32,7 @@ import io.legado.app.ui.widget.recycler.DragSelectTouchHelper
|
|||||||
import io.legado.app.ui.widget.recycler.ItemTouchCallback
|
import io.legado.app.ui.widget.recycler.ItemTouchCallback
|
||||||
import io.legado.app.ui.widget.recycler.VerticalDivider
|
import io.legado.app.ui.widget.recycler.VerticalDivider
|
||||||
import io.legado.app.utils.cnCompare
|
import io.legado.app.utils.cnCompare
|
||||||
|
import io.legado.app.utils.dpToPx
|
||||||
import io.legado.app.utils.setEdgeEffectColor
|
import io.legado.app.utils.setEdgeEffectColor
|
||||||
import io.legado.app.utils.showDialogFragment
|
import io.legado.app.utils.showDialogFragment
|
||||||
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
||||||
@ -271,7 +275,7 @@ class BookshelfManageActivity :
|
|||||||
|
|
||||||
private fun alertDelSelection() {
|
private fun alertDelSelection() {
|
||||||
alert(titleResource = R.string.draw, messageResource = R.string.sure_del) {
|
alert(titleResource = R.string.draw, messageResource = R.string.sure_del) {
|
||||||
okButton { viewModel.deleteBook(*adapter.selection.toTypedArray()) }
|
okButton { viewModel.deleteBook(adapter.selection) }
|
||||||
noButton()
|
noButton()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -315,8 +319,18 @@ class BookshelfManageActivity :
|
|||||||
|
|
||||||
override fun deleteBook(book: Book) {
|
override fun deleteBook(book: Book) {
|
||||||
alert(titleResource = R.string.draw, messageResource = R.string.sure_del) {
|
alert(titleResource = R.string.draw, messageResource = R.string.sure_del) {
|
||||||
|
val checkBox = CheckBox(this@BookshelfManageActivity).apply {
|
||||||
|
setText(R.string.delete_book_file)
|
||||||
|
}
|
||||||
|
val view = LinearLayout(this@BookshelfManageActivity).apply {
|
||||||
|
setPadding(16.dpToPx(), 0, 16.dpToPx(), 0)
|
||||||
|
addView(checkBox)
|
||||||
|
}
|
||||||
|
if (book.isLocal) {
|
||||||
|
customView { view }
|
||||||
|
}
|
||||||
okButton {
|
okButton {
|
||||||
viewModel.deleteBook(book)
|
viewModel.deleteBook(listOf(book), checkBox.isChecked)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import io.legado.app.data.entities.BookSource
|
|||||||
import io.legado.app.help.book.isLocal
|
import io.legado.app.help.book.isLocal
|
||||||
import io.legado.app.help.book.removeType
|
import io.legado.app.help.book.removeType
|
||||||
import io.legado.app.help.coroutine.Coroutine
|
import io.legado.app.help.coroutine.Coroutine
|
||||||
|
import io.legado.app.model.localBook.LocalBook
|
||||||
import io.legado.app.model.webBook.WebBook
|
import io.legado.app.model.webBook.WebBook
|
||||||
import io.legado.app.utils.toastOnUi
|
import io.legado.app.utils.toastOnUi
|
||||||
|
|
||||||
@ -36,9 +37,14 @@ class BookshelfManageViewModel(application: Application) : BaseViewModel(applica
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun deleteBook(vararg book: Book) {
|
fun deleteBook(books: List<Book>, deleteOriginal: Boolean = false) {
|
||||||
execute {
|
execute {
|
||||||
appDb.bookDao.delete(*book)
|
appDb.bookDao.delete(*books.toTypedArray())
|
||||||
|
books.forEach {
|
||||||
|
if (it.isLocal) {
|
||||||
|
LocalBook.deleteBook(it, deleteOriginal)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user