优化
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user