Skip to content

Commit c67e0e3

Browse files
committed
Editable preferences for multireddit actions
1 parent 15863dc commit c67e0e3

5 files changed

Lines changed: 49 additions & 0 deletions

File tree

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.RedditAPIMultiredditAction;
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<RedditAPIMultiredditAction.MultiredditAction>
1794+
pref_menus_multireddit_context_items() {
1795+
final Set<String> strings = getStringSet(
1796+
R.string.pref_menus_multireddits_context_items_key,
1797+
R.array.pref_menus_multireddits_context_items_return);
1798+
1799+
final EnumSet<RedditAPIMultiredditAction.MultiredditAction> result
1800+
= EnumSet.noneOf(
1801+
RedditAPIMultiredditAction.MultiredditAction.class);
1802+
1803+
for(final String s : strings) {
1804+
result.add(RedditAPIMultiredditAction.MultiredditAction.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/RedditAPIMultiredditAction.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@
2626

2727
import org.quantumbadger.redreader.account.RedditAccount;
2828
import org.quantumbadger.redreader.account.RedditAccountManager;
29+
import org.quantumbadger.redreader.common.PrefsUtility;
2930

3031
import java.util.ArrayList;
32+
import java.util.EnumSet;
3133

3234
public class RedditAPIMultiredditAction {
3335

@@ -52,6 +54,13 @@ public static void showActionMenu(
5254
final AppCompatActivity activity,
5355
final String multiredditName) {
5456

57+
final EnumSet<MultiredditAction> itemPref
58+
= PrefsUtility.pref_menus_multireddit_context_items();
59+
60+
if(itemPref.isEmpty()) {
61+
return;
62+
}
63+
5564
final RedditAccount user =
5665
RedditAccountManager.getInstance(activity).getDefaultAccount();
5766

src/main/res/values/arrays.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1328,4 +1328,9 @@
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_multireddits_context_items">
1333+
</string-array>
1334+
1335+
<string-array name="pref_menus_multireddits_context_items_return" />
13311336
</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_multireddits_header">Multireddits</string>
1913+
<string name="pref_menus_multireddits_context_items_key">pref_menus_multireddit_context_items</string>
1914+
<string name="pref_menus_multireddits_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_multireddits_header">
136+
137+
<MultiSelectListPreference
138+
android:dialogTitle="@string/pref_menus_multireddits_context_items_title"
139+
android:key="@string/pref_menus_multireddits_context_items_key"
140+
android:title="@string/pref_menus_multireddits_context_items_title"
141+
android:entries="@array/pref_menus_multireddits_context_items"
142+
android:entryValues="@array/pref_menus_multireddits_context_items_return"
143+
android:defaultValue="@array/pref_menus_multireddits_context_items_return" />
144+
145+
</PreferenceCategory>
146+
135147
</PreferenceScreen>

0 commit comments

Comments
 (0)