diff --git a/src/main/java/org/quantumbadger/redreader/common/PrefsUtility.java b/src/main/java/org/quantumbadger/redreader/common/PrefsUtility.java index e6146608a..0fd2fc27a 100644 --- a/src/main/java/org/quantumbadger/redreader/common/PrefsUtility.java +++ b/src/main/java/org/quantumbadger/redreader/common/PrefsUtility.java @@ -1150,6 +1150,19 @@ public static boolean pref_behaviour_hide_read_posts() { false); } + // How many comments a post should have to be shown? + public static long pref_behavior_hide_with_few_comments() { + final String value = getString( + R.string.pref_behaviour_hide_posts_min_comments_key, + "-1"); + try { + return Long.parseLong(value); + } catch(final Throwable e) { + // The preference is unset, set to "", or somehow set to not-a-number + return -1; + } + } + public enum SharingDomain { STANDARD_REDDIT("reddit.com"), SHORT_REDDIT("redd.it"), diff --git a/src/main/java/org/quantumbadger/redreader/fragments/PostListingFragment.java b/src/main/java/org/quantumbadger/redreader/fragments/PostListingFragment.java index 610797727..14f0638b5 100644 --- a/src/main/java/org/quantumbadger/redreader/fragments/PostListingFragment.java +++ b/src/main/java/org/quantumbadger/redreader/fragments/PostListingFragment.java @@ -836,7 +836,12 @@ public void onDataStreamComplete( && blockedSubreddits.contains( new SubredditCanonicalId(post.getSubreddit().getDecoded())); + final long minCommentsOrHide = + PrefsUtility.pref_behavior_hide_with_few_comments(); + if(!isPostBlocked + && (minCommentsOrHide <= 0 + || post.getNum_comments() >= minCommentsOrHide) && (!post.getOver_18() || isNsfwAllowed) && mPostIds.add(post.getIdAlone())) { diff --git a/src/main/java/org/quantumbadger/redreader/settings/SettingsFragment.java b/src/main/java/org/quantumbadger/redreader/settings/SettingsFragment.java index 86b2b167e..3006a3567 100644 --- a/src/main/java/org/quantumbadger/redreader/settings/SettingsFragment.java +++ b/src/main/java/org/quantumbadger/redreader/settings/SettingsFragment.java @@ -184,6 +184,7 @@ public void onCreatePreferences( final int[] editTextPrefsToUpdate = { R.string.pref_behaviour_comment_min_key, + R.string.pref_behaviour_hide_posts_min_comments_key, R.string.pref_reddit_client_id_override_key }; diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 63acf6062..05a3b9cce 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -82,6 +82,10 @@ pref_behaviour_nsfw Show NSFW content + pref_behaviour_hide_posts_few_comments + Hide posts with few comments + Hide posts with fewer than those comments (blank or -1 to show all) + Cache Pruning diff --git a/src/main/res/xml/prefs_behaviour.xml b/src/main/res/xml/prefs_behaviour.xml index b0b883486..726dfda23 100644 --- a/src/main/res/xml/prefs_behaviour.xml +++ b/src/main/res/xml/prefs_behaviour.xml @@ -175,6 +175,13 @@ android:key="@string/pref_behaviour_hide_read_posts_key" android:defaultValue="false"/> + +