diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt index 0e5ee1061c..0c08e976ff 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt @@ -521,9 +521,9 @@ open class LibraryController( private fun openRandomManga(global: Boolean) { val items = if (global) { - adapter.currentItems - } else { presenter.allLibraryItems + } else { + adapter.currentItems }.filter { (it is LibraryItem && !it.manga.isBlank() && !it.manga.isHidden() && (!it.manga.initialized || it.manga.unread > 0)) } if (items.isNotEmpty()) { val item = items.random() as LibraryItem diff --git a/data/src/commonMain/sqldelight/tachiyomi/data/mangas.sq b/data/src/commonMain/sqldelight/tachiyomi/data/mangas.sq index ef8dfc2cd6..d70d78795e 100644 --- a/data/src/commonMain/sqldelight/tachiyomi/data/mangas.sq +++ b/data/src/commonMain/sqldelight/tachiyomi/data/mangas.sq @@ -86,3 +86,9 @@ WHERE _id = :mangaId; selectLastInsertedRowId: SELECT last_insert_rowid(); + +deleteNotInLibraryAndNotReadBySourceIds: +DELETE FROM mangas +WHERE favorite = :favorite AND source IN :sourceIds AND _id NOT IN ( + SELECT chapters.manga_id FROM chapters WHERE read = 1 OR last_page_read != 0 +);