Skip to content

Remove random / randomNSFW shortcuts #1271

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/main/assets/changelog-alpha.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ Added support for emotes in comment flairs (thanks to bharatknv)
Added "Mark as Read/Unread" fling action, and optional context menu item (thanks to JoshAusHessen and codeofdusk)
Show label on crossposts, and add "Go to Crosspost Origin" to post menu (thanks to folkemat)
Added preference to prevent posts being marked as read when clicked (thanks to Daniel Ho)
Remove random subreddit feature which is no longer supported by Reddit (thanks to Mark Yu)

/Alpha 358 (2025-03-12)
Added video playback speed control (thanks to folkemat)
Expand Down
1 change: 1 addition & 0 deletions src/main/assets/changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Added support for emotes in comment flairs (thanks to bharatknv)
Show label on crossposts, and add "Go to Crosspost Origin" to post menu (thanks to folkemat)
Added "Mark as Read/Unread" fling action, and optional post menu item (thanks to JoshAusHessen and codeofdusk)
Added preference to prevent posts being marked as read when clicked (thanks to Daniel Ho)
Remove random subreddit feature which is no longer supported by Reddit (thanks to Mark Yu)

113/1.24.1
Fix "Malformed URL" error for Imgur images (thanks to Alexey Rochev)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -266,14 +266,6 @@ public void onSelected(final @MainMenuFragment.MainMenuAction int type) {
onSelected(SubredditPostListURL.getPopular());
break;

case MainMenuFragment.MENU_MENU_ACTION_RANDOM:
onSelected(SubredditPostListURL.getRandom());
break;

case MainMenuFragment.MENU_MENU_ACTION_RANDOM_NSFW:
onSelected(SubredditPostListURL.getRandomNsfw());
break;

case MainMenuFragment.MENU_MENU_ACTION_ALL:
onSelected(SubredditPostListURL.getAll());
break;
Expand Down Expand Up @@ -779,8 +771,7 @@ public boolean onCreateOptionsMenu(final Menu menu) {

if(postsVisible
&& !user.isAnonymous()
&& (postListingController.isSubreddit()
|| postListingController.isRandomSubreddit())
&& postListingController.isSubreddit()
&& subredditSubscriptionManager.areSubscriptionsReady()
&& postListingFragment != null
&& postListingFragment.getSubreddit() != null) {
Expand All @@ -794,8 +785,7 @@ public boolean onCreateOptionsMenu(final Menu menu) {
}

if(postsVisible
&& (postListingController.isSubreddit()
|| postListingController.isRandomSubreddit())
&& postListingController.isSubreddit()
&& postListingFragment != null
&& postListingFragment.getSubreddit() != null) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,11 @@
import org.quantumbadger.redreader.reddit.api.SubredditSubscriptionState;
import org.quantumbadger.redreader.reddit.prepared.RedditPreparedPost;
import org.quantumbadger.redreader.reddit.things.InvalidSubredditNameException;
import org.quantumbadger.redreader.reddit.things.RedditSubreddit;
import org.quantumbadger.redreader.reddit.things.SubredditCanonicalId;
import org.quantumbadger.redreader.reddit.url.PostCommentListingURL;
import org.quantumbadger.redreader.reddit.url.PostListingURL;
import org.quantumbadger.redreader.reddit.url.RedditURLParser;
import org.quantumbadger.redreader.reddit.url.SearchPostListURL;
import org.quantumbadger.redreader.reddit.url.SubredditPostListURL;
import org.quantumbadger.redreader.views.RedditPostView;

import java.util.Locale;
Expand Down Expand Up @@ -187,24 +185,8 @@ public boolean onCreateOptionsMenu(final Menu menu) {
final RedditSubredditSubscriptionManager subredditSubscriptionManager
= RedditSubredditSubscriptionManager.getSingleton(this, user);

if(fragment != null
&& controller.isRandomSubreddit()
&& fragment.getSubreddit() != null) {
SubredditPostListURL url = SubredditPostListURL.parse(controller.getUri());
if(url != null && url.type == SubredditPostListURL.Type.RANDOM) {
try {
final String newSubreddit
= RedditSubreddit.stripRPrefix(fragment.getSubreddit().url);
url = url.changeSubreddit(newSubreddit);
controller = new PostListingController(url, this);
} catch(final InvalidSubredditNameException e) {
throw new RuntimeException(e);
}
}
}

if(!user.isAnonymous()
&& (controller.isSubreddit() || controller.isRandomSubreddit())
&& controller.isSubreddit()
&& subredditSubscriptionManager.areSubscriptionsReady()
&& fragment != null
&& fragment.getSubreddit() != null) {
Expand All @@ -224,7 +206,7 @@ public boolean onCreateOptionsMenu(final Menu menu) {
Boolean subredditPinState = null;
Boolean subredditBlockedState = null;

if((controller.isSubreddit() || controller.isRandomSubreddit())
if(controller.isSubreddit()
&& fragment != null
&& fragment.getSubreddit() != null) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -264,26 +264,6 @@ public MainMenuListingManager(
null,
false));
}

if(mainMenuShortcutItems.contains(MainMenuFragment.MainMenuShortcutItems.RANDOM)) {
mAdapter.appendToGroup(
GROUP_MAIN_ITEMS,
makeItem(
R.string.mainmenu_random,
MainMenuFragment.MENU_MENU_ACTION_RANDOM,
null,
false));
}

if(mainMenuShortcutItems.contains(MainMenuFragment.MainMenuShortcutItems.RANDOM_NSFW)) {
mAdapter.appendToGroup(
GROUP_MAIN_ITEMS,
makeItem(
R.string.mainmenu_random_nsfw,
MainMenuFragment.MENU_MENU_ACTION_RANDOM_NSFW,
null,
false));
}
}

if(PrefsUtility.pref_menus_mainmenu_dev_announcements()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ private enum FeatureFlag {
POST_TITLE_TAP_ACTION_FEATURE("postTitleTapActionFeature"),
DEFAULT_PREF_VIDEO_PLAYBACK_CONTROLS("defaultPrefVideoPlaybackControls"),
DEFAULT_PREF_CUSTOM_TABS("defaultPrefCustomTabs"),
CROSSPOST_ORIGIN_MENU_ITEM("crosspostOriginMenuItem");
CROSSPOST_ORIGIN_MENU_ITEM("crosspostOriginMenuItem"),
MAIN_MENU_RANDOM_REMOVED("mainMenuRandomRemoved");

@NonNull private final String id;

Expand Down Expand Up @@ -329,6 +330,25 @@ public static void handleUpgrade(@NonNull final Context context) {
existingPostActionMenuItems)
.apply();
}

if(getAndSetFeatureFlag(prefs, FeatureFlag.MAIN_MENU_RANDOM_REMOVED)
== FeatureFlagStatus.UPGRADE_NEEDED) {

Log.i(TAG, "Upgrading, removing random from main menu.");

final Set<String> existingShortcutPreferences
= PrefsUtility.getStringSet(
R.string.pref_menus_mainmenu_shortcutitems_key,
R.array.pref_menus_mainmenu_shortcutitems_items_default
);

existingShortcutPreferences.remove("random");
existingShortcutPreferences.remove("random_nsfw");

prefs.edit().putStringSet(
context.getString(R.string.pref_menus_mainmenu_shortcutitems_key),
existingShortcutPreferences).apply();
}
});
}

Expand Down Expand Up @@ -475,11 +495,6 @@ public static void handleLegacyUpgrade(
existingShortcutPreferences.add("popular");
}


if(PrefsUtility.pref_show_random_main_menu()) {
existingShortcutPreferences.add("random");
}

sharedPreferences.edit().putStringSet(
activity.getString(R.string.pref_menus_mainmenu_shortcutitems_key),
existingShortcutPreferences).apply();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import android.content.Context;
import android.content.res.Resources;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.MenuItem;

import androidx.annotation.NonNull;
Expand Down Expand Up @@ -453,12 +454,6 @@ public static boolean pref_show_popular_main_menu() {
false);
}

public static boolean pref_show_random_main_menu() {
return getBoolean(
R.string.pref_menus_show_random_main_menu_key,
false);
}

public static boolean pref_show_multireddit_main_menu() {
return getBoolean(
R.string.pref_menus_show_multireddit_main_menu_key,
Expand Down Expand Up @@ -1471,8 +1466,12 @@ public static EnumSet<MainMenuFragment.MainMenuUserItems> pref_menus_mainmenu_us
final EnumSet<MainMenuFragment.MainMenuShortcutItems> result = EnumSet.noneOf(
MainMenuFragment.MainMenuShortcutItems.class);
for(final String s : strings) {
result.add(MainMenuFragment.MainMenuShortcutItems.valueOf(
StringUtils.asciiUppercase(s)));
try {
result.add(MainMenuFragment.MainMenuShortcutItems.valueOf(
StringUtils.asciiUppercase(s)));
} catch (final Exception e) {
Log.e("PrefsUtility", "Ignoring unknown constant " + s, e);
}
}

return result;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,8 @@ public class MainMenuFragment extends RRFragment implements
public static final int MENU_MENU_ACTION_CUSTOM = 10;
public static final int MENU_MENU_ACTION_ALL = 11;
public static final int MENU_MENU_ACTION_POPULAR = 12;
public static final int MENU_MENU_ACTION_RANDOM = 13;
public static final int MENU_MENU_ACTION_RANDOM_NSFW = 14;
public static final int MENU_MENU_ACTION_SENT_MESSAGES = 15;
public static final int MENU_MENU_ACTION_FIND_SUBREDDIT = 16;
public static final int MENU_MENU_ACTION_SENT_MESSAGES = 13;
public static final int MENU_MENU_ACTION_FIND_SUBREDDIT = 14;

@IntDef({
MENU_MENU_ACTION_FRONTPAGE,
Expand All @@ -87,8 +85,6 @@ public class MainMenuFragment extends RRFragment implements
MENU_MENU_ACTION_CUSTOM,
MENU_MENU_ACTION_ALL,
MENU_MENU_ACTION_POPULAR,
MENU_MENU_ACTION_RANDOM,
MENU_MENU_ACTION_RANDOM_NSFW,
MENU_MENU_ACTION_SENT_MESSAGES,
MENU_MENU_ACTION_FIND_SUBREDDIT})
@Retention(RetentionPolicy.SOURCE)
Expand Down Expand Up @@ -213,7 +209,7 @@ public enum MainMenuUserItems {
}

public enum MainMenuShortcutItems {
FRONTPAGE, POPULAR, ALL, SUBREDDIT_SEARCH, CUSTOM, RANDOM, RANDOM_NSFW
FRONTPAGE, POPULAR, ALL, SUBREDDIT_SEARCH, CUSTOM
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,6 @@ public void onScrolled(
CacheManager.getInstance(context).makeRequest(mRequest);
break;

case RANDOM:
case SUBREDDIT: {

// Request the subreddit data
Expand Down Expand Up @@ -419,24 +418,6 @@ public synchronized void restackRefreshCount() {
}

private void onSubredditReceived() {

if(mPostListingURL.pathType() == RedditURLParser.SUBREDDIT_POST_LISTING_URL
&& mPostListingURL.asSubredditPostListURL().type
== SubredditPostListURL.Type.RANDOM) {
try {
mPostListingURL = mPostListingURL.asSubredditPostListURL()
.changeSubreddit(RedditSubreddit.stripRPrefix(mSubreddit.url));
mRequest = createPostListingRequest(
UriString.from(mPostListingURL.generateJsonUri()),
RedditAccountManager.getInstance(getContext())
.getDefaultAccount(),
mSession,
mRequest.downloadStrategy,
true);
} catch(final InvalidSubredditNameException e) {
throw new RuntimeException(e);
}
}
final String subtitle;

if(mPostListingURL.getOrder() == null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,11 +162,6 @@ public final boolean isSubredditCombination() {
== SubredditPostListURL.Type.SUBREDDIT_COMBINATION;
}

public final boolean isRandomSubreddit() {
return url.pathType() == RedditURLParser.SUBREDDIT_POST_LISTING_URL
&& url.asSubredditPostListURL().type == SubredditPostListURL.Type.RANDOM;
}

public final boolean isMultireddit() {
return url.pathType() == RedditURLParser.MULTIREDDIT_POST_LISTING_URL;
}
Expand All @@ -189,8 +184,6 @@ public final SubredditCanonicalId subredditCanonicalName() {
&& (url.asSubredditPostListURL().type
== SubredditPostListURL.Type.SUBREDDIT
|| url.asSubredditPostListURL().type
== SubredditPostListURL.Type.RANDOM
|| url.asSubredditPostListURL().type
== SubredditPostListURL.Type.SUBREDDIT_COMBINATION)) {
try {
return new SubredditCanonicalId(url.asSubredditPostListURL().subreddit);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,6 @@ public static SubredditPostListURL getPopular() {
return new SubredditPostListURL(Type.POPULAR, null, null, null, null, null);
}

public static SubredditPostListURL getRandom() {
return new SubredditPostListURL(Type.RANDOM, "random", null, null, null, null);
}

public static SubredditPostListURL getRandomNsfw() {
return new SubredditPostListURL(Type.RANDOM, "randnsfw", null, null, null, null);
}

public static SubredditPostListURL getAll() {
return new SubredditPostListURL(Type.ALL, null, null, null, null, null);
}
Expand All @@ -69,7 +61,7 @@ public static RedditURLParser.RedditURL getSubreddit(final SubredditCanonicalId
}

public enum Type {
FRONTPAGE, ALL, SUBREDDIT, SUBREDDIT_COMBINATION, ALL_SUBTRACTION, POPULAR, RANDOM
FRONTPAGE, ALL, SUBREDDIT, SUBREDDIT_COMBINATION, ALL_SUBTRACTION, POPULAR
}

@NonNull public final Type type;
Expand Down Expand Up @@ -136,7 +128,6 @@ public Uri generateJsonUri() {
case SUBREDDIT:
case SUBREDDIT_COMBINATION:
case ALL_SUBTRACTION:
case RANDOM:
builder.encodedPath("/r/");
builder.appendPath(subreddit);
break;
Expand Down Expand Up @@ -293,16 +284,6 @@ public static SubredditPostListURL parse(final Uri uri) {
before,
after);

} else if(subreddit.equals("random") || subreddit.equals("randnsfw")) {

return new SubredditPostListURL(
Type.RANDOM,
subreddit,
order,
limit,
before,
after);

} else if(subreddit.matches("all(\\-[\\w\\.]+)+")) {

if(pathSegments.length == 2) {
Expand Down Expand Up @@ -428,11 +409,6 @@ public String humanReadableName(final Context context, final boolean shorter) {
case POPULAR:
return context.getString(R.string.mainmenu_popular);

case RANDOM:
return context.getString("randnsfw".equals(subreddit)
? R.string.mainmenu_random_nsfw
: R.string.mainmenu_random);

case SUBREDDIT:
try {
return new SubredditCanonicalId(subreddit).toString();
Expand Down
4 changes: 0 additions & 4 deletions src/main/res/values/arrays.xml
Original file line number Diff line number Diff line change
Expand Up @@ -841,8 +841,6 @@
<item>@string/mainmenu_all</item>
<item>@string/find_location</item>
<item>@string/mainmenu_custom_destination</item>
<item>@string/mainmenu_random</item>
<item>@string/mainmenu_random_nsfw</item>
</string-array>

<!-- Constants. Do not change. -->
Expand All @@ -852,8 +850,6 @@
<item>all</item>
<item>subreddit_search</item>
<item>custom</item>
<item>random</item>
<item>random_nsfw</item>
</string-array>

<!-- Constants. Do not change. -->
Expand Down
8 changes: 0 additions & 8 deletions src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1006,11 +1006,6 @@
<!-- 2017-11-01 -->
<string name="disable_replies_to_infobox_failed">Could not turn off replies to inbox</string>

<!-- 2017-12-03 -->
<string name="mainmenu_random">Random Subreddit</string>
<string name="pref_menus_show_random_main_menu_key" translatable="false">pref_menus_show_random_main_menu</string>
<string name="pref_menus_show_random_main_menu_title">Show /r/random in main menu</string>

<!-- 2018-01-16 -->
<string name="lang_fi" translatable="false">Suomi</string>
<string name="lang_my" translatable="false">မြန်မာဘာသာ</string>
Expand Down Expand Up @@ -1072,9 +1067,6 @@
<string name="pref_menus_show_subscribed_subreddits_main_menu_key" translatable="false">pref_menus_show_subscribed_main_menu</string>
<string name="pref_menus_show_subscribed_subreddits_main_menu_title">Show subscribed subreddits</string>

<!-- 2018-11-26 -->
<string name="mainmenu_random_nsfw">Random NSFW Subreddit</string>

<!-- 2019-01-26 -->
<string name="pref_appearance_show_aspect_ratio_indicator_key" translatable="false">pref_appearance_show_aspect_ratio_indicator_key</string>
<string name="pref_appearance_show_aspect_ratio_indicator_title">Show aspect ratio indicator</string>
Expand Down
Loading