add sort by date fetched in library (#4773)
* add sort by date fetched in library * chapter fetch date to 8 (cherry picked from commit ddd4cc10ff12d2497a001821c678f2c1a90eef34) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySort.kt
This commit is contained in:
parent
a70a6cbe49
commit
03366ae7e5
@ -227,6 +227,16 @@ interface MangaQueries : DbProvider {
|
||||
)
|
||||
.prepare()
|
||||
|
||||
fun getChapterFetchDateManga() = db.get()
|
||||
.listOfObjects(Manga::class.java)
|
||||
.withQuery(
|
||||
RawQuery.builder()
|
||||
.query(getChapterFetchDateMangaQuery())
|
||||
.observesTables(MangaTable.TABLE)
|
||||
.build()
|
||||
)
|
||||
.prepare()
|
||||
|
||||
// SY -->
|
||||
fun getMangaWithMetadata() = db.get()
|
||||
.listOfObjects(Manga::class.java)
|
||||
|
@ -222,6 +222,16 @@ fun getLatestChapterMangaQuery() =
|
||||
ORDER by max DESC
|
||||
"""
|
||||
|
||||
fun getChapterFetchDateMangaQuery() =
|
||||
"""
|
||||
SELECT ${Manga.TABLE}.*, MAX(${Chapter.TABLE}.${Chapter.COL_DATE_FETCH}) AS max
|
||||
FROM ${Manga.TABLE}
|
||||
JOIN ${Chapter.TABLE}
|
||||
ON ${Manga.TABLE}.${Manga.COL_ID} = ${Chapter.TABLE}.${Chapter.COL_MANGA_ID}
|
||||
GROUP BY ${Manga.TABLE}.${Manga.COL_ID}
|
||||
ORDER by max DESC
|
||||
"""
|
||||
|
||||
/**
|
||||
* Query to get the categories for a manga.
|
||||
*/
|
||||
|
@ -325,6 +325,10 @@ class LibraryPresenter(
|
||||
var counter = 0
|
||||
db.getLatestChapterManga().executeAsBlocking().associate { it.id!! to counter++ }
|
||||
}
|
||||
val chapterFetchDateManga by lazy {
|
||||
var counter = 0
|
||||
db.getChapterFetchDateManga().executeAsBlocking().associate { it.id!! to counter++ }
|
||||
}
|
||||
|
||||
// SY -->
|
||||
val listOfTags by lazy {
|
||||
@ -370,6 +374,13 @@ class LibraryPresenter(
|
||||
?: latestChapterManga.size
|
||||
manga1latestChapter.compareTo(manga2latestChapter)
|
||||
}
|
||||
LibrarySort.CHAPTER_FETCH_DATE -> {
|
||||
val manga1chapterFetchDate = chapterFetchDateManga[i1.manga.id!!]
|
||||
?: chapterFetchDateManga.size
|
||||
val manga2chapterFetchDate = chapterFetchDateManga[i2.manga.id!!]
|
||||
?: chapterFetchDateManga.size
|
||||
manga1chapterFetchDate.compareTo(manga2chapterFetchDate)
|
||||
}
|
||||
LibrarySort.DATE_ADDED -> i2.manga.date_added.compareTo(i1.manga.date_added)
|
||||
// SY -->
|
||||
LibrarySort.DRAG_AND_DROP -> {
|
||||
|
@ -190,6 +190,7 @@ class LibrarySettingsSheet(
|
||||
private val lastChecked = Item.MultiSort(R.string.action_sort_last_checked, this)
|
||||
private val unread = Item.MultiSort(R.string.action_filter_unread, this)
|
||||
private val latestChapter = Item.MultiSort(R.string.action_sort_latest_chapter, this)
|
||||
private val chapterFetchDate = Item.MultiSort(R.string.action_sort_chapter_fetch_date, this)
|
||||
private val dateAdded = Item.MultiSort(R.string.action_sort_date_added, this)
|
||||
|
||||
// SY -->
|
||||
@ -200,7 +201,7 @@ class LibrarySettingsSheet(
|
||||
override val header = null
|
||||
|
||||
override val items =
|
||||
listOf(alphabetically, lastRead, lastChecked, unread, total, latestChapter, dateAdded /* SY --> */, dragAndDrop) + if (preferences.sortTagsForLibrary().get().isNotEmpty()) listOf(tagList) else emptyList() /* SY <-- */
|
||||
listOf(alphabetically, lastRead, lastChecked, unread, total, latestChapter, chapterFetchDate, dateAdded /* SY --> */, dragAndDrop) + if (preferences.sortTagsForLibrary().get().isNotEmpty()) listOf(tagList) else emptyList() /* SY <-- */
|
||||
override val footer = null
|
||||
|
||||
override fun initModels() {
|
||||
@ -223,6 +224,8 @@ class LibrarySettingsSheet(
|
||||
if (sorting == LibrarySort.TOTAL) order else Item.MultiSort.SORT_NONE
|
||||
latestChapter.state =
|
||||
if (sorting == LibrarySort.LATEST_CHAPTER) order else Item.MultiSort.SORT_NONE
|
||||
chapterFetchDate.state =
|
||||
if (sorting == LibrarySort.CHAPTER_FETCH_DATE) order else Item.MultiSort.SORT_NONE
|
||||
dateAdded.state =
|
||||
if (sorting == LibrarySort.DATE_ADDED) order else Item.MultiSort.SORT_NONE
|
||||
// SY -->
|
||||
@ -264,6 +267,7 @@ class LibrarySettingsSheet(
|
||||
unread -> LibrarySort.UNREAD
|
||||
total -> LibrarySort.TOTAL
|
||||
latestChapter -> LibrarySort.LATEST_CHAPTER
|
||||
chapterFetchDate -> LibrarySort.CHAPTER_FETCH_DATE
|
||||
dateAdded -> LibrarySort.DATE_ADDED
|
||||
// SY -->
|
||||
dragAndDrop -> LibrarySort.DRAG_AND_DROP
|
||||
|
@ -8,6 +8,7 @@ object LibrarySort {
|
||||
const val UNREAD = 3
|
||||
const val TOTAL = 4
|
||||
const val LATEST_CHAPTER = 6
|
||||
const val CHAPTER_FETCH_DATE = 10
|
||||
const val DATE_ADDED = 8
|
||||
|
||||
// SY -->
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string name="action_sort_last_read">Last read</string>
|
||||
<string name="action_sort_last_checked">Last checked</string>
|
||||
<string name="action_sort_latest_chapter">Latest chapter</string>
|
||||
<string name="action_sort_chapter_fetch_date">Date fetched</string>
|
||||
<string name="action_sort_date_added">Date added</string>
|
||||
<string name="action_search">Search</string>
|
||||
<string name="action_search_settings">Search settings</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user