From 35d6f1fb34c27672b1474c7a8a8956c316b6afb4 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Fri, 26 Aug 2022 13:21:25 +0300 Subject: [PATCH] Local list sort order (wip) #217 --- app/build.gradle | 4 ++-- .../kotatsu/local/domain/LocalMangaRepository.kt | 6 +++++- .../kotatsu/reader/ui/pager/BaseReaderAdapter.kt | 11 +++++------ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 60df07a42..dafd6b900 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId 'org.koitharu.kotatsu' minSdkVersion 21 targetSdkVersion 33 - versionCode 492 - versionName '4.0-a3' + versionCode 493 + versionName '4.0-a4' generatedDensities = [] testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/org/koitharu/kotatsu/local/domain/LocalMangaRepository.kt b/app/src/main/java/org/koitharu/kotatsu/local/domain/LocalMangaRepository.kt index 65e0b5658..7d08cb72b 100644 --- a/app/src/main/java/org/koitharu/kotatsu/local/domain/LocalMangaRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/local/domain/LocalMangaRepository.kt @@ -63,6 +63,10 @@ class LocalMangaRepository @Inject constructor(private val storageManager: Local x.tags.containsAll(tags) } } + when (sortOrder) { + SortOrder.ALPHABETICAL -> list.sortBy { it.title } + SortOrder.RATING -> list.sortBy { it.rating } + } return list } @@ -250,7 +254,7 @@ class LocalMangaRepository @Inject constructor(private val storageManager: Local } } - override val sortOrders = setOf(SortOrder.ALPHABETICAL) + override val sortOrders = setOf(SortOrder.ALPHABETICAL, SortOrder.RATING) override suspend fun getPageUrl(page: MangaPage) = page.url diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/pager/BaseReaderAdapter.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/pager/BaseReaderAdapter.kt index d097c1bc2..0529c8ebe 100644 --- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/pager/BaseReaderAdapter.kt +++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/pager/BaseReaderAdapter.kt @@ -4,12 +4,12 @@ import android.view.ViewGroup import androidx.recyclerview.widget.AsyncListDiffer import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView +import kotlin.coroutines.resume +import kotlin.coroutines.suspendCoroutine import org.koitharu.kotatsu.core.exceptions.resolve.ExceptionResolver import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.reader.domain.PageLoader import org.koitharu.kotatsu.utils.ext.resetTransformations -import kotlin.coroutines.resume -import kotlin.coroutines.suspendCoroutine @Suppress("LeakingThis") abstract class BaseReaderAdapter>( @@ -45,7 +45,7 @@ abstract class BaseReaderAdapter>( final override fun onCreateViewHolder( parent: ViewGroup, - viewType: Int + viewType: Int, ): H = onCreateViewHolder(parent, loader, settings, exceptionResolver) suspend fun setItems(items: List) = suspendCoroutine { cont -> @@ -58,7 +58,7 @@ abstract class BaseReaderAdapter>( parent: ViewGroup, loader: PageLoader, settings: AppSettings, - exceptionResolver: ExceptionResolver + exceptionResolver: ExceptionResolver, ): H private class DiffCallback : DiffUtil.ItemCallback() { @@ -70,6 +70,5 @@ abstract class BaseReaderAdapter>( override fun areContentsTheSame(oldItem: ReaderPage, newItem: ReaderPage): Boolean { return oldItem == newItem } - } -} \ No newline at end of file +}