Support reverse alphabetic order in history and favorties

This commit is contained in:
Koitharu
2024-01-16 15:05:54 +02:00
parent dcbd7c2117
commit 5e79809326
4 changed files with 6 additions and 2 deletions

View File

@@ -175,6 +175,7 @@ abstract class FavouritesDao {
ListSortOrder.RATING -> "manga.rating DESC" ListSortOrder.RATING -> "manga.rating DESC"
ListSortOrder.NEWEST -> "favourites.created_at DESC" ListSortOrder.NEWEST -> "favourites.created_at DESC"
ListSortOrder.ALPHABETIC -> "manga.title ASC" ListSortOrder.ALPHABETIC -> "manga.title ASC"
ListSortOrder.ALPHABETIC_REVERSE -> "manga.title DESC"
ListSortOrder.NEW_CHAPTERS -> "IFNULL((SELECT chapters_new FROM tracks WHERE tracks.manga_id = manga.manga_id), 0) DESC" ListSortOrder.NEW_CHAPTERS -> "IFNULL((SELECT chapters_new FROM tracks WHERE tracks.manga_id = manga.manga_id), 0) DESC"
ListSortOrder.UPDATED, // for legacy support ListSortOrder.UPDATED, // for legacy support
ListSortOrder.PROGRESS -> "IFNULL((SELECT percent FROM history WHERE history.manga_id = manga.manga_id), 0) DESC" ListSortOrder.PROGRESS -> "IFNULL((SELECT percent FROM history WHERE history.manga_id = manga.manga_id), 0) DESC"

View File

@@ -39,6 +39,7 @@ abstract class HistoryDao {
ListSortOrder.NEWEST -> "history.created_at DESC" ListSortOrder.NEWEST -> "history.created_at DESC"
ListSortOrder.PROGRESS -> "history.percent DESC" ListSortOrder.PROGRESS -> "history.percent DESC"
ListSortOrder.ALPHABETIC -> "manga.title" ListSortOrder.ALPHABETIC -> "manga.title"
ListSortOrder.ALPHABETIC_REVERSE -> "manga.title DESC"
ListSortOrder.NEW_CHAPTERS -> "IFNULL((SELECT chapters_new FROM tracks WHERE tracks.manga_id = manga.manga_id), 0) DESC" ListSortOrder.NEW_CHAPTERS -> "IFNULL((SELECT chapters_new FROM tracks WHERE tracks.manga_id = manga.manga_id), 0) DESC"
else -> throw IllegalArgumentException("Sort order $order is not supported") else -> throw IllegalArgumentException("Sort order $order is not supported")
} }

View File

@@ -184,6 +184,7 @@ class HistoryListViewModel @Inject constructor(
) )
ListSortOrder.ALPHABETIC, ListSortOrder.ALPHABETIC,
ListSortOrder.ALPHABETIC_REVERSE,
ListSortOrder.RELEVANCE, ListSortOrder.RELEVANCE,
ListSortOrder.NEW_CHAPTERS, ListSortOrder.NEW_CHAPTERS,
ListSortOrder.RATING -> null ListSortOrder.RATING -> null

View File

@@ -13,6 +13,7 @@ enum class ListSortOrder(
NEWEST(R.string.order_added), NEWEST(R.string.order_added),
PROGRESS(R.string.progress), PROGRESS(R.string.progress),
ALPHABETIC(R.string.by_name), ALPHABETIC(R.string.by_name),
ALPHABETIC_REVERSE(R.string.by_name_reverse),
RATING(R.string.by_rating), RATING(R.string.by_rating),
RELEVANCE(R.string.by_relevance), RELEVANCE(R.string.by_relevance),
NEW_CHAPTERS(R.string.new_chapters), NEW_CHAPTERS(R.string.new_chapters),
@@ -22,8 +23,8 @@ enum class ListSortOrder(
companion object { companion object {
val HISTORY: Set<ListSortOrder> = EnumSet.of(UPDATED, NEWEST, PROGRESS, ALPHABETIC, NEW_CHAPTERS) val HISTORY: Set<ListSortOrder> = EnumSet.of(UPDATED, NEWEST, PROGRESS, ALPHABETIC, ALPHABETIC_REVERSE, NEW_CHAPTERS)
val FAVORITES: Set<ListSortOrder> = EnumSet.of(ALPHABETIC, NEWEST, RATING, NEW_CHAPTERS, PROGRESS) val FAVORITES: Set<ListSortOrder> = EnumSet.of(ALPHABETIC, ALPHABETIC_REVERSE, NEWEST, RATING, NEW_CHAPTERS, PROGRESS)
val SUGGESTIONS: Set<ListSortOrder> = EnumSet.of(RELEVANCE) val SUGGESTIONS: Set<ListSortOrder> = EnumSet.of(RELEVANCE)
operator fun invoke(value: String, fallback: ListSortOrder) = entries.find(value) ?: fallback operator fun invoke(value: String, fallback: ListSortOrder) = entries.find(value) ?: fallback