修复添加本地,不显示以添加书籍的bug

pull/461/head
gedoor 4 years ago
parent 1cd696cc9c
commit c1ae91d34a
  1. 21
      app/src/main/java/io/legado/app/ui/book/local/ImportBookAdapter.kt

@ -15,11 +15,14 @@ class ImportBookAdapter(context: Context, val callBack: CallBack) :
SimpleRecyclerAdapter<DocItem>(context, R.layout.item_import_book) {
var selectedUris = hashSetOf<String>()
var checkableCount = 0
private var bookPaths = arrayListOf<String>()
private var bookFileNames = arrayListOf<String>()
fun upBookHas(uriList: List<String>) {
bookPaths.clear()
bookPaths.addAll(uriList)
fun upBookHas(bookUrls: List<String>) {
bookFileNames.clear()
bookUrls.forEach {
val path = Uri.decode(it)
bookFileNames.add(FileUtils.getName(path))
}
notifyDataSetChanged()
upCheckableCount()
}
@ -32,7 +35,7 @@ class ImportBookAdapter(context: Context, val callBack: CallBack) :
private fun upCheckableCount() {
checkableCount = 0
getItems().forEach {
if (!it.isDir && !bookPaths.contains(it.uri.toString())) {
if (!it.isDir && !bookFileNames.contains(it.uri.toString())) {
checkableCount++
}
}
@ -42,7 +45,7 @@ class ImportBookAdapter(context: Context, val callBack: CallBack) :
fun selectAll(selectAll: Boolean) {
if (selectAll) {
getItems().forEach {
if (!it.isDir && !bookPaths.contains(it.uri.toString())) {
if (!it.isDir && !bookFileNames.contains(it.uri.toString())) {
selectedUris.add(it.uri.toString())
}
}
@ -84,9 +87,7 @@ class ImportBookAdapter(context: Context, val callBack: CallBack) :
ll_brief.gone()
cb_select.isChecked = false
} else {
val path =
if (item.uri.isContentScheme()) item.uri.toString() else item.uri.path
if (bookPaths.contains(path)) {
if (bookFileNames.contains(item.name)) {
iv_icon.setImageResource(R.drawable.ic_book_has)
iv_icon.visible()
cb_select.invisible()
@ -112,7 +113,7 @@ class ImportBookAdapter(context: Context, val callBack: CallBack) :
getItem(holder.layoutPosition)?.let {
if (it.isDir) {
callBack.nextDoc(it.uri)
} else if (!bookPaths.contains(it.uri.toString())) {
} else if (!bookFileNames.contains(it.uri.toString())) {
if (!selectedUris.contains(it.uri.toString())) {
selectedUris.add(it.uri.toString())
} else {

Loading…
Cancel
Save