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 b57283792..e7cd362b3 100644 --- a/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt +++ b/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt @@ -118,7 +118,7 @@ abstract class BaseReadAloudService : BaseService(), contentList.clear() if (getPrefBoolean(PreferKey.readAloudByPage)) { for (index in pageIndex..textChapter.lastIndex) { - textChapter.page(index)?.text?.split("\n")?.let { + textChapter.getPage(index)?.text?.split("\n")?.let { contentList.addAll(it) } } 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 623247394..18d810aff 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 @@ -314,7 +314,7 @@ class ReadBookActivity : BaseReadBookActivity(), R.id.menu_download -> showDownloadDialog() R.id.menu_add_bookmark -> { val book = ReadBook.book - val page = ReadBook.curTextChapter?.page(ReadBook.durPageIndex) + val page = ReadBook.curTextChapter?.getPage(ReadBook.durPageIndex) if (book != null && page != null) { val bookmark = book.createBookMark().apply { chapterIndex = ReadBook.durChapterIndex @@ -1106,8 +1106,9 @@ class ReadBookActivity : BaseReadBookActivity(), launch(IO) { if (BaseReadAloudService.isPlay()) { ReadBook.curTextChapter?.let { textChapter -> - val aloudSpanStart = chapterStart - ReadBook.durChapterPos - textChapter.getPageByReadPos(ReadBook.durChapterPos) + val pageIndex = ReadBook.durPageIndex + val aloudSpanStart = chapterStart - textChapter.getReadLength(pageIndex) + textChapter.getPage(pageIndex) ?.upPageAloudSpan(aloudSpanStart) upContent() } 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 57df6ac3c..feb8d40aa 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 @@ -12,12 +12,12 @@ data class TextChapter( val isPay: Boolean, ) { - fun page(index: Int): TextPage? { + fun getPage(index: Int): TextPage? { return pages.getOrNull(index) } fun getPageByReadPos(readPos: Int): TextPage? { - return page(getPageIndexByCharIndex(readPos)) + return getPage(getPageIndexByCharIndex(readPos)) } val lastPage: TextPage? get() = pages.lastOrNull() diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/provider/TextPageFactory.kt b/app/src/main/java/io/legado/app/ui/book/read/page/provider/TextPageFactory.kt index 10d4b9ab4..abb507cc5 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/provider/TextPageFactory.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/provider/TextPageFactory.kt @@ -65,7 +65,7 @@ class TextPageFactory(dataSource: DataSource) : PageFactory(dataSource return@with TextPage(text = it).format() } currentChapter?.let { - return@with it.page(pageIndex) ?: TextPage(title = it.title).format() + return@with it.getPage(pageIndex) ?: TextPage(title = it.title).format() } return TextPage().format() } @@ -77,7 +77,7 @@ class TextPageFactory(dataSource: DataSource) : PageFactory(dataSource } currentChapter?.let { if (pageIndex < it.pageSize - 1) { - return@with it.page(pageIndex + 1)?.removePageAloudSpan() + return@with it.getPage(pageIndex + 1)?.removePageAloudSpan() ?: TextPage(title = it.title).format() } } @@ -85,7 +85,7 @@ class TextPageFactory(dataSource: DataSource) : PageFactory(dataSource return@with TextPage(text = "") } nextChapter?.let { - return@with it.page(0)?.removePageAloudSpan() + return@with it.getPage(0)?.removePageAloudSpan() ?: TextPage(title = it.title).format() } return TextPage().format() @@ -98,7 +98,7 @@ class TextPageFactory(dataSource: DataSource) : PageFactory(dataSource } if (pageIndex > 0) { currentChapter?.let { - return@with it.page(pageIndex - 1)?.removePageAloudSpan() + return@with it.getPage(pageIndex - 1)?.removePageAloudSpan() ?: TextPage(title = it.title).format() } } @@ -113,15 +113,15 @@ class TextPageFactory(dataSource: DataSource) : PageFactory(dataSource get() = with(dataSource) { currentChapter?.let { if (pageIndex < it.pageSize - 2) { - return@with it.page(pageIndex + 2)?.removePageAloudSpan() + return@with it.getPage(pageIndex + 2)?.removePageAloudSpan() ?: TextPage(title = it.title).format() } nextChapter?.let { nc -> if (pageIndex < it.pageSize - 1) { - return@with nc.page(0)?.removePageAloudSpan() + return@with nc.getPage(0)?.removePageAloudSpan() ?: TextPage(title = nc.title).format() } - return@with nc.page(1)?.removePageAloudSpan() + return@with nc.getPage(1)?.removePageAloudSpan() ?: TextPage(title = nc.title).format() }