diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt index ee9aed5af..e6e40c515 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt @@ -305,7 +305,7 @@ class ChangeBookSourceDialog() : BaseDialogFragment(R.layout.dialog_book_change_ private fun changeSource(searchBook: SearchBook, onSuccess: (() -> Unit)? = null) { waitDialog.setText(R.string.load_toc) waitDialog.show() - val book = searchBook.toBook() + val book = viewModel.bookMap[bookUrl] ?: searchBook.toBook() val coroutine = viewModel.getToc(book, { waitDialog.dismiss() toastOnUi(it) diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt index 5bab273c6..a2ad805eb 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt @@ -50,6 +50,7 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a private val searchBooks = Collections.synchronizedList(arrayListOf()) private val tocMap = ConcurrentHashMap>() private var searchCallback: SourceCallback? = null + val bookMap = ConcurrentHashMap() val searchDataFlow = callbackFlow { searchCallback = object : SourceCallback { @@ -217,7 +218,7 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a private suspend fun loadBookToc(source: BookSource, book: Book) { val chapters = WebBook.getChapterListAwait(source, book).getOrThrow() tocMap[book.bookUrl] = chapters - book.latestChapterTitle = chapters.last().title + bookMap[book.bookUrl] = book val searchBook: SearchBook = book.toSearchBook() searchCallback?.searchSuccess(searchBook) } diff --git a/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesActivity.kt b/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesActivity.kt index c459bea4a..6749870a6 100644 --- a/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesActivity.kt @@ -6,6 +6,7 @@ import io.legado.app.base.BaseActivity import io.legado.app.data.appDb import io.legado.app.data.entities.RssStar import io.legado.app.databinding.ActivityRssFavoritesBinding +import io.legado.app.lib.theme.accentColor import io.legado.app.ui.rss.read.ReadRssActivity import io.legado.app.ui.widget.recycler.VerticalDivider import io.legado.app.utils.startActivity @@ -26,6 +27,7 @@ class RssFavoritesActivity : BaseActivity(), } private fun initView() { + binding.refreshLayout.setColorSchemeColors(accentColor) binding.recyclerView.let { it.layoutManager = LinearLayoutManager(this) it.addItemDecoration(VerticalDivider(this))