Sort library by download count

This commit is contained in:
Maddie Witman 2024-07-13 20:17:00 -04:00
parent e17f70f722
commit efd4308474
4 changed files with 9 additions and 0 deletions

View File

@ -177,6 +177,7 @@ private fun ColumnScope.SortPage(
MR.strings.action_sort_latest_chapter to LibrarySort.Type.LatestChapter, MR.strings.action_sort_latest_chapter to LibrarySort.Type.LatestChapter,
MR.strings.action_sort_chapter_fetch_date to LibrarySort.Type.ChapterFetchDate, MR.strings.action_sort_chapter_fetch_date to LibrarySort.Type.ChapterFetchDate,
MR.strings.action_sort_date_added to LibrarySort.Type.DateAdded, MR.strings.action_sort_date_added to LibrarySort.Type.DateAdded,
MR.strings.action_sort_download_count to LibrarySort.Type.DownloadCount,
).plus(trackerSortOption).map { (titleRes, mode) -> ).plus(trackerSortOption).map { (titleRes, mode) ->
SortItem( SortItem(
label = stringResource(titleRes), label = stringResource(titleRes),

View File

@ -312,6 +312,9 @@ class LibraryScreenModel(
val item2Score = trackerScores[i2.libraryManga.id] ?: defaultTrackerScoreSortValue val item2Score = trackerScores[i2.libraryManga.id] ?: defaultTrackerScoreSortValue
item1Score.compareTo(item2Score) item1Score.compareTo(item2Score)
} }
LibrarySort.Type.DownloadCount -> {
i1.downloadCount.compareTo(i2.downloadCount)
}
} }
} }

View File

@ -31,6 +31,7 @@ data class LibrarySort(
data object ChapterFetchDate : Type(0b00011000) data object ChapterFetchDate : Type(0b00011000)
data object DateAdded : Type(0b00011100) data object DateAdded : Type(0b00011100)
data object TrackerMean : Type(0b000100000) data object TrackerMean : Type(0b000100000)
data object DownloadCount : Type(0b000100100)
companion object { companion object {
fun valueOf(flag: Long): Type { fun valueOf(flag: Long): Type {
@ -77,6 +78,7 @@ data class LibrarySort(
Type.ChapterFetchDate, Type.ChapterFetchDate,
Type.DateAdded, Type.DateAdded,
Type.TrackerMean, Type.TrackerMean,
Type.DownloadCount,
) )
} }
val directions by lazy { setOf(Direction.Ascending, Direction.Descending) } val directions by lazy { setOf(Direction.Ascending, Direction.Descending) }
@ -104,6 +106,7 @@ data class LibrarySort(
"CHAPTER_FETCH_DATE" -> Type.ChapterFetchDate "CHAPTER_FETCH_DATE" -> Type.ChapterFetchDate
"DATE_ADDED" -> Type.DateAdded "DATE_ADDED" -> Type.DateAdded
"TRACKER_MEAN" -> Type.TrackerMean "TRACKER_MEAN" -> Type.TrackerMean
"DOWNLOAD_COUNT" -> Type.DownloadCount
else -> Type.Alphabetical else -> Type.Alphabetical
} }
val ascending = if (values[1] == "ASCENDING") Direction.Ascending else Direction.Descending val ascending = if (values[1] == "ASCENDING") Direction.Ascending else Direction.Descending
@ -125,6 +128,7 @@ data class LibrarySort(
Type.ChapterFetchDate -> "CHAPTER_FETCH_DATE" Type.ChapterFetchDate -> "CHAPTER_FETCH_DATE"
Type.DateAdded -> "DATE_ADDED" Type.DateAdded -> "DATE_ADDED"
Type.TrackerMean -> "TRACKER_MEAN" Type.TrackerMean -> "TRACKER_MEAN"
Type.DownloadCount -> "DOWNLOAD_COUNT"
} }
val direction = if (direction == Direction.Ascending) "ASCENDING" else "DESCENDING" val direction = if (direction == Direction.Ascending) "ASCENDING" else "DESCENDING"
return "$type,$direction" return "$type,$direction"

View File

@ -69,6 +69,7 @@
<string name="action_sort_chapter_fetch_date">Chapter fetch date</string> <string name="action_sort_chapter_fetch_date">Chapter fetch date</string>
<string name="action_sort_date_added">Date added</string> <string name="action_sort_date_added">Date added</string>
<string name="action_sort_tracker_score">Tracker score</string> <string name="action_sort_tracker_score">Tracker score</string>
<string name="action_sort_download_count">Download count</string>
<string name="action_search">Search</string> <string name="action_search">Search</string>
<string name="action_search_hint">Search…</string> <string name="action_search_hint">Search…</string>
<string name="action_search_settings">Search settings</string> <string name="action_search_settings">Search settings</string>