[修复] 某些情况下的阅读崩溃问题
This commit is contained in:
@@ -607,7 +607,10 @@ class ReadBookActivity : BaseReadBookActivity(),
|
||||
R.id.menu_download -> showDownloadDialog()
|
||||
R.id.menu_add_bookmark -> addBookmark()
|
||||
R.id.menu_simulated_reading -> showSimulatedReading()
|
||||
R.id.menu_edit_content -> showDialogFragment(ContentEditDialog())
|
||||
R.id.menu_edit_content -> {
|
||||
binding.readMenu.runMenuOut()
|
||||
showDialogFragment(ContentEditDialog())
|
||||
}
|
||||
R.id.menu_update_toc -> ReadBook.book?.let {
|
||||
if (it.isEpub) {
|
||||
BookHelp.clearCache(it)
|
||||
@@ -618,8 +621,10 @@ class ReadBookActivity : BaseReadBookActivity(),
|
||||
}
|
||||
loadChapterList(it)
|
||||
}
|
||||
|
||||
R.id.menu_enable_replace -> changeReplaceRuleState()
|
||||
R.id.menu_enable_replace -> {
|
||||
binding.readMenu.runMenuOut()
|
||||
changeReplaceRuleState()
|
||||
}
|
||||
R.id.menu_re_segment -> ReadBook.book?.let {
|
||||
it.setReSegment(!it.getReSegment())
|
||||
item.isChecked = it.getReSegment()
|
||||
|
||||
@@ -813,44 +813,48 @@ class ReadMenu @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
|
||||
fun upSeekBar() {
|
||||
//孩子们 土方法丑陋但有效
|
||||
binding.seekReadPage.apply {
|
||||
when (AppConfig.progressBarBehavior) {
|
||||
"page" -> {
|
||||
ReadBook.curTextChapter?.let { chapter ->
|
||||
if (chapter.pageSize >= 0 && ReadBook.durPageIndex >= 0) {
|
||||
valueFrom = 1f
|
||||
valueTo = chapter.pageSize.toFloat().coerceAtLeast(2f)
|
||||
stepSize = 1f
|
||||
value = (ReadBook.durPageIndex).coerceIn(1, chapter.pageSize).toFloat()
|
||||
} else {
|
||||
valueFrom = 0f
|
||||
valueTo = 100000f
|
||||
stepSize = 0f
|
||||
value = 0f
|
||||
}
|
||||
fun upSeekBar() = binding.seekReadPage.apply {
|
||||
|
||||
fun safeSet(rangeFrom: Float, rangeTo: Float, step: Float, rawValue: Float) {
|
||||
valueFrom = rangeFrom
|
||||
valueTo = rangeTo
|
||||
stepSize = step
|
||||
val safeValue = rawValue.coerceIn(rangeFrom, rangeTo)
|
||||
if (value != safeValue) value = safeValue
|
||||
}
|
||||
|
||||
when (AppConfig.progressBarBehavior) {
|
||||
"page" -> {
|
||||
ReadBook.curTextChapter?.let { chapter ->
|
||||
if (chapter.pageSize > 0 && ReadBook.durPageIndex >= 0) {
|
||||
safeSet(
|
||||
rangeFrom = 1f,
|
||||
rangeTo = chapter.pageSize.toFloat().coerceAtLeast(2f),
|
||||
step = 1f,
|
||||
rawValue = ReadBook.durPageIndex.toFloat()
|
||||
)
|
||||
} else {
|
||||
safeSet(0f, 100000f, 0f, 0f)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
"chapter" -> {
|
||||
if (ReadBook.simulatedChapterSize > 0)
|
||||
{
|
||||
valueFrom = 1f
|
||||
valueTo = ReadBook.simulatedChapterSize.toFloat().coerceAtLeast(2f)
|
||||
stepSize = 1f
|
||||
value = (ReadBook.durChapterIndex).coerceIn(1, ReadBook.simulatedChapterSize).toFloat()
|
||||
} else {
|
||||
valueFrom = 0f
|
||||
valueTo = 100000f
|
||||
stepSize = 0f
|
||||
value = 0f
|
||||
}
|
||||
"chapter" -> {
|
||||
if (ReadBook.simulatedChapterSize > 0) {
|
||||
safeSet(
|
||||
rangeFrom = 1f,
|
||||
rangeTo = ReadBook.simulatedChapterSize.toFloat().coerceAtLeast(2f),
|
||||
step = 1f,
|
||||
rawValue = ReadBook.durChapterIndex.toFloat()
|
||||
)
|
||||
} else {
|
||||
safeSet(0f, 100000f, 0f, 0f)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// fun upSeekBar() {
|
||||
// binding.seekReadPage.apply {
|
||||
// when (AppConfig.progressBarBehavior) {
|
||||
|
||||
Reference in New Issue
Block a user