From 8dce9dcc3f268f30319cb5b287bc378d87d6550b Mon Sep 17 00:00:00 2001 From: Koitharu Date: Thu, 14 Sep 2023 13:38:02 +0300 Subject: [PATCH] Fix pages thumbnails loading --- app/build.gradle | 4 ++-- .../ui/thumbnails/PagesThumbnailsSheet.kt | 7 ------- .../ui/thumbnails/PagesThumbnailsViewModel.kt | 19 ++++--------------- 3 files changed, 6 insertions(+), 24 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 560ecec73..76c73a8ae 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId 'org.koitharu.kotatsu' minSdk = 21 targetSdk = 34 - versionCode = 578 - versionName = '6.1.1' + versionCode = 579 + versionName = '6.1.2' generatedDensities = [] testInstrumentationRunner "org.koitharu.kotatsu.HiltTestRunner" ksp { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/thumbnails/PagesThumbnailsSheet.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/thumbnails/PagesThumbnailsSheet.kt index 0e68ea9ae..fbfe9c901 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/thumbnails/PagesThumbnailsSheet.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/thumbnails/PagesThumbnailsSheet.kt @@ -152,13 +152,6 @@ class PagesThumbnailsSheet : override fun onScrolledToEnd(recyclerView: RecyclerView) { viewModel.loadNextChapter() } - - override fun onPostScrolled(recyclerView: RecyclerView, firstVisibleItemPosition: Int, visibleItemCount: Int) { - super.onPostScrolled(recyclerView, firstVisibleItemPosition, visibleItemCount) - if (firstVisibleItemPosition > offsetTop) { - viewModel.allowLoadAbove() - } - } } private inner class SpanSizeLookup : GridLayoutManager.SpanSizeLookup() { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/thumbnails/PagesThumbnailsViewModel.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/thumbnails/PagesThumbnailsViewModel.kt index 7b7e438a9..4b2809956 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/thumbnails/PagesThumbnailsViewModel.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/thumbnails/PagesThumbnailsViewModel.kt @@ -16,7 +16,6 @@ import org.koitharu.kotatsu.core.model.parcelable.ParcelableManga import org.koitharu.kotatsu.core.parser.MangaRepository import org.koitharu.kotatsu.core.ui.BaseViewModel import org.koitharu.kotatsu.core.util.ext.firstNotNull -import org.koitharu.kotatsu.core.util.ext.firstNotNullOrNull import org.koitharu.kotatsu.core.util.ext.require import org.koitharu.kotatsu.details.domain.DoubleMangaLoadUseCase import org.koitharu.kotatsu.list.ui.model.ListHeader @@ -29,10 +28,11 @@ class PagesThumbnailsViewModel @Inject constructor( savedStateHandle: SavedStateHandle, mangaRepositoryFactory: MangaRepository.Factory, private val chaptersLoader: ChaptersLoader, - private val doubleMangaLoadUseCase: DoubleMangaLoadUseCase, + doubleMangaLoadUseCase: DoubleMangaLoadUseCase, ) : BaseViewModel() { - private val currentPageIndex: Int = savedStateHandle[PagesThumbnailsSheet.ARG_CURRENT_PAGE] ?: -1 + private val currentPageIndex: Int = + savedStateHandle[PagesThumbnailsSheet.ARG_CURRENT_PAGE] ?: -1 private val initialChapterId: Long = savedStateHandle[PagesThumbnailsSheet.ARG_CHAPTER_ID] ?: 0L val manga = savedStateHandle.require(PagesThumbnailsSheet.ARG_MANGA).manga @@ -46,7 +46,6 @@ class PagesThumbnailsViewModel @Inject constructor( private var loadingJob: Job? = null private var loadingPrevJob: Job? = null private var loadingNextJob: Job? = null - private var isLoadAboveAllowed = false val thumbnails = MutableStateFlow>(emptyList()) val branch = MutableStateFlow(null) @@ -60,17 +59,8 @@ class PagesThumbnailsViewModel @Inject constructor( } } - fun allowLoadAbove() { - if (!isLoadAboveAllowed) { - loadingJob = launchLoadingJob(Dispatchers.Default) { - isLoadAboveAllowed = true - updateList() - } - } - } - fun loadPrevChapter() { - if (!isLoadAboveAllowed || loadingJob?.isActive == true || loadingPrevJob?.isActive == true) { + if (loadingJob?.isActive == true || loadingPrevJob?.isActive == true) { return } loadingPrevJob = loadPrevNextChapter(isNext = false) @@ -91,7 +81,6 @@ class PagesThumbnailsViewModel @Inject constructor( private suspend fun updateList() { val snapshot = chaptersLoader.snapshot() - val mangaChapters = mangaDetails.firstNotNullOrNull()?.chapters.orEmpty() val pages = buildList(snapshot.size + chaptersLoader.size + 2) { var previousChapterId = 0L for (page in snapshot) {