diff --git a/app/src/main/java/io/legado/app/model/localBook/EpubFile.kt b/app/src/main/java/io/legado/app/model/localBook/EpubFile.kt index 506331ca8..f71ee340e 100644 --- a/app/src/main/java/io/legado/app/model/localBook/EpubFile.kt +++ b/app/src/main/java/io/legado/app/model/localBook/EpubFile.kt @@ -348,7 +348,10 @@ class EpubFile(var book: Book) { durIndex = 0 while (i < contents.size) { val content = contents[i] - if (!content.mediaType.toString().contains("htm")) continue + if (!content.mediaType.toString().contains("htm")) { + i++ + continue + } /** * 检索到第一章href停止 * completeHref可能有fragment(#id) 必须去除 diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/BaseBookshelfFragment.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/BaseBookshelfFragment.kt index c4a18d6fa..bdc5d5f4e 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/BaseBookshelfFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/BaseBookshelfFragment.kt @@ -9,7 +9,6 @@ import androidx.lifecycle.LiveData import io.legado.app.R import io.legado.app.base.VMBaseFragment import io.legado.app.constant.EventBus -import io.legado.app.constant.PreferKey import io.legado.app.data.appDb import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookGroup @@ -137,7 +136,7 @@ abstract class BaseBookshelfFragment(layoutId: Int) : VMBaseFragment() - private val bookshelfLayout by lazy { - getPrefInt(PreferKey.bookshelfLayout) - } + private val bookshelfLayout by lazy { AppConfig.bookshelfLayout } private val booksAdapter: BaseBooksAdapter<*> by lazy { if (bookshelfLayout == 0) { BooksAdapterList(requireContext(), this) diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt index 38fcf7c3b..a3bdf239b 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt @@ -12,7 +12,6 @@ import androidx.recyclerview.widget.RecyclerView import io.legado.app.R import io.legado.app.constant.AppLog import io.legado.app.constant.EventBus -import io.legado.app.constant.PreferKey import io.legado.app.data.appDb import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookGroup @@ -53,9 +52,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2) } private val binding by viewBinding(FragmentBookshelf2Binding::bind) - private val bookshelfLayout by lazy { - getPrefInt(PreferKey.bookshelfLayout) - } + private val bookshelfLayout by lazy { AppConfig.bookshelfLayout } private val booksAdapter: BaseBooksAdapter<*> by lazy { if (bookshelfLayout == 0) { BooksAdapterList(requireContext(), this) @@ -123,8 +120,10 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2) @SuppressLint("NotifyDataSetChanged") private fun initBooksData() { if (groupId == -100L) { - binding.titleBar.title = getString(R.string.bookshelf) - binding.refreshLayout.isEnabled = true + if (isAdded) { + binding.titleBar.title = getString(R.string.bookshelf) + binding.refreshLayout.isEnabled = true + } } else { bookGroups.firstOrNull { groupId == it.groupId @@ -156,10 +155,12 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2) }.flowOn(Dispatchers.Default).catch { AppLog.put("书架更新出错", it) }.conflate().collect { list -> - books = list - booksAdapter.notifyDataSetChanged() - binding.tvEmptyMsg.isGone = getItemCount() > 0 - delay(100) + if (isAdded) { + books = list + booksAdapter.notifyDataSetChanged() + binding.tvEmptyMsg.isGone = getItemCount() > 0 + delay(100) + } } } } diff --git a/modules/book/src/main/java/me/ag2s/epublib/domain/MediaTypes.java b/modules/book/src/main/java/me/ag2s/epublib/domain/MediaTypes.java index ff6233d15..227409590 100644 --- a/modules/book/src/main/java/me/ag2s/epublib/domain/MediaTypes.java +++ b/modules/book/src/main/java/me/ag2s/epublib/domain/MediaTypes.java @@ -1,6 +1,6 @@ package me.ag2s.epublib.domain; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import me.ag2s.epublib.util.StringUtil; @@ -60,7 +60,7 @@ public class MediaTypes { SMIL, PLS, JAVASCRIPT, MP3, MP4, OGG, UNKNOWN }; - public static final Map mediaTypesByName = new HashMap<>(); + public static final Map mediaTypesByName = new LinkedHashMap<>(); static { for (MediaType mediaType : mediaTypes) {