diff --git a/app/src/main/java/io/legado/app/ui/book/local/ImportBookAdapter.kt b/app/src/main/java/io/legado/app/ui/book/local/ImportBookAdapter.kt index 0a83e9641..1874d3c58 100644 --- a/app/src/main/java/io/legado/app/ui/book/local/ImportBookAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/local/ImportBookAdapter.kt @@ -15,11 +15,14 @@ class ImportBookAdapter(context: Context, val callBack: CallBack) : SimpleRecyclerAdapter(context, R.layout.item_import_book) { var selectedUris = hashSetOf() var checkableCount = 0 - private var bookPaths = arrayListOf() + private var bookFileNames = arrayListOf() - fun upBookHas(uriList: List) { - bookPaths.clear() - bookPaths.addAll(uriList) + fun upBookHas(bookUrls: List) { + 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 {