Support reverse alphabetic order in history and favorties
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
@@ -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")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user