Load chapters in the dialog instantly

This commit is contained in:
Jobobby04 2021-06-02 21:21:38 -04:00
parent 78d2881b4b
commit 57ca396b46
2 changed files with 25 additions and 33 deletions

View File

@ -35,7 +35,6 @@ import eu.kanade.tachiyomi.util.isLocal
import eu.kanade.tachiyomi.util.lang.byteSize import eu.kanade.tachiyomi.util.lang.byteSize
import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.takeBytes import eu.kanade.tachiyomi.util.lang.takeBytes
import eu.kanade.tachiyomi.util.lang.withIOContext
import eu.kanade.tachiyomi.util.storage.DiskUtil import eu.kanade.tachiyomi.util.storage.DiskUtil
import eu.kanade.tachiyomi.util.system.ImageUtil import eu.kanade.tachiyomi.util.system.ImageUtil
import eu.kanade.tachiyomi.util.updateCoverLastModified import eu.kanade.tachiyomi.util.updateCoverLastModified
@ -307,25 +306,23 @@ class ReaderPresenter(
} }
// SY --> // SY -->
suspend fun getChapters(context: Context): List<ReaderChapterItem> { fun getChapters(context: Context): List<ReaderChapterItem> {
return withIOContext { val currentChapter = getCurrentChapter()
val currentChapter = getCurrentChapter() val decimalFormat = DecimalFormat(
val decimalFormat = DecimalFormat( "#.###",
"#.###", DecimalFormatSymbols()
DecimalFormatSymbols() .apply { decimalSeparator = '.' }
.apply { decimalSeparator = '.' } )
)
chapterList.map { return chapterList.map {
ReaderChapterItem( ReaderChapterItem(
it.chapter, it.chapter,
manga!!, manga!!,
it.chapter == currentChapter?.chapter, it.chapter == currentChapter?.chapter,
context, context,
preferences.dateFormat(), preferences.dateFormat(),
decimalFormat decimalFormat
) )
}
} }
} }
// SY <-- // SY <--

View File

@ -11,7 +11,6 @@ import eu.kanade.tachiyomi.databinding.ReaderChaptersDialogBinding
import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.ui.reader.ReaderPresenter import eu.kanade.tachiyomi.ui.reader.ReaderPresenter
import eu.kanade.tachiyomi.util.chapter.getChapterSort import eu.kanade.tachiyomi.util.chapter.getChapterSort
import eu.kanade.tachiyomi.util.lang.launchUI
import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.dpToPx
class ReaderChapterDialog(private val activity: ReaderActivity) : ReaderChapterAdapter.OnBookmarkClickListener { class ReaderChapterDialog(private val activity: ReaderActivity) : ReaderChapterAdapter.OnBookmarkClickListener {
@ -26,6 +25,7 @@ class ReaderChapterDialog(private val activity: ReaderActivity) : ReaderChapterA
.title(R.string.chapters) .title(R.string.chapters)
.customView(view = binding.root) .customView(view = binding.root)
.negativeButton(android.R.string.cancel) .negativeButton(android.R.string.cancel)
.onDismiss { destroy() }
.show { .show {
adapter = ReaderChapterAdapter(this@ReaderChapterDialog) adapter = ReaderChapterAdapter(this@ReaderChapterDialog)
binding.chapterRecycler.adapter = adapter binding.chapterRecycler.adapter = adapter
@ -40,26 +40,21 @@ class ReaderChapterDialog(private val activity: ReaderActivity) : ReaderChapterA
} }
binding.chapterRecycler.layoutManager = LinearLayoutManager(context) binding.chapterRecycler.layoutManager = LinearLayoutManager(context)
onDismiss {
destroy()
}
refreshList() refreshList()
} }
} }
private fun refreshList() { private fun refreshList() {
launchUI { val chapters = presenter.getChapters(activity)
val chapters = presenter.getChapters(activity) .sortedWith(getChapterSort(presenter.manga!!))
.sortedWith(getChapterSort(presenter.manga!!))
adapter?.clear() adapter?.clear()
adapter?.updateDataSet(chapters) adapter?.updateDataSet(chapters)
(binding.chapterRecycler.layoutManager as LinearLayoutManager).scrollToPositionWithOffset( (binding.chapterRecycler.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(
adapter?.getGlobalPositionOf(chapters.find { it.isCurrent }) ?: 0, adapter?.getGlobalPositionOf(chapters.find { it.isCurrent }) ?: 0,
(binding.chapterRecycler.height / 2).dpToPx (binding.chapterRecycler.height / 2).dpToPx
) )
}
} }
fun destroy() { fun destroy() {