From 6a0ab3526a3d5c0f1a9966e4ee379d9579a1620f Mon Sep 17 00:00:00 2001 From: she11sh0cked Date: Tue, 12 May 2020 20:04:06 +0200 Subject: [PATCH] Implement library filter for tracked items (#1) * Implement library filter for tracked items * Revert formatting * Move string 'tracked' Co-authored-by: she11sh0cked --- .../eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt | 2 ++ .../kanade/tachiyomi/data/preference/PreferencesHelper.kt | 2 ++ .../java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt | 6 ++++++ .../eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt | 5 ++++- app/src/main/res/values/strings_extra.xml | 3 +++ 5 files changed, 17 insertions(+), 1 deletion(-) 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