From 67d0462581dc5041b054c9711120d79c94237754 Mon Sep 17 00:00:00 2001 From: niuhb <76513019+niu-hb@users.noreply.github.com> Date: Sun, 8 Dec 2024 17:48:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E4=B9=A6=E7=B1=8D=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=AF=8F=E7=AB=A0=E5=AD=97=E6=95=B0=20(#4417)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 共存版命名优化 * 本地书籍添加章节字数统计 * 本地书籍添加本书总字数统计 --- app/build.gradle | 12 +++++++----- .../java/io/legado/app/model/localBook/LocalBook.kt | 7 ++++++- .../java/io/legado/app/model/localBook/TextFile.kt | 10 ++++++++-- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 158c36f36..e9db05bed 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -78,6 +78,11 @@ android { signingConfig signingConfigs.myConfig } applicationIdSuffix '.release' + if (getApplicationIdSuffix() == '.releaseA') { + manifestPlaceholders.put("app_name", "@string/app_name_a") + }else { + manifestPlaceholders.put("app_name", "@string/app_name") + } minifyEnabled true shrinkResources true @@ -87,6 +92,8 @@ android { if (project.hasProperty("RELEASE_STORE_FILE")) { signingConfig signingConfigs.myConfig } + manifestPlaceholders.put("app_name", "@string/app_name") + applicationIdSuffix '.debug' versionNameSuffix 'debug' minifyEnabled false @@ -99,11 +106,6 @@ android { app { dimension "mode" manifestPlaceholders.put("APP_CHANNEL_VALUE", "app") - if ('.release' == '.releaseA') { - manifestPlaceholders.put("app_name", "@string/app_name_a") - }else { - manifestPlaceholders.put("app_name", "@string/app_name") - } } } diff --git a/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt b/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt index a603c08c0..4409cf46f 100644 --- a/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt +++ b/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt @@ -109,9 +109,14 @@ object LocalBook { throw TocEmptyException(appCtx.getString(R.string.chapter_list_empty)) } val list = ArrayList(LinkedHashSet(chapters)) - list.forEachIndexed { index, bookChapter -> bookChapter.index = index } + var wordCount = 0 + list.forEachIndexed { index, bookChapter -> + bookChapter.index = index + wordCount += bookChapter.tag?.toInt() ?: 0 + } book.latestChapterTitle = list.last().title book.totalChapterNum = list.size + book.wordCount = wordCount.toString() + "字" book.save() return list } 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 44638eec4..24cdf9f3e 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 @@ -222,6 +222,7 @@ class TextFile(private var book: Book) { qyChapter.title = "前言" qyChapter.start = curOffset qyChapter.end = curOffset + chapterLength + qyChapter.tag = chapterContent.length.toString() toc.add(qyChapter) book.intro = if (chapterContent.length <= 500) { chapterContent @@ -241,6 +242,7 @@ class TextFile(private var book: Book) { chapterContent.substringAfter(lastChapter.title).isBlank() //将当前段落添加上一章去 lastChapter.end = lastChapter.end!! + chapterLength + lastChapter.tag = ((lastChapter.tag?.toInt() ?: 0) + chapterContent.length).toString() //创建当前章节 val curChapter = BookChapter() curChapter.title = matcher.group() @@ -255,6 +257,7 @@ class TextFile(private var book: Book) { chapterContent.substringAfter(lastChapter.title).isBlank() lastChapter.end = lastChapter.start!! + chapterLength + lastChapter.tag = chapterContent.length.toString() //创建当前章节 val curChapter = BookChapter() curChapter.title = matcher.group() @@ -265,6 +268,7 @@ class TextFile(private var book: Book) { curChapter.title = matcher.group() curChapter.start = curOffset curChapter.end = curOffset + curChapter.tag = chapterContent.length.toString() toc.add(curChapter) } } @@ -274,8 +278,10 @@ class TextFile(private var book: Book) { //block的偏移点 curOffset += length.toLong() //设置上一章的结尾 - toc.lastOrNull()?.end = curOffset - + toc.lastOrNull()?.let { + it.end = curOffset + it.tag = blockContent.substring(seekPos).length.toString() + } } toc.lastOrNull()?.let { chapter -> //章节字数太多进行拆分