Skip to content
This repository was archived by the owner on Dec 8, 2024. It is now read-only.

Commit 824d96a

Browse files
committed
feat(YouTube/Change start page): add Change start page type setting inotia00/ReVanced_Extended#2395 (comment)
1 parent a155950 commit 824d96a

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

app/src/main/java/app/revanced/integrations/youtube/patches/general/ChangeStartPagePatch.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.apache.commons.lang3.BooleanUtils;
1212
import org.apache.commons.lang3.StringUtils;
1313

14+
import app.revanced.integrations.shared.settings.Setting;
1415
import app.revanced.integrations.shared.utils.Logger;
1516
import app.revanced.integrations.youtube.settings.Settings;
1617

@@ -86,6 +87,7 @@ private boolean isIntentAction() {
8687
private static final String ACTION_MAIN = "android.intent.action.MAIN";
8788

8889
private static final StartPage START_PAGE = Settings.CHANGE_START_PAGE.get();
90+
private static final boolean ALWAYS_CHANGE_START_PAGE = Settings.CHANGE_START_PAGE_TYPE.get();
8991

9092
/**
9193
* There is an issue where the back button on the toolbar doesn't work properly.
@@ -97,7 +99,7 @@ public static String overrideBrowseId(@NonNull String original) {
9799
if (!START_PAGE.isBrowseId()) {
98100
return original;
99101
}
100-
if (appLaunched) {
102+
if (!ALWAYS_CHANGE_START_PAGE && appLaunched) {
101103
Logger.printDebug(() -> "Ignore override browseId as the app already launched");
102104
return original;
103105
}
@@ -117,14 +119,16 @@ public static void overrideIntentAction(@NonNull Intent intent) {
117119
" as the current activity is not the entry point of the application");
118120
return;
119121
}
120-
if (appLaunched) {
121-
Logger.printDebug(() -> "Ignore override intent action as the app already launched");
122-
return;
123-
}
124-
appLaunched = true;
125122

126123
final String intentAction = START_PAGE.id;
127124
Logger.printDebug(() -> "Changing intent action to " + intentAction);
128125
intent.setAction(intentAction);
129126
}
127+
128+
public static final class ChangeStartPageTypeAvailability implements Setting.Availability {
129+
@Override
130+
public boolean isAvailable() {
131+
return Settings.CHANGE_START_PAGE.get() != StartPage.ORIGINAL;
132+
}
133+
}
130134
}

app/src/main/java/app/revanced/integrations/youtube/settings/Settings.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import app.revanced.integrations.youtube.patches.alternativethumbnails.AlternativeThumbnailsPatch.StillImagesAvailability;
3232
import app.revanced.integrations.youtube.patches.alternativethumbnails.AlternativeThumbnailsPatch.ThumbnailOption;
3333
import app.revanced.integrations.youtube.patches.alternativethumbnails.AlternativeThumbnailsPatch.ThumbnailStillTime;
34+
import app.revanced.integrations.youtube.patches.general.ChangeStartPagePatch;
3435
import app.revanced.integrations.youtube.patches.general.ChangeStartPagePatch.StartPage;
3536
import app.revanced.integrations.youtube.patches.general.YouTubeMusicActionsPatch;
3637
import app.revanced.integrations.youtube.patches.misc.SpoofStreamingDataPatch;
@@ -133,6 +134,8 @@ public class Settings extends BaseSettings {
133134

134135
// PreferenceScreen: General
135136
public static final EnumSetting<StartPage> CHANGE_START_PAGE = new EnumSetting<>("revanced_change_start_page", StartPage.ORIGINAL, true);
137+
public static final BooleanSetting CHANGE_START_PAGE_TYPE = new BooleanSetting("revanced_change_start_page_type", FALSE, true,
138+
new ChangeStartPagePatch.ChangeStartPageTypeAvailability());
136139
public static final BooleanSetting DISABLE_AUTO_AUDIO_TRACKS = new BooleanSetting("revanced_disable_auto_audio_tracks", FALSE);
137140
public static final BooleanSetting DISABLE_SPLASH_ANIMATION = new BooleanSetting("revanced_disable_splash_animation", FALSE, true);
138141
public static final BooleanSetting ENABLE_GRADIENT_LOADING_SCREEN = new BooleanSetting("revanced_enable_gradient_loading_screen", FALSE, true);

0 commit comments

Comments
 (0)