mirror of
https://github.com/gedoor/legado.git
synced 2025-08-10 00:52:30 +00:00
优化
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user