kunfei 4 tahun lalu
induk
melakukan
0537d8383d

+ 3 - 2
app/src/main/java/io/legado/app/ui/book/toc/ChapterListAdapter.kt

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

+ 4 - 1
app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt

@@ -33,7 +33,7 @@ class ChapterListFragment : VMBaseFragment<TocViewModel>(R.layout.fragment_chapt
     override val viewModel by activityViewModels<TocViewModel>()
     private val binding by viewBinding(FragmentChapterListBinding::bind)
     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 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
         get() = viewModel.bookData.value?.isLocalBook() == true