feat: 优化代码

pull/198/head
kunfei 5 years ago
parent c18b526f95
commit fcc7761320
  1. 31
      app/src/main/java/io/legado/app/model/localBook/AnalyzeTxtFile.kt

@ -68,31 +68,24 @@ object AnalyzeTxtFile {
//如果存在相应章节 //如果存在相应章节
while (matcher.find()) { //获取匹配到的字符在字符串中的起始位置 while (matcher.find()) { //获取匹配到的字符在字符串中的起始位置
val chapterStart = matcher.start() val chapterStart = matcher.start()
//获取章节内容
val chapterContent = blockContent.substring(seekPos, chapterStart)
//如果 seekPos == 0 && nextChapterPos != 0 表示当前block处前面有一段内容 //如果 seekPos == 0 && nextChapterPos != 0 表示当前block处前面有一段内容
//第一种情况一定是序章 第二种情况可能是上一个章节的内容 //第一种情况一定是序章 第二种情况可能是上一个章节的内容
if (seekPos == 0 && chapterStart != 0) { //获取当前章节的内容 if (seekPos == 0 && chapterStart != 0) { //获取当前章节的内容
val chapterContent = blockContent.substring(seekPos, chapterStart) val chapter = BookChapter()
//设置指针偏移 chapter.title = "前言"
seekPos += chapterContent.length chapter.start = 0
//获取上一章节 chapter.end = chapterContent.toByteArray(charset).size.toLong()
val lastChapter = toc.lastOrNull() toc.add(chapter)
?: BookChapter().apply {
toc.add(this)
start = 0
title = "前言"
}
//将当前段落添加上一章去
lastChapter.end =
lastChapter.end!! + chapterContent.toByteArray(charset).size
//创建当前章节 //创建当前章节
val curChapter = BookChapter() val curChapter = BookChapter()
curChapter.title = matcher.group() curChapter.title = matcher.group()
curChapter.start = lastChapter.end curChapter.start = chapter.end
curChapter.end = chapter.end
toc.add(curChapter) toc.add(curChapter)
} else { //是否存在章节 } else {
if (toc.size != 0) { //获取章节内容 if (toc.size != 0) {
val chapterContent = blockContent.substring(seekPos, matcher.start())
seekPos += chapterContent.length
//获取上一章节 //获取上一章节
val lastChapter = toc.last() val lastChapter = toc.last()
lastChapter.end = lastChapter.end =
@ -110,6 +103,8 @@ object AnalyzeTxtFile {
toc.add(curChapter) toc.add(curChapter)
} }
} }
//设置指针偏移
seekPos += chapterContent.length
} }
} else { //进行本地虚拟分章 } else { //进行本地虚拟分章
//章节在buffer的偏移量 //章节在buffer的偏移量

Loading…
Cancel
Save