diff --git a/app/src/main/java/io/legado/app/data/dao/BookDao.kt b/app/src/main/java/io/legado/app/data/dao/BookDao.kt index b2d129523..266dc4c48 100644 --- a/app/src/main/java/io/legado/app/data/dao/BookDao.kt +++ b/app/src/main/java/io/legado/app/data/dao/BookDao.kt @@ -44,9 +44,6 @@ interface BookDao { ) fun flowLocalNoGroup(): Flow> - @Query("SELECT bookUrl FROM books WHERE type & ${BookType.local} > 0") - fun flowLocalUri(): Flow> - @Query("SELECT * FROM books WHERE (`group` & :group) > 0") fun flowByGroup(group: Long): Flow> @@ -104,7 +101,7 @@ interface BookDao { @Query("select 1 from books where bookUrl = :bookUrl") fun has(bookUrl: String): Boolean? - @Query("select 1 from books where originName = :fileName") + @Query("select 1 from books where originName = :fileName or origin like ${BookType.localTag} || '::' || :fileName") fun hasFile(fileName: String): Boolean? @Insert(onConflict = OnConflictStrategy.REPLACE) diff --git a/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt index 31f73df48..ecf7db588 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt @@ -131,11 +131,6 @@ class ImportBookActivity : BaseImportBookActivity(), viewModel.dataFlowStart = { initRootDoc() } - launch { - appDb.bookDao.flowLocal().conflate().collect { - adapter.upBookHas(it) - } - } launch { viewModel.dataFlow.conflate().collect { docs -> adapter.setItems(docs) diff --git a/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookAdapter.kt b/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookAdapter.kt index c22857de6..d4c911e7b 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookAdapter.kt @@ -12,6 +12,7 @@ import io.legado.app.data.entities.Book import io.legado.app.databinding.ItemImportBookBinding import io.legado.app.help.book.archiveName import io.legado.app.help.book.isArchive +import io.legado.app.model.localBook.LocalBook import io.legado.app.utils.* @@ -19,7 +20,6 @@ class ImportBookAdapter(context: Context, val callBack: CallBack) : RecyclerAdapter(context) { val selectedUris = hashSetOf() var checkableCount = 0 - private val bookOrArchiveNamesOnBookShelf = arrayListOf() override fun getViewBinding(parent: ViewGroup): ItemImportBookBinding { return ItemImportBookBinding.inflate(inflater, parent, false) @@ -87,26 +87,7 @@ class ImportBookAdapter(context: Context, val callBack: CallBack) : } private fun isOnBookShelf(fileDoc: FileDoc): Boolean { - return bookOrArchiveNamesOnBookShelf.contains(fileDoc.name) - } - - @SuppressLint("NotifyDataSetChanged") - fun upBookHas(books: List) { - bookOrArchiveNamesOnBookShelf.clear() - books.forEach { - if (it.isArchive) { - bookOrArchiveNamesOnBookShelf.add( - it.archiveName!! - ) - } else { - val path = Uri.decode(it.bookUrl) - bookOrArchiveNamesOnBookShelf.add( - FileUtils.getName(path) - ) - } - } - notifyDataSetChanged() - upCheckableCount() + return LocalBook.isOnBookShelf(fileDoc.name) } private fun upCheckableCount() {