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