diff --git a/app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookActivity.kt index 740afc1cc..936c7b70b 100644 --- a/app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookActivity.kt @@ -49,7 +49,7 @@ class ArrangeBookActivity : VMBaseActivity(R.layout.activi adapter = ArrangeBookAdapter(this, this) recycler_view.adapter = adapter cb_selected_all.onClick { - adapter.selectAll(cb_selected_all.isChecked) + adapter.selectAll(!adapter.isSelectAll()) } } @@ -70,11 +70,7 @@ class ArrangeBookActivity : VMBaseActivity(R.layout.activi } override fun upSelectCount() { - if (adapter.selectedBooks.size == 0) { - cb_selected_all.isChecked = false - } else { - cb_selected_all.isChecked = adapter.selectedBooks.size >= adapter.getItems().size - } + cb_selected_all.isChecked = adapter.isSelectAll() //重置全选的文字 if (cb_selected_all.isChecked) { cb_selected_all.setText(R.string.cancel) diff --git a/app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookAdapter.kt b/app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookAdapter.kt index 75bc12c85..890f29bad 100644 --- a/app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/arrange/ArrangeBookAdapter.kt @@ -15,17 +15,25 @@ class ArrangeBookAdapter(context: Context, val callBack: CallBack) : val selectedBooks: HashSet = hashSetOf() + fun isSelectAll(): Boolean { + return if (selectedBooks.isEmpty()) { + false + } else { + selectedBooks.size >= itemCount + } + } + fun selectAll(selectAll: Boolean) { if (selectAll) { - selectedBooks.clear() - notifyDataSetChanged() - callBack.upSelectCount() - } else { getItems().forEach { selectedBooks.add(it.bookUrl) } notifyDataSetChanged() callBack.upSelectCount() + } else { + selectedBooks.clear() + notifyDataSetChanged() + callBack.upSelectCount() } }