pull/1604/head
kunfei 3 years ago
parent 28a1057acb
commit e885c30cac
  1. 5
      app/src/main/java/io/legado/app/ui/book/toc/ChapterListAdapter.kt
  2. 5
      app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt

@ -17,7 +17,7 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Deferred import kotlinx.coroutines.Deferred
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
class ChapterListAdapter(context: Context, val callback: Callback, private val scope: CoroutineScope) : class ChapterListAdapter(context: Context, val callback: Callback) :
RecyclerAdapter<Pair<BookChapter, Deferred<String>>, ItemChapterListBinding>(context) { RecyclerAdapter<Pair<BookChapter, Deferred<String>>, ItemChapterListBinding>(context) {
val cacheFileNames = hashSetOf<String>() val cacheFileNames = hashSetOf<String>()
@ -64,7 +64,7 @@ class ChapterListAdapter(context: Context, val callback: Callback, private val s
} else { } else {
tvChapterName.setTextColor(context.getCompatColor(R.color.primaryText)) tvChapterName.setTextColor(context.getCompatColor(R.color.primaryText))
} }
scope.launch { callback.scope.launch {
tvChapterName.text = item.second.await() tvChapterName.text = item.second.await()
} }
if (item.first.isVolume) { if (item.first.isVolume) {
@ -108,6 +108,7 @@ class ChapterListAdapter(context: Context, val callback: Callback, private val s
} }
interface Callback { interface Callback {
val scope: CoroutineScope
val isLocalBook: Boolean val isLocalBook: Boolean
fun openChapter(bookChapter: BookChapter) fun openChapter(bookChapter: BookChapter)
fun durChapterIndex(): Int fun durChapterIndex(): Int

@ -33,7 +33,7 @@ class ChapterListFragment : VMBaseFragment<TocViewModel>(R.layout.fragment_chapt
override val viewModel by activityViewModels<TocViewModel>() override val viewModel by activityViewModels<TocViewModel>()
private val binding by viewBinding(FragmentChapterListBinding::bind) private val binding by viewBinding(FragmentChapterListBinding::bind)
private val mLayoutManager by lazy { UpLinearLayoutManager(requireContext()) } private val mLayoutManager by lazy { UpLinearLayoutManager(requireContext()) }
private val adapter by lazy { ChapterListAdapter(requireContext(), this, this) } private val adapter by lazy { ChapterListAdapter(requireContext(), this) }
private var durChapterIndex = 0 private var durChapterIndex = 0
private var tocFlowJob: Job? = null private var tocFlowJob: Job? = null
@ -136,6 +136,9 @@ class ChapterListFragment : VMBaseFragment<TocViewModel>(R.layout.fragment_chapt
} }
} }
override val scope: CoroutineScope
get() = this
override val isLocalBook: Boolean override val isLocalBook: Boolean
get() = viewModel.bookData.value?.isLocalBook() == true get() = viewModel.bookData.value?.isLocalBook() == true

Loading…
Cancel
Save