Grab started filter from J2k
This commit is contained in:
parent
b8836b9b6f
commit
166aebdf25
@ -5,4 +5,8 @@ class LibraryManga : MangaImpl() {
|
|||||||
var unread: Int = 0
|
var unread: Int = 0
|
||||||
|
|
||||||
var category: Int = 0
|
var category: Int = 0
|
||||||
|
|
||||||
|
// SY -->
|
||||||
|
var read: Int = 0
|
||||||
|
// SY <--
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ val libraryQuery =
|
|||||||
"""
|
"""
|
||||||
SELECT M.*, COALESCE(MC.${MangaCategory.COL_CATEGORY_ID}, 0) AS ${Manga.COL_CATEGORY}
|
SELECT M.*, COALESCE(MC.${MangaCategory.COL_CATEGORY_ID}, 0) AS ${Manga.COL_CATEGORY}
|
||||||
FROM (
|
FROM (
|
||||||
SELECT ${Manga.TABLE}.*, COALESCE(C.unread, 0) AS ${Manga.COL_UNREAD}
|
SELECT ${Manga.TABLE}.*, COALESCE(C.unread, 0) AS ${Manga.COL_UNREAD}, COALESCE(R.read, 0) AS ${Manga.COL_READ}
|
||||||
FROM ${Manga.TABLE}
|
FROM ${Manga.TABLE}
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT ${Chapter.COL_MANGA_ID}, COUNT(*) AS unread
|
SELECT ${Chapter.COL_MANGA_ID}, COUNT(*) AS unread
|
||||||
@ -51,6 +51,13 @@ val libraryQuery =
|
|||||||
GROUP BY ${Chapter.COL_MANGA_ID}
|
GROUP BY ${Chapter.COL_MANGA_ID}
|
||||||
) AS C
|
) AS C
|
||||||
ON ${Manga.COL_ID} = C.${Chapter.COL_MANGA_ID}
|
ON ${Manga.COL_ID} = C.${Chapter.COL_MANGA_ID}
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT ${Chapter.COL_MANGA_ID}, COUNT(*) AS read
|
||||||
|
FROM ${Chapter.TABLE}
|
||||||
|
WHERE ${Chapter.COL_READ} = 1
|
||||||
|
GROUP BY ${Chapter.COL_MANGA_ID}
|
||||||
|
) AS R
|
||||||
|
ON ${Manga.COL_ID} = R.${Chapter.COL_MANGA_ID}
|
||||||
WHERE ${Manga.COL_FAVORITE} = 1
|
WHERE ${Manga.COL_FAVORITE} = 1
|
||||||
GROUP BY ${Manga.COL_ID}
|
GROUP BY ${Manga.COL_ID}
|
||||||
ORDER BY ${Manga.COL_TITLE}
|
ORDER BY ${Manga.COL_TITLE}
|
||||||
|
@ -18,6 +18,9 @@ class LibraryMangaGetResolver : DefaultGetResolver<LibraryManga>(), BaseMangaGet
|
|||||||
mapBaseFromCursor(manga, cursor)
|
mapBaseFromCursor(manga, cursor)
|
||||||
manga.unread = cursor.getInt(cursor.getColumnIndex(MangaTable.COL_UNREAD))
|
manga.unread = cursor.getInt(cursor.getColumnIndex(MangaTable.COL_UNREAD))
|
||||||
manga.category = cursor.getInt(cursor.getColumnIndex(MangaTable.COL_CATEGORY))
|
manga.category = cursor.getInt(cursor.getColumnIndex(MangaTable.COL_CATEGORY))
|
||||||
|
// SY -->
|
||||||
|
manga.read = cursor.getInt(cursor.getColumnIndex(MangaTable.COL_READ))
|
||||||
|
// SY <--
|
||||||
|
|
||||||
return manga
|
return manga
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,10 @@ object MangaTable {
|
|||||||
|
|
||||||
const val COL_UNREAD = "unread"
|
const val COL_UNREAD = "unread"
|
||||||
|
|
||||||
|
// SY ->>
|
||||||
|
const val COL_READ = "read"
|
||||||
|
// SY <--
|
||||||
|
|
||||||
const val COL_CATEGORY = "category"
|
const val COL_CATEGORY = "category"
|
||||||
|
|
||||||
const val COL_COVER_LAST_MODIFIED = "cover_last_modified"
|
const val COL_COVER_LAST_MODIFIED = "cover_last_modified"
|
||||||
|
@ -115,6 +115,8 @@ object PreferenceKeys {
|
|||||||
|
|
||||||
const val filterCompleted = "pref_filter_completed_key"
|
const val filterCompleted = "pref_filter_completed_key"
|
||||||
|
|
||||||
|
const val filterStarted = "pref_filter_started_key"
|
||||||
|
|
||||||
const val filterTracked = "pref_filter_tracked_key"
|
const val filterTracked = "pref_filter_tracked_key"
|
||||||
|
|
||||||
const val filterLewd = "pref_filter_lewd_key"
|
const val filterLewd = "pref_filter_lewd_key"
|
||||||
|
@ -215,6 +215,8 @@ class PreferencesHelper(val context: Context) {
|
|||||||
|
|
||||||
fun filterCompleted() = flowPrefs.getInt(Keys.filterCompleted, 0)
|
fun filterCompleted() = flowPrefs.getInt(Keys.filterCompleted, 0)
|
||||||
|
|
||||||
|
fun filterStarted() = flowPrefs.getInt(Keys.filterStarted, 0)
|
||||||
|
|
||||||
fun filterTracked() = flowPrefs.getInt(Keys.filterTracked, 0)
|
fun filterTracked() = flowPrefs.getInt(Keys.filterTracked, 0)
|
||||||
|
|
||||||
fun filterLewd() = flowPrefs.getInt(Keys.filterLewd, 0)
|
fun filterLewd() = flowPrefs.getInt(Keys.filterLewd, 0)
|
||||||
|
@ -95,6 +95,7 @@ class LibraryCategoryAdapter(view: LibraryCategoryView, val controller: LibraryC
|
|||||||
!preferences.downloadedOnly().get() &&
|
!preferences.downloadedOnly().get() &&
|
||||||
preferences.filterDownloaded().get() == Filter.TriState.STATE_IGNORE &&
|
preferences.filterDownloaded().get() == Filter.TriState.STATE_IGNORE &&
|
||||||
preferences.filterCompleted().get() == Filter.TriState.STATE_IGNORE &&
|
preferences.filterCompleted().get() == Filter.TriState.STATE_IGNORE &&
|
||||||
|
preferences.filterStarted().get() == Filter.TriState.STATE_IGNORE &&
|
||||||
preferences.filterUnread().get() == Filter.TriState.STATE_IGNORE &&
|
preferences.filterUnread().get() == Filter.TriState.STATE_IGNORE &&
|
||||||
preferences.filterTracked().get() == Filter.TriState.STATE_IGNORE &&
|
preferences.filterTracked().get() == Filter.TriState.STATE_IGNORE &&
|
||||||
preferences.filterLewd().get() == Filter.TriState.STATE_IGNORE
|
preferences.filterLewd().get() == Filter.TriState.STATE_IGNORE
|
||||||
|
@ -160,8 +160,11 @@ class LibraryPresenter(
|
|||||||
val filterDownloadedOnly = preferences.downloadedOnly().get()
|
val filterDownloadedOnly = preferences.downloadedOnly().get()
|
||||||
val filterUnread = preferences.filterUnread().get()
|
val filterUnread = preferences.filterUnread().get()
|
||||||
val filterCompleted = preferences.filterCompleted().get()
|
val filterCompleted = preferences.filterCompleted().get()
|
||||||
|
// SY -->
|
||||||
|
val filterStarted = preferences.filterStarted().get()
|
||||||
val filterTracked = preferences.filterTracked().get()
|
val filterTracked = preferences.filterTracked().get()
|
||||||
val filterLewd = preferences.filterLewd().get()
|
val filterLewd = preferences.filterLewd().get()
|
||||||
|
// SY <--
|
||||||
|
|
||||||
val filterFn: (LibraryItem) -> Boolean = f@{ item ->
|
val filterFn: (LibraryItem) -> Boolean = f@{ item ->
|
||||||
// Filter when there isn't unread chapters.
|
// Filter when there isn't unread chapters.
|
||||||
@ -177,6 +180,13 @@ class LibraryPresenter(
|
|||||||
if (filterCompleted == STATE_EXCLUDE && item.manga.status == SManga.COMPLETED) {
|
if (filterCompleted == STATE_EXCLUDE && item.manga.status == SManga.COMPLETED) {
|
||||||
return@f false
|
return@f false
|
||||||
}
|
}
|
||||||
|
// SY -->
|
||||||
|
if (filterStarted == STATE_INCLUDE && item.manga.read == 0) {
|
||||||
|
return@f false
|
||||||
|
}
|
||||||
|
if (filterStarted == STATE_EXCLUDE && item.manga.read > 0) {
|
||||||
|
return@f false
|
||||||
|
}
|
||||||
if (filterTracked != STATE_IGNORE) {
|
if (filterTracked != STATE_IGNORE) {
|
||||||
val tracks = db.getTracks(item.manga).executeAsBlocking()
|
val tracks = db.getTracks(item.manga).executeAsBlocking()
|
||||||
if (filterTracked == STATE_INCLUDE && tracks.isEmpty()) return@f false
|
if (filterTracked == STATE_INCLUDE && tracks.isEmpty()) return@f false
|
||||||
@ -196,6 +206,7 @@ class LibraryPresenter(
|
|||||||
}
|
}
|
||||||
return@f if (filterDownloaded == STATE_INCLUDE || filterDownloadedOnly) isDownloaded else !isDownloaded
|
return@f if (filterDownloaded == STATE_INCLUDE || filterDownloadedOnly) isDownloaded else !isDownloaded
|
||||||
}
|
}
|
||||||
|
// SY <--
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,6 +87,7 @@ class LibrarySettingsSheet(
|
|||||||
private val downloaded = Item.TriStateGroup(R.string.action_filter_downloaded, this)
|
private val downloaded = Item.TriStateGroup(R.string.action_filter_downloaded, this)
|
||||||
private val unread = Item.TriStateGroup(R.string.action_filter_unread, this)
|
private val unread = Item.TriStateGroup(R.string.action_filter_unread, this)
|
||||||
private val completed = Item.TriStateGroup(R.string.completed, this)
|
private val completed = Item.TriStateGroup(R.string.completed, this)
|
||||||
|
private val started = Item.TriStateGroup(R.string.started, this)
|
||||||
private val tracked = Item.TriStateGroup(R.string.tracked, this)
|
private val tracked = Item.TriStateGroup(R.string.tracked, this)
|
||||||
private val lewd = Item.TriStateGroup(R.string.lewd, this)
|
private val lewd = Item.TriStateGroup(R.string.lewd, this)
|
||||||
// SY <--
|
// SY <--
|
||||||
@ -95,9 +96,9 @@ class LibrarySettingsSheet(
|
|||||||
// SY -->
|
// SY -->
|
||||||
override val items = (
|
override val items = (
|
||||||
if (Injekt.get<TrackManager>().hasLoggedServices()) {
|
if (Injekt.get<TrackManager>().hasLoggedServices()) {
|
||||||
listOf(downloaded, unread, completed, tracked, lewd)
|
listOf(downloaded, unread, completed, started, tracked, lewd)
|
||||||
} else {
|
} else {
|
||||||
listOf(downloaded, unread, completed, lewd)
|
listOf(downloaded, unread, completed, started, lewd)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
// SY <--
|
// SY <--
|
||||||
@ -109,6 +110,7 @@ class LibrarySettingsSheet(
|
|||||||
downloaded.state = preferences.filterDownloaded().get()
|
downloaded.state = preferences.filterDownloaded().get()
|
||||||
unread.state = preferences.filterUnread().get()
|
unread.state = preferences.filterUnread().get()
|
||||||
completed.state = preferences.filterCompleted().get()
|
completed.state = preferences.filterCompleted().get()
|
||||||
|
completed.state = preferences.filterStarted().get()
|
||||||
if (Injekt.get<TrackManager>().hasLoggedServices()) {
|
if (Injekt.get<TrackManager>().hasLoggedServices()) {
|
||||||
tracked.state = preferences.filterTracked().get()
|
tracked.state = preferences.filterTracked().get()
|
||||||
} else {
|
} else {
|
||||||
@ -132,6 +134,7 @@ class LibrarySettingsSheet(
|
|||||||
downloaded -> preferences.filterDownloaded().set(item.state)
|
downloaded -> preferences.filterDownloaded().set(item.state)
|
||||||
unread -> preferences.filterUnread().set(item.state)
|
unread -> preferences.filterUnread().set(item.state)
|
||||||
completed -> preferences.filterCompleted().set(item.state)
|
completed -> preferences.filterCompleted().set(item.state)
|
||||||
|
started -> preferences.filterStarted().set(item.state)
|
||||||
tracked -> preferences.filterTracked().set(item.state)
|
tracked -> preferences.filterTracked().set(item.state)
|
||||||
lewd -> preferences.filterLewd().set(item.state)
|
lewd -> preferences.filterLewd().set(item.state)
|
||||||
}
|
}
|
||||||
|
@ -310,6 +310,7 @@
|
|||||||
<!-- Library Sheet -->
|
<!-- Library Sheet -->
|
||||||
<string name="tracked">Tracked</string>
|
<string name="tracked">Tracked</string>
|
||||||
<string name="lewd">Lewd</string>
|
<string name="lewd">Lewd</string>
|
||||||
|
<string name="started">Started</string>
|
||||||
|
|
||||||
<!-- Library Grouping -->
|
<!-- Library Grouping -->
|
||||||
<string name="tracking_status">Tracking status</string>
|
<string name="tracking_status">Tracking status</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user