diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt
index 69be95947..66256e5fc 100755
--- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt
@@ -109,6 +109,8 @@ object PreferenceKeys {
const val filterCompleted = "pref_filter_completed_key"
+ const val filterTracked = "pref_filter_tracked_key"
+
const val librarySortingMode = "library_sorting_mode"
const val automaticExtUpdates = "automatic_ext_updates"
diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
index d65e26a0d..a0e88addb 100755
--- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
@@ -202,6 +202,8 @@ class PreferencesHelper(val context: Context) {
fun filterCompleted() = flowPrefs.getInt(Keys.filterCompleted, 0)
+ fun filterTracked() = flowPrefs.getInt(Keys.filterTracked, 0)
+
fun librarySortingMode() = flowPrefs.getInt(Keys.librarySortingMode, 0)
fun librarySortingAscending() = flowPrefs.getBoolean("library_sorting_ascending", true)
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
index d082f4164..a06e1479c 100755
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
@@ -130,6 +130,7 @@ class LibraryPresenter(
val filterDownloadedOnly = preferences.downloadedOnly().get()
val filterUnread = preferences.filterUnread().get()
val filterCompleted = preferences.filterCompleted().get()
+ val filterTracked = preferences.filterTracked().get()
val filterFn: (LibraryItem) -> Boolean = f@{ item ->
// Filter when there isn't unread chapters.
@@ -145,6 +146,11 @@ class LibraryPresenter(
if (filterCompleted == STATE_EXCLUDE && item.manga.status == SManga.COMPLETED) {
return@f false
}
+ if (filterTracked != STATE_IGNORE) {
+ val tracks = db.getTracks(item.manga).executeAsBlocking()
+ if (filterTracked == STATE_INCLUDE && tracks.isEmpty()) return@f false
+ else if (filterTracked == STATE_EXCLUDE && tracks.isNotEmpty()) return@f false
+ }
// Filter when there are no downloads.
if (filterDownloaded != STATE_IGNORE || filterDownloadedOnly) {
val isDownloaded = when {
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
index 6c8f9bfde..550da014d 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
@@ -70,9 +70,10 @@ class LibrarySettingsSheet(
private val downloaded = Item.TriStateGroup(R.string.action_filter_downloaded, this)
private val unread = Item.TriStateGroup(R.string.action_filter_unread, this)
private val completed = Item.TriStateGroup(R.string.completed, this)
+ private val tracked = Item.TriStateGroup(R.string.tracked, this)
override val header = null
- override val items = listOf(downloaded, unread, completed)
+ override val items = listOf(downloaded, unread, completed, tracked)
override val footer = null
override fun initModels() { // j2k changes
@@ -80,6 +81,7 @@ class LibrarySettingsSheet(
downloaded.state = preferences.filterDownloaded().get()
unread.state = preferences.filterUnread().get()
completed.state = preferences.filterCompleted().get()
+ tracked.state = preferences.filterTracked().get()
} catch (e: Exception) {
preferences.upgradeFilters()
}
@@ -97,6 +99,7 @@ class LibrarySettingsSheet(
downloaded -> preferences.filterDownloaded().set(item.state)
unread -> preferences.filterUnread().set(item.state)
completed -> preferences.filterCompleted().set(item.state)
+ tracked -> preferences.filterTracked().set(item.state)
}
adapter.notifyItemChanged(item)
diff --git a/app/src/main/res/values/strings_extra.xml b/app/src/main/res/values/strings_extra.xml
index 5fa5d353b..6fad334e0 100644
--- a/app/src/main/res/values/strings_extra.xml
+++ b/app/src/main/res/values/strings_extra.xml
@@ -17,6 +17,9 @@
Copy now
+
+ Tracked
+
All Sources