This commit is contained in:
Horis
2023-02-23 16:56:11 +08:00
parent e99b1c2b0b
commit 1fb6ba9126
3 changed files with 5 additions and 2 deletions

View File

@@ -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)

View File

@@ -50,6 +50,7 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a
private val searchBooks = Collections.synchronizedList(arrayListOf<SearchBook>())
private val tocMap = ConcurrentHashMap<String, List<BookChapter>>()
private var searchCallback: SourceCallback? = null
val bookMap = ConcurrentHashMap<String, Book>()
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)
}

View File

@@ -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<ActivityRssFavoritesBinding>(),
}
private fun initView() {
binding.refreshLayout.setColorSchemeColors(accentColor)
binding.recyclerView.let {
it.layoutManager = LinearLayoutManager(this)
it.addItemDecoration(VerticalDivider(this))