Skip to content

Commit b455c78

Browse files
committed
Editable preferences for subreddit combination actions
1 parent 34f412a commit b455c78

File tree

5 files changed

+49
-0
lines changed

5 files changed

+49
-0
lines changed

src/main/java/org/quantumbadger/redreader/common/PrefsUtility.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.quantumbadger.redreader.reddit.PostSort;
3838
import org.quantumbadger.redreader.reddit.UserCommentSort;
3939
import org.quantumbadger.redreader.reddit.api.RedditAPICommentAction;
40+
import org.quantumbadger.redreader.reddit.api.RedditAPISubredditCombinationAction;
4041
import org.quantumbadger.redreader.reddit.api.RedditPostActions;
4142
import org.quantumbadger.redreader.reddit.things.InvalidSubredditNameException;
4243
import org.quantumbadger.redreader.reddit.things.SubredditCanonicalId;
@@ -1789,6 +1790,24 @@ public static String pref_reddit_client_id_override() {
17891790
return valueTrimmed;
17901791
}
17911792

1793+
public static EnumSet<RedditAPISubredditCombinationAction.SubredditCombinationAction>
1794+
pref_menus_subreddit_combination_context_items() {
1795+
final Set<String> strings = getStringSet(
1796+
R.string.pref_menus_subreddit_combinations_context_items_key,
1797+
R.array.pref_menus_subreddit_combinations_context_items_return);
1798+
1799+
final EnumSet<RedditAPISubredditCombinationAction.SubredditCombinationAction> result
1800+
= EnumSet.noneOf(
1801+
RedditAPISubredditCombinationAction.SubredditCombinationAction.class);
1802+
1803+
for(final String s : strings) {
1804+
result.add(RedditAPISubredditCombinationAction.SubredditCombinationAction.valueOf(
1805+
StringUtils.asciiUppercase(s)));
1806+
}
1807+
1808+
return result;
1809+
}
1810+
17921811
private static final String REDDIT_USER_AGREEMENT_PREF = "accepted_reddit_user_agreement";
17931812
private static final int REDDIT_USER_AGREEMENT_DECLINED = -1;
17941813
private static final int REDDIT_USER_AGREEMENT_APRIL_2023 = 1;

src/main/java/org/quantumbadger/redreader/reddit/api/RedditAPISubredditCombinationAction.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@ public static void showActionMenu(
5252
final AppCompatActivity activity,
5353
List<String> subredditNames) {
5454

55+
final EnumSet<SubredditCombinationAction> itemPref
56+
= PrefsUtility.pref_menus_subreddit_combination_context_items();
57+
58+
if(itemPref.isEmpty()) {
59+
return;
60+
}
61+
5562
final RedditAccount user =
5663
RedditAccountManager.getInstance(activity).getDefaultAccount();
5764

src/main/res/values/arrays.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1328,4 +1328,11 @@
13281328
<item>@string/pref_behaviour_post_tap_action_title_comments</item>
13291329
</string-array>
13301330

1331+
<!-- 2024-11-28 -->
1332+
<string-array name="pref_menus_subreddit_combinations_context_items">
1333+
</string-array>
1334+
1335+
<string-array name="pref_menus_subreddit_combinations_context_items_return">
1336+
</string-array>
1337+
13311338
</resources>

src/main/res/values/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1908,4 +1908,8 @@
19081908
<string name="error_401_message">Reddit says that you are not logged in or have provided invalid credentials.</string>
19091909
<string name="error_400_title">Bad Request</string>
19101910
<string name="error_400_message">Reddit says that you have submitted something invalid.</string>
1911+
1912+
<string name="pref_menus_subreddit_combinations_header">Subreddit Combinations</string>
1913+
<string name="pref_menus_subreddit_combinations_context_items_key" translatable="false">pref_menus_subreddit_combination_context_items</string>
1914+
<string name="pref_menus_subreddit_combinations_context_items_title">Action menu items</string>
19111915
</resources>

src/main/res/xml/prefs_menus.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,4 +132,16 @@
132132

133133
</PreferenceCategory>
134134

135+
<PreferenceCategory android:title="@string/pref_menus_subreddit_combinations_header">
136+
137+
<MultiSelectListPreference
138+
android:dialogTitle="@string/pref_menus_subreddit_combinations_context_items_title"
139+
android:key="@string/pref_menus_subreddit_combinations_context_items_key"
140+
android:title="@string/pref_menus_subreddit_combinations_context_items_title"
141+
android:entries="@array/pref_menus_subreddit_combinations_context_items"
142+
android:entryValues="@array/pref_menus_subreddit_combinations_context_items_return"
143+
android:defaultValue="@array/pref_menus_subreddit_combinations_context_items_return" />
144+
145+
</PreferenceCategory>
146+
135147
</PreferenceScreen>

0 commit comments

Comments
 (0)