diff --git a/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt b/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt index 399c1a24c..e4a34da52 100644 --- a/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt +++ b/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt @@ -109,7 +109,7 @@ abstract class BaseReadAloudService : BaseService(), readAloudNumber = textChapter.getReadLength(pageIndex) contentList.clear() if (getPrefBoolean(PreferKey.readAloudByPage)) { - for (index in pageIndex..textChapter.lastIndex()) { + for (index in pageIndex..textChapter.lastIndex) { textChapter.page(index)?.text?.split("\n")?.let { contentList.addAll(it) } diff --git a/app/src/main/java/io/legado/app/service/help/ReadBook.kt b/app/src/main/java/io/legado/app/service/help/ReadBook.kt index a731a1c1c..1ef4a3caa 100644 --- a/app/src/main/java/io/legado/app/service/help/ReadBook.kt +++ b/app/src/main/java/io/legado/app/service/help/ReadBook.kt @@ -107,7 +107,7 @@ object ReadBook { fun moveToPrevChapter(upContent: Boolean, toLast: Boolean = true): Boolean { if (durChapterIndex > 0) { - durPageIndex = if (toLast) prevTextChapter?.lastIndex() ?: 0 else 0 + durPageIndex = if (toLast) prevTextChapter?.lastIndex ?: 0 else 0 durChapterIndex-- nextTextChapter = curTextChapter curTextChapter = prevTextChapter @@ -176,10 +176,10 @@ object ReadBook { fun durChapterPos(): Int { curTextChapter?.let { - if (durPageIndex < it.pageSize()) { + if (durPageIndex < it.pageSize) { return durPageIndex } - return it.pageSize() - 1 + return it.pageSize - 1 } return durPageIndex } diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index 43d03c332..0a5edcc7d 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -507,7 +507,7 @@ class ReadBookActivity : VMBaseActivity(R.layout.activity_boo } else { tv_chapter_url.gone() } - seek_read_page.max = it.pageSize().minus(1) + seek_read_page.max = it.pageSize.minus(1) seek_read_page.progress = ReadBook.durPageIndex tv_pre.isEnabled = ReadBook.durChapterIndex != 0 tv_next.isEnabled = ReadBook.durChapterIndex != ReadBook.chapterSize - 1 diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/TextPageFactory.kt b/app/src/main/java/io/legado/app/ui/book/read/page/TextPageFactory.kt index a38ed6e51..95917ae11 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/TextPageFactory.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/TextPageFactory.kt @@ -14,7 +14,7 @@ class TextPageFactory(dataSource: DataSource) : PageFactory(dataSource } override fun hasNextPlus(): Boolean = with(dataSource) { - return hasNextChapter() || pageIndex < (currentChapter?.pageSize() ?: 1) - 2 + return hasNextChapter() || pageIndex < (currentChapter?.pageSize ?: 1) - 2 } override fun moveToFirst() { @@ -23,10 +23,10 @@ class TextPageFactory(dataSource: DataSource) : PageFactory(dataSource override fun moveToLast() = with(dataSource) { currentChapter?.let { - if (it.pageSize() == 0) { + if (it.pageSize == 0) { ReadBook.setPageIndex(0) } else { - ReadBook.setPageIndex(it.pageSize().minus(1)) + ReadBook.setPageIndex(it.pageSize.minus(1)) } } ?: ReadBook.setPageIndex(0) } @@ -75,7 +75,7 @@ class TextPageFactory(dataSource: DataSource) : PageFactory(dataSource return@with TextPage(text = it).format() } currentChapter?.let { - if (pageIndex < it.pageSize() - 1) { + if (pageIndex < it.pageSize - 1) { return@with it.page(pageIndex + 1)?.removePageAloudSpan() ?: TextPage(title = it.title).format() } @@ -102,7 +102,7 @@ class TextPageFactory(dataSource: DataSource) : PageFactory(dataSource } } prevChapter?.let { - return@with it.lastPage()?.removePageAloudSpan() + return@with it.lastPage?.removePageAloudSpan() ?: TextPage(title = it.title).format() } return TextPage().format() @@ -111,12 +111,12 @@ class TextPageFactory(dataSource: DataSource) : PageFactory(dataSource override val nextPagePlus: TextPage get() = with(dataSource) { currentChapter?.let { - if (pageIndex < it.pageSize() - 2) { + if (pageIndex < it.pageSize - 2) { return@with it.page(pageIndex + 2)?.removePageAloudSpan() ?: TextPage(title = it.title).format() } nextChapter?.let { nc -> - if (pageIndex < it.pageSize() - 1) { + if (pageIndex < it.pageSize - 1) { return@with nc.page(0)?.removePageAloudSpan() ?: TextPage(title = nc.title).format() } diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextChapter.kt b/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextChapter.kt index e05b7746b..7d0ff6d02 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextChapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextChapter.kt @@ -15,25 +15,16 @@ data class TextChapter( return pages.getOrNull(index) } - fun lastPage(): TextPage? { - if (pages.isNotEmpty()) { - return pages[pages.lastIndex] - } - return null - } + val lastPage: TextPage? get() = pages.lastOrNull() - fun lastIndex(): Int { - return pages.size - 1 - } + val lastIndex: Int get() = pages.lastIndex + + val pageSize: Int get() = pages.size fun isLastIndex(index: Int): Boolean { return index >= pages.size - 1 } - fun pageSize(): Int { - return pages.size - } - fun getReadLength(pageIndex: Int): Int { var length = 0 val maxIndex = min(pageIndex, pages.size) @@ -45,8 +36,8 @@ data class TextChapter( fun getUnRead(pageIndex: Int): String { val stringBuilder = StringBuilder() - if (pageIndex < pages.size && pages.isNotEmpty()) { - for (index in pageIndex..lastIndex()) { + if (pages.isNotEmpty()) { + for (index in pageIndex..pages.lastIndex) { stringBuilder.append(pages[index].text) } }