Horis 3 سال پیش
والد
کامیت
e7b9c9031a

+ 1 - 1
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) {
     private fun changeSource(searchBook: SearchBook, onSuccess: (() -> Unit)? = null) {
         waitDialog.setText(R.string.load_toc)
         waitDialog.setText(R.string.load_toc)
         waitDialog.show()
         waitDialog.show()
-        val book = searchBook.toBook()
+        val book = viewModel.bookMap[bookUrl] ?: searchBook.toBook()
         val coroutine = viewModel.getToc(book, {
         val coroutine = viewModel.getToc(book, {
             waitDialog.dismiss()
             waitDialog.dismiss()
             toastOnUi(it)
             toastOnUi(it)

+ 2 - 1
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<SearchBook>())
     private val searchBooks = Collections.synchronizedList(arrayListOf<SearchBook>())
     private val tocMap = ConcurrentHashMap<String, List<BookChapter>>()
     private val tocMap = ConcurrentHashMap<String, List<BookChapter>>()
     private var searchCallback: SourceCallback? = null
     private var searchCallback: SourceCallback? = null
+    val bookMap = ConcurrentHashMap<String, Book>()
     val searchDataFlow = callbackFlow {
     val searchDataFlow = callbackFlow {
 
 
         searchCallback = object : SourceCallback {
         searchCallback = object : SourceCallback {
@@ -217,7 +218,7 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a
     private suspend fun loadBookToc(source: BookSource, book: Book) {
     private suspend fun loadBookToc(source: BookSource, book: Book) {
         val chapters = WebBook.getChapterListAwait(source, book).getOrThrow()
         val chapters = WebBook.getChapterListAwait(source, book).getOrThrow()
         tocMap[book.bookUrl] = chapters
         tocMap[book.bookUrl] = chapters
-        book.latestChapterTitle = chapters.last().title
+        bookMap[book.bookUrl] = book
         val searchBook: SearchBook = book.toSearchBook()
         val searchBook: SearchBook = book.toSearchBook()
         searchCallback?.searchSuccess(searchBook)
         searchCallback?.searchSuccess(searchBook)
     }
     }

+ 2 - 0
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.appDb
 import io.legado.app.data.entities.RssStar
 import io.legado.app.data.entities.RssStar
 import io.legado.app.databinding.ActivityRssFavoritesBinding
 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.rss.read.ReadRssActivity
 import io.legado.app.ui.widget.recycler.VerticalDivider
 import io.legado.app.ui.widget.recycler.VerticalDivider
 import io.legado.app.utils.startActivity
 import io.legado.app.utils.startActivity
@@ -26,6 +27,7 @@ class RssFavoritesActivity : BaseActivity<ActivityRssFavoritesBinding>(),
     }
     }
 
 
     private fun initView() {
     private fun initView() {
+        binding.refreshLayout.setColorSchemeColors(accentColor)
         binding.recyclerView.let {
         binding.recyclerView.let {
             it.layoutManager = LinearLayoutManager(this)
             it.layoutManager = LinearLayoutManager(this)
             it.addItemDecoration(VerticalDivider(this))
             it.addItemDecoration(VerticalDivider(this))