Reuse PageLoader in PagesThumbnailsSheet
This commit is contained in:
@@ -55,7 +55,7 @@ class ReaderViewModel(
|
|||||||
val onPageSaved = SingleLiveEvent<Uri?>()
|
val onPageSaved = SingleLiveEvent<Uri?>()
|
||||||
val uiState = combine(
|
val uiState = combine(
|
||||||
mangaData,
|
mangaData,
|
||||||
currentState
|
currentState,
|
||||||
) { manga, state ->
|
) { manga, state ->
|
||||||
val chapter = state?.chapterId?.let(chapters::get)
|
val chapter = state?.chapterId?.let(chapters::get)
|
||||||
ReaderUiState(
|
ReaderUiState(
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import androidx.fragment.app.FragmentManager
|
|||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||||
import org.koin.android.ext.android.get
|
import org.koin.android.ext.android.get
|
||||||
|
import org.koin.androidx.viewmodel.ext.android.getViewModel
|
||||||
import org.koitharu.kotatsu.R
|
import org.koitharu.kotatsu.R
|
||||||
import org.koitharu.kotatsu.base.ui.BaseBottomSheet
|
import org.koitharu.kotatsu.base.ui.BaseBottomSheet
|
||||||
import org.koitharu.kotatsu.base.ui.list.OnListItemClickListener
|
import org.koitharu.kotatsu.base.ui.list.OnListItemClickListener
|
||||||
@@ -20,6 +21,8 @@ import org.koitharu.kotatsu.databinding.SheetPagesBinding
|
|||||||
import org.koitharu.kotatsu.list.ui.MangaListSpanResolver
|
import org.koitharu.kotatsu.list.ui.MangaListSpanResolver
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaPage
|
import org.koitharu.kotatsu.parsers.model.MangaPage
|
||||||
import org.koitharu.kotatsu.reader.domain.PageLoader
|
import org.koitharu.kotatsu.reader.domain.PageLoader
|
||||||
|
import org.koitharu.kotatsu.reader.ui.ReaderActivity
|
||||||
|
import org.koitharu.kotatsu.reader.ui.ReaderViewModel
|
||||||
import org.koitharu.kotatsu.reader.ui.thumbnails.adapter.PageThumbnailAdapter
|
import org.koitharu.kotatsu.reader.ui.thumbnails.adapter.PageThumbnailAdapter
|
||||||
import org.koitharu.kotatsu.utils.BottomSheetToolbarController
|
import org.koitharu.kotatsu.utils.BottomSheetToolbarController
|
||||||
import org.koitharu.kotatsu.utils.ext.viewLifecycleScope
|
import org.koitharu.kotatsu.utils.ext.viewLifecycleScope
|
||||||
@@ -81,7 +84,7 @@ class PagesThumbnailsSheet :
|
|||||||
dataSet = thumbnails,
|
dataSet = thumbnails,
|
||||||
coil = get(),
|
coil = get(),
|
||||||
scope = viewLifecycleScope,
|
scope = viewLifecycleScope,
|
||||||
loader = PageLoader().also { pageLoader = it },
|
loader = getPageLoader(),
|
||||||
clickListener = this@PagesThumbnailsSheet
|
clickListener = this@PagesThumbnailsSheet
|
||||||
)
|
)
|
||||||
addOnLayoutChangeListener(spanResolver)
|
addOnLayoutChangeListener(spanResolver)
|
||||||
@@ -109,6 +112,11 @@ class PagesThumbnailsSheet :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getPageLoader(): PageLoader {
|
||||||
|
val viewModel = (activity as? ReaderActivity)?.getViewModel<ReaderViewModel>()
|
||||||
|
return viewModel?.pageLoader ?: PageLoader().also { pageLoader = it }
|
||||||
|
}
|
||||||
|
|
||||||
private inner class ToolbarController(toolbar: Toolbar) : BottomSheetToolbarController(toolbar) {
|
private inner class ToolbarController(toolbar: Toolbar) : BottomSheetToolbarController(toolbar) {
|
||||||
override fun onStateChanged(bottomSheet: View, newState: Int) {
|
override fun onStateChanged(bottomSheet: View, newState: Int) {
|
||||||
super.onStateChanged(bottomSheet, newState)
|
super.onStateChanged(bottomSheet, newState)
|
||||||
|
|||||||
Reference in New Issue
Block a user