This commit is contained in:
Horis
2025-03-16 12:38:57 +08:00
parent b407bfca01
commit c1da73b1fe
2 changed files with 15 additions and 11 deletions
@@ -255,6 +255,11 @@ object ReadManga : CoroutineScope by MainScope() {
nextFinish = true nextFinish = true
list.addAll(it.contents) list.addAll(it.contents)
} }
pos = if (list.isNotEmpty()) {
pos.coerceIn(0, list.lastIndex)
} else {
-1
}
return MangaContent(pos, list, curFinish, nextFinish) return MangaContent(pos, list, curFinish, nextFinish)
} }
@@ -4,7 +4,6 @@ import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Handler
import android.os.Looper import android.os.Looper
import android.view.KeyEvent import android.view.KeyEvent
import android.view.Menu import android.view.Menu
@@ -57,6 +56,7 @@ import io.legado.app.ui.widget.recycler.LoadMoreView
import io.legado.app.utils.GSON import io.legado.app.utils.GSON
import io.legado.app.utils.NetworkUtils import io.legado.app.utils.NetworkUtils
import io.legado.app.utils.StartActivityContract import io.legado.app.utils.StartActivityContract
import io.legado.app.utils.buildMainHandler
import io.legado.app.utils.fastBinarySearch import io.legado.app.utils.fastBinarySearch
import io.legado.app.utils.findCenterViewPosition import io.legado.app.utils.findCenterViewPosition
import io.legado.app.utils.fromJsonObject import io.legado.app.utils.fromJsonObject
@@ -98,21 +98,18 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
PagerSnapHelper() PagerSnapHelper()
} }
private var mDisableAutoScrollPage = false private var isAutoScrollPage = false
private val mInitMangaAutoPageSpeed by lazy {
AppConfig.mangaAutoPageSpeed
}
private val mMangaColorFilter: MangaColorFilterConfig by lazy { private val mMangaColorFilter: MangaColorFilterConfig by lazy {
GSON.fromJsonObject<MangaColorFilterConfig>(AppConfig.mangaColorFilter).getOrNull() GSON.fromJsonObject<MangaColorFilterConfig>(AppConfig.mangaColorFilter).getOrNull()
?: MangaColorFilterConfig() ?: MangaColorFilterConfig()
} }
private var mMangaAutoPageSpeed = mInitMangaAutoPageSpeed private var mMangaAutoPageSpeed = AppConfig.mangaAutoPageSpeed
private lateinit var mMangaFooterConfig: MangaFooterConfig private lateinit var mMangaFooterConfig: MangaFooterConfig
private val mLabelBuilder by lazy { StringBuilder() } private val mLabelBuilder by lazy { StringBuilder() }
private val autoScrollHandler = Handler(Looper.getMainLooper()) private val autoScrollHandler = buildMainHandler()
private val autoScrollRunnable = object : Runnable { private val autoScrollRunnable = object : Runnable {
override fun run() { override fun run() {
scrollToNext() scrollToNext()
@@ -270,8 +267,10 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
mAdapter.submitList(list) { mAdapter.submitList(list) {
if (loadingViewVisible && curFinish) { if (loadingViewVisible && curFinish) {
binding.infobar.isVisible = true binding.infobar.isVisible = true
upInfoBar(list[pos]) if (pos > -1) {
mLayoutManager.scrollToPositionWithOffset(pos, 0) upInfoBar(list[pos])
mLayoutManager.scrollToPositionWithOffset(pos, 0)
}
binding.flLoading.isGone = true binding.flLoading.isGone = true
loadMoreView.visible() loadMoreView.visible()
binding.mangaMenu.upSeekBar( binding.mangaMenu.upSeekBar(
@@ -502,7 +501,7 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
R.id.menu_enable_auto_page -> { R.id.menu_enable_auto_page -> {
item.isChecked = !item.isChecked item.isChecked = !item.isChecked
val menuMangaAutoPageSpeed = mMenu?.findItem(R.id.menu_manga_auto_page_speed) val menuMangaAutoPageSpeed = mMenu?.findItem(R.id.menu_manga_auto_page_speed)
mDisableAutoScrollPage = item.isChecked isAutoScrollPage = item.isChecked
if (item.isChecked) { if (item.isChecked) {
startAutoPage() startAutoPage()
menuMangaAutoPageSpeed?.isVisible = true menuMangaAutoPageSpeed?.isVisible = true
@@ -672,7 +671,7 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
} }
private fun startAutoPage() { private fun startAutoPage() {
if (mDisableAutoScrollPage) { if (isAutoScrollPage) {
autoScrollHandler.postDelayed(autoScrollRunnable, mMangaAutoPageSpeed.times(1000L)) autoScrollHandler.postDelayed(autoScrollRunnable, mMangaAutoPageSpeed.times(1000L))
} }
} }