diff options
Diffstat (limited to 'core')
4 files changed, 41 insertions, 1 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java index b962c1ba9..3488d125e 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java @@ -68,6 +68,7 @@ public class UserPreferences { private static final String PREF_SHOW_AUTO_DOWNLOAD_REPORT = "prefShowAutoDownloadReport"; public static final String PREF_BACK_BUTTON_BEHAVIOR = "prefBackButtonBehavior"; private static final String PREF_BACK_BUTTON_GO_TO_PAGE = "prefBackButtonGoToPage"; + public static final String PREF_FILTER_FEED = "prefFeedFilter"; public static final String PREF_QUEUE_KEEP_SORTED = "prefQueueKeepSorted"; public static final String PREF_QUEUE_KEEP_SORTED_ORDER = "prefQueueKeepSortedOrder"; @@ -150,6 +151,8 @@ public class UserPreferences { public static final int FEED_COUNTER_SHOW_UNPLAYED = 2; public static final int FEED_COUNTER_SHOW_NONE = 3; public static final int FEED_COUNTER_SHOW_DOWNLOADED = 4; + public static final int FEED_FILTER_NONE = 0; + public static final int FEED_FILTER_COUNTER_ZERO = 1; private static Context context; private static SharedPreferences prefs; @@ -1058,4 +1061,16 @@ public class UserPreferences { .putString(PREF_QUEUE_KEEP_SORTED_ORDER, sortOrder.name()) .apply(); } + + public static int getFeedFilter() { + String value = prefs.getString(PREF_FILTER_FEED, "" + FEED_FILTER_NONE); + return Integer.parseInt(value); + } + + public static void setFeedFilter(String value) { + prefs.edit() + .putString(PREF_FILTER_FEED, value) + .commit(); + } + } diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java index a13f03e9f..0de67b306 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java @@ -801,6 +801,16 @@ public final class DBReader { } final LongIntMap feedCounters = adapter.getFeedCounters(feedIds); + int feedFilter = UserPreferences.getFeedFilter(); + if (feedFilter == UserPreferences.FEED_FILTER_COUNTER_ZERO) { + for (int i = feeds.size() - 1; i >= 0; i--) { + if (feedCounters.get(feeds.get(i).getId()) <= 0) { + feedCounters.delete(feeds.get(i).getId()); + feeds.remove(i); + } + } + } + Comparator<Feed> comparator; int feedOrder = UserPreferences.getFeedOrder(); if (feedOrder == UserPreferences.FEED_ORDER_COUNTER) { diff --git a/core/src/main/res/values/arrays.xml b/core/src/main/res/values/arrays.xml index 13ff092b0..ba6c2f196 100644 --- a/core/src/main/res/values/arrays.xml +++ b/core/src/main/res/values/arrays.xml @@ -233,6 +233,16 @@ <item>3</item> </string-array> + <string-array name="nav_drawer_feed_filter_values"> + <item>0</item> + <item>1</item> + </string-array> + + <string-array name="nav_drawer_feed_filter_options"> + <item>@string/no_filter_label</item> + <item>@string/hide_subscriptions_where_counter_is_zero</item> + </string-array> + <string-array name="media_player_options"> <item>@string/media_player_builtin</item> <item>@string/media_player_sonic</item> diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 295f539ad..1059a55c1 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -401,7 +401,7 @@ <string name="pref_mobileUpdate_episode_download">Episode download</string> <string name="pref_mobileUpdate_streaming">Streaming</string> <string name="user_interface_label">User Interface</string> - <string name="user_interface_sum">Appearance, Subscription order, Lockscreen</string> + <string name="user_interface_sum">Appearance, Subscriptions, Lockscreen</string> <string name="pref_set_theme_title">Select Theme</string> <string name="pref_nav_drawer_items_title">Set Navigation Drawer items</string> <string name="pref_nav_drawer_items_sum">Change which items appear in the navigation drawer.</string> @@ -522,6 +522,11 @@ <string name="back_button_go_to_page_title">Select page</string> <string name="pref_delete_removes_from_queue_title">Delete removes from Queue</string> <string name="pref_delete_removes_from_queue_sum">Automatically remove an episode from the queue when it is deleted.</string> + <string name="pref_filter_feed_title">Subscription Filter</string> + <string name="pref_filter_feed_sum">Filter your subscriptions in navigation drawer and subscriptions screen.</string> + <string name="hide_subscriptions_where_counter_is_zero">Hide if counter is zero</string> + <string name="no_filter_label">None</string> + <string name="subscriptions_are_filtered">Subscriptions are filtered.</string> <!-- About screen --> <string name="about_pref">About</string> |