diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt index d2e04fcbb0..95865c9bc3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt @@ -798,6 +798,10 @@ class MangaDetailsController : } when (rangeMode) { RangeMode.Download -> downloadChapters(chapterList) + RangeMode.RemoveDownload -> massDeleteChapters( + chapterList.filter { it.status != Download.State.NOT_DOWNLOADED }, + false, + ) RangeMode.Read -> markAsRead(chapterList) RangeMode.Unread -> markAsUnread(chapterList) } @@ -1082,7 +1086,7 @@ class MangaDetailsController : .setNegativeButton(android.R.string.cancel, null) .show() } - R.id.remove_all, R.id.remove_read, R.id.remove_non_bookmarked -> massDeleteChapters(item.itemId) + R.id.remove_all, R.id.remove_read, R.id.remove_non_bookmarked, R.id.remove_custom -> massDeleteChapters(item.itemId) R.id.action_mark_all_as_unread -> { activity!!.materialAlertDialog() .setMessage(R.string.mark_all_chapters_as_unread) @@ -1180,6 +1184,11 @@ class MangaDetailsController : R.id.remove_all -> presenter.allChapters R.id.remove_non_bookmarked -> presenter.allChapters.filter { !it.bookmark } R.id.remove_read -> presenter.allChapters.filter { it.read } + R.id.remove_custom -> { + createActionModeIfNeeded() + rangeMode = RangeMode.RemoveDownload + return + } else -> emptyList() }.filter { it.isDownloaded } if (chaptersToDelete.isNotEmpty() || choice == R.id.remove_all) { @@ -1314,7 +1323,10 @@ class MangaDetailsController : override fun startDownloadRange(position: Int) { createActionModeIfNeeded() - rangeMode = RangeMode.Download + val chapterItem = (adapter?.getItem(position) as? ChapterItem) ?: return + rangeMode = if (chapterItem.status in listOf(Download.State.NOT_DOWNLOADED, Download.State.ERROR)) { + RangeMode.Download + } else RangeMode.RemoveDownload onItemClick(null, position) } @@ -1722,6 +1734,7 @@ class MangaDetailsController : private enum class RangeMode { Download, + RemoveDownload, Read, Unread } diff --git a/app/src/main/res/menu/manga_details.xml b/app/src/main/res/menu/manga_details.xml index 11cc29ea23..82f1d1c2fb 100644 --- a/app/src/main/res/menu/manga_details.xml +++ b/app/src/main/res/menu/manga_details.xml @@ -64,6 +64,9 @@ +