From 069b4dc91f326f3e73966e3a4d8ac3e633fdf10c Mon Sep 17 00:00:00 2001 From: kunfei Date: Thu, 16 Mar 2023 09:46:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dtxt=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E4=B8=8D=E5=87=BA=E6=9D=A5=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E6=9C=AB=E5=B0=BE=E7=AB=A0=E8=8A=82=E5=A4=AA=E9=95=BF=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E4=B8=8D=E5=87=BA=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/model/localBook/TextFile.kt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/src/main/java/io/legado/app/model/localBook/TextFile.kt b/app/src/main/java/io/legado/app/model/localBook/TextFile.kt index 18f28312b..10c5d9c65 100644 --- a/app/src/main/java/io/legado/app/model/localBook/TextFile.kt +++ b/app/src/main/java/io/legado/app/model/localBook/TextFile.kt @@ -259,6 +259,24 @@ class TextFile(private val book: Book) { curOffset += length.toLong() //设置上一章的结尾 toc.lastOrNull()?.end = curOffset + + } + toc.lastOrNull()?.let { chapter -> + if (chapter.end!! - chapter.start!! > maxLengthWithToc) { + val end = chapter.end!! + chapter.end = chapter.start + //章节字数太多进行拆分 + val lastTitle = chapter.title + val lastTitleLength = lastTitle.toByteArray(charset).size + val chapters = analyze( + chapter.start!! + lastTitleLength, + end + ) + chapters.forEachIndexed { index, bookChapter -> + bookChapter.title = "$lastTitle(${index + 1})" + } + toc.addAll(chapters) + } } } System.gc()