Load chapters in the dialog instantly
This commit is contained in:
parent
78d2881b4b
commit
57ca396b46
@ -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 <--
|
||||||
|
@ -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() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user