Handle download cancelation from icon properly (fixes #4241)

This commit is contained in:
arkon
2021-01-16 15:48:02 -05:00
parent 271489bdfd
commit f85194ec46
7 changed files with 35 additions and 17 deletions

View File

@@ -20,7 +20,9 @@ class ChapterHolder(
private val binding = ChaptersItemBinding.bind(view)
init {
binding.download.setOnClickListener { onDownloadClick(it) }
binding.download.setOnClickListener {
onDownloadClick(it, bindingAdapterPosition)
}
}
fun bind(item: ChapterItem, manga: Manga) {

View File

@@ -11,11 +11,11 @@ open class BaseChapterHolder(
private val adapter: BaseChaptersAdapter<*>
) : FlexibleViewHolder(view, adapter) {
fun onDownloadClick(view: View) {
val item = adapter.getItem(bindingAdapterPosition) as? BaseChapterItem<*, *> ?: return
fun onDownloadClick(view: View, position: Int) {
val item = adapter.getItem(position) as? BaseChapterItem<*, *> ?: return
when (item.status) {
Download.State.NOT_DOWNLOADED, Download.State.ERROR -> {
adapter.clickListener.downloadChapter(bindingAdapterPosition)
adapter.clickListener.downloadChapter(position)
}
else -> {
view.popupMenu(
@@ -28,7 +28,7 @@ open class BaseChapterHolder(
findItem(R.id.cancel_download).isVisible = item.status != Download.State.DOWNLOADED
},
onMenuItemClick = {
adapter.clickListener.deleteChapter(bindingAdapterPosition)
adapter.clickListener.deleteChapter(position)
true
}
)

View File

@@ -32,7 +32,9 @@ class UpdatesHolder(private val view: View, private val adapter: UpdatesAdapter)
adapter.coverClickListener.onCoverClick(bindingAdapterPosition)
}
binding.download.setOnClickListener { onDownloadClick(it) }
binding.download.setOnClickListener {
onDownloadClick(it, bindingAdapterPosition)
}
}
fun bind(item: UpdatesItem) {