basic offline manga fragment

This commit is contained in:
Finnley Somdahl 2023-11-05 02:17:49 -06:00
parent c75df942f2
commit 91d869005c
14 changed files with 502 additions and 32 deletions

View file

@ -80,6 +80,16 @@ class MangaChapterAdapter(
}
}
fun removeDownload(chapterNumber: String) {
activeDownloads.remove(chapterNumber)
downloadedChapters.remove(chapterNumber)
// Find the position of the chapter and notify only that item
val position = arr.indexOfFirst { it.number == chapterNumber }
if (position != -1) {
notifyItemChanged(position)
}
}
inner class ChapterListViewHolder(val binding: ItemChapterListBinding) : RecyclerView.ViewHolder(binding.root) {
fun bind(chapterNumber: String) {
if (activeDownloads.contains(chapterNumber)) {

View file

@ -417,6 +417,12 @@ open class MangaReadFragment : Fragment() {
val chapterNumber = intent.getStringExtra(EXTRA_CHAPTER_NUMBER)
chapterNumber?.let { chapterAdapter.stopDownload(it) }
}
ACTION_DOWNLOAD_FAILED -> {
val chapterNumber = intent.getStringExtra(EXTRA_CHAPTER_NUMBER)
chapterNumber?.let {
chapterAdapter.removeDownload(it)
}
}
}
}
}
@ -468,6 +474,7 @@ open class MangaReadFragment : Fragment() {
companion object {
const val ACTION_DOWNLOAD_STARTED = "ani.dantotsu.ACTION_DOWNLOAD_STARTED"
const val ACTION_DOWNLOAD_FINISHED = "ani.dantotsu.ACTION_DOWNLOAD_FINISHED"
const val ACTION_DOWNLOAD_FAILED = "ani.dantotsu.ACTION_DOWNLOAD_FAILED"
const val EXTRA_CHAPTER_NUMBER = "extra_chapter_number"
}
}