|
@@ -74,10 +74,16 @@ class EpubFile(var book: Book) {
|
|
|
private var fileDescriptor: ParcelFileDescriptor? = null
|
|
private var fileDescriptor: ParcelFileDescriptor? = null
|
|
|
private var epubBook: EpubBook? = null
|
|
private var epubBook: EpubBook? = null
|
|
|
get() {
|
|
get() {
|
|
|
- if (field != null && fileDescriptor != null) {
|
|
|
|
|
- return field
|
|
|
|
|
|
|
+ if (field == null || fileDescriptor == null) {
|
|
|
|
|
+ field = readEpub()
|
|
|
|
|
+ }
|
|
|
|
|
+ return field
|
|
|
|
|
+ }
|
|
|
|
|
+ private var epubBookContents: List<Resource>?
|
|
|
|
|
+ get() {
|
|
|
|
|
+ if (field == null || fileDescriptor == null) {
|
|
|
|
|
+ field = epubBook.contents
|
|
|
}
|
|
}
|
|
|
- field = readEpub()
|
|
|
|
|
return field
|
|
return field
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -147,7 +153,7 @@ class EpubFile(var book: Book) {
|
|
|
val includeNextChapterResource = !endFragmentId.isNullOrBlank()
|
|
val includeNextChapterResource = !endFragmentId.isNullOrBlank()
|
|
|
/*一些书籍依靠href索引的resource会包含多个章节,需要依靠fragmentId来截取到当前章节的内容*/
|
|
/*一些书籍依靠href索引的resource会包含多个章节,需要依靠fragmentId来截取到当前章节的内容*/
|
|
|
/*注:这里较大增加了内容加载的时间,所以首次获取内容后可存储到本地cache,减少重复加载*/
|
|
/*注:这里较大增加了内容加载的时间,所以首次获取内容后可存储到本地cache,减少重复加载*/
|
|
|
- for (res in epubBook.contents) {
|
|
|
|
|
|
|
+ for (res in epubBookContents) {
|
|
|
if (!findChapterFirstSource) {
|
|
if (!findChapterFirstSource) {
|
|
|
if (currentChapterFirstResourceHref != res.href) continue
|
|
if (currentChapterFirstResourceHref != res.href) continue
|
|
|
findChapterFirstSource = true
|
|
findChapterFirstSource = true
|