@@ -190,11 +190,14 @@ abstract class FavouritesDao {
|
||||
private fun getOrderBy(sortOrder: ListSortOrder) = when (sortOrder) {
|
||||
ListSortOrder.RATING -> "manga.rating DESC"
|
||||
ListSortOrder.NEWEST -> "favourites.created_at DESC"
|
||||
ListSortOrder.OLDEST -> "favourites.created_at 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.PROGRESS -> "IFNULL((SELECT percent FROM history WHERE history.manga_id = manga.manga_id), 0) DESC"
|
||||
ListSortOrder.UNREAD -> "IFNULL((SELECT percent FROM history WHERE history.manga_id = manga.manga_id), 0) ASC"
|
||||
ListSortOrder.LAST_READ -> "IFNULL((SELECT updated_at FROM history WHERE history.manga_id = manga.manga_id), 0) DESC"
|
||||
ListSortOrder.LONG_AGO_READ -> "IFNULL((SELECT updated_at FROM history WHERE history.manga_id = manga.manga_id), 0) ASC"
|
||||
|
||||
else -> throw IllegalArgumentException("Sort order $sortOrder is not supported")
|
||||
}
|
||||
|
||||
@@ -36,8 +36,11 @@ abstract class HistoryDao {
|
||||
fun observeAll(order: ListSortOrder): Flow<List<HistoryWithManga>> {
|
||||
val orderBy = when (order) {
|
||||
ListSortOrder.LAST_READ -> "history.updated_at DESC"
|
||||
ListSortOrder.LONG_AGO_READ -> "history.updated_at ASC"
|
||||
ListSortOrder.NEWEST -> "history.created_at DESC"
|
||||
ListSortOrder.OLDEST -> "history.created_at ASC"
|
||||
ListSortOrder.PROGRESS -> "history.percent DESC"
|
||||
ListSortOrder.UNREAD -> "history.percent ASC"
|
||||
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"
|
||||
|
||||
@@ -178,8 +178,13 @@ class HistoryListViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
private fun MangaHistory.header(order: ListSortOrder): ListHeader? = when (order) {
|
||||
ListSortOrder.LAST_READ -> ListHeader(calculateTimeAgo(updatedAt))
|
||||
ListSortOrder.LAST_READ,
|
||||
ListSortOrder.LONG_AGO_READ -> ListHeader(calculateTimeAgo(updatedAt))
|
||||
|
||||
ListSortOrder.OLDEST,
|
||||
ListSortOrder.NEWEST -> ListHeader(calculateTimeAgo(createdAt))
|
||||
|
||||
ListSortOrder.UNREAD,
|
||||
ListSortOrder.PROGRESS -> ListHeader(
|
||||
when (percent) {
|
||||
1f -> R.string.status_completed
|
||||
|
||||
@@ -10,21 +10,45 @@ enum class ListSortOrder(
|
||||
) {
|
||||
|
||||
NEWEST(R.string.order_added),
|
||||
OLDEST(R.string.order_oldest),
|
||||
PROGRESS(R.string.progress),
|
||||
UNREAD(R.string.unread),
|
||||
ALPHABETIC(R.string.by_name),
|
||||
ALPHABETIC_REVERSE(R.string.by_name_reverse),
|
||||
RATING(R.string.by_rating),
|
||||
RELEVANCE(R.string.by_relevance),
|
||||
NEW_CHAPTERS(R.string.new_chapters),
|
||||
LAST_READ(R.string.last_read),
|
||||
LONG_AGO_READ(R.string.long_ago_read),
|
||||
;
|
||||
|
||||
fun isGroupingSupported() = this == LAST_READ || this == NEWEST || this == PROGRESS
|
||||
|
||||
companion object {
|
||||
|
||||
val HISTORY: Set<ListSortOrder> = EnumSet.of(LAST_READ, NEWEST, PROGRESS, ALPHABETIC, ALPHABETIC_REVERSE, NEW_CHAPTERS)
|
||||
val FAVORITES: Set<ListSortOrder> = EnumSet.of(ALPHABETIC, ALPHABETIC_REVERSE, NEWEST, RATING, NEW_CHAPTERS, PROGRESS, LAST_READ)
|
||||
val HISTORY: Set<ListSortOrder> = EnumSet.of(
|
||||
LAST_READ,
|
||||
LONG_AGO_READ,
|
||||
NEWEST,
|
||||
OLDEST,
|
||||
PROGRESS,
|
||||
UNREAD,
|
||||
ALPHABETIC,
|
||||
ALPHABETIC_REVERSE,
|
||||
NEW_CHAPTERS,
|
||||
)
|
||||
val FAVORITES: Set<ListSortOrder> = EnumSet.of(
|
||||
ALPHABETIC,
|
||||
ALPHABETIC_REVERSE,
|
||||
NEWEST,
|
||||
OLDEST,
|
||||
RATING,
|
||||
NEW_CHAPTERS,
|
||||
PROGRESS,
|
||||
UNREAD,
|
||||
LAST_READ,
|
||||
LONG_AGO_READ,
|
||||
)
|
||||
val SUGGESTIONS: Set<ListSortOrder> = EnumSet.of(RELEVANCE)
|
||||
|
||||
operator fun invoke(value: String, fallback: ListSortOrder) = entries.find(value) ?: fallback
|
||||
|
||||
@@ -1,24 +1,26 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M4,4C2.89,4 2,4.89 2,6L2,18C2,19.11 2.89,20 4,20L9,20L9,18L8,18L6,18L4,18L4,6L6,6L8,6L9,6L9,4L4,4zM15,4L15,6L16,6L18,6L20,6L20,18L18,18L16,18L15,18L15,20L20,20C21.1,20 22,19.11 22,18L22,6C22,4.89 21.1,4 20,4L15,4z"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="m11,22.43v-3h2v3z"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="m13,1.57v3h-2v-3h2"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="m11,17.43v-3h2v3h-2"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="m11,9.57v-3h2v3h-2"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="m14.5,15v-2h-7v-2h7V9l4,3 -4,3"/>
|
||||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M4,4C2.89,4 2,4.89 2,6L2,18C2,19.11 2.89,20 4,20L9,20L9,18L8,18L6,18L4,18L4,6L6,6L8,6L9,6L9,4L4,4zM15,4L15,6L16,6L18,6L20,6L20,18L18,18L16,18L15,18L15,20L20,20C21.1,20 22,19.11 22,18L22,6C22,4.89 21.1,4 20,4L15,4z" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="m11,22.43v-3h2v3z" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="m13,1.57v3h-2v-3h2" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="m11,17.43v-3h2v3h-2" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="m11,9.57v-3h2v3h-2" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="m14.5,15v-2h-7v-2h7V9l4,3 -4,3" />
|
||||
</vector>
|
||||
|
||||
@@ -633,4 +633,7 @@
|
||||
<string name="runs_on_app_start">Runs when the application starts</string>
|
||||
<string name="split_by_translations">Split by translations</string>
|
||||
<string name="split_by_translations_summary">Show chapters with different translations separately, rather than in one list</string>
|
||||
<string name="order_oldest">Oldest</string>
|
||||
<string name="long_ago_read">Long time ago read</string>
|
||||
<string name="unread">Unread</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user