优化
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) {
|
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)
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
Reference in New Issue
Block a user