fix(YouTube - Open Shorts in regular player): Do not exit app when pressing back button in regular player (#5020)

This commit is contained in:
LisoUseInAIKyrios
2025-05-24 13:12:39 +02:00
committed by GitHub
parent 86e8e61ab2
commit 4ab1f0cfa9
5 changed files with 75 additions and 5 deletions
@@ -31,6 +31,8 @@ public class OpenShortsInRegularPlayerPatch {
private static WeakReference<Activity> mainActivityRef = new WeakReference<>(null);
private static volatile boolean overrideBackPressToExit;
/**
* Injection point.
*/
@@ -38,6 +40,18 @@ public class OpenShortsInRegularPlayerPatch {
mainActivityRef = new WeakReference<>(activity);
}
/**
* Injection point.
*/
public static boolean overrideBackPressToExit(boolean original) {
if (overrideBackPressToExit) {
Logger.printDebug(() -> "Overriding back press to exit activity");
return false;
}
return original;
}
/**
* Injection point.
*/
@@ -45,6 +59,7 @@ public class OpenShortsInRegularPlayerPatch {
try {
ShortsPlayerType type = Settings.SHORTS_PLAYER_TYPE.get();
if (type == ShortsPlayerType.SHORTS_PLAYER) {
overrideBackPressToExit = false;
return false; // Default unpatched behavior.
}
@@ -61,13 +76,17 @@ public class OpenShortsInRegularPlayerPatch {
// set to open in the regular player, so it's ignored as
// checking the map makes the patch more complicated.
Logger.printDebug(() -> "Ignoring Short with no videoId");
overrideBackPressToExit = false;
return false;
}
if (NavigationButton.getSelectedNavigationButton() == NavigationButton.SHORTS) {
overrideBackPressToExit = false;
return false; // Always use Shorts player for the Shorts nav button.
}
overrideBackPressToExit = true;
final boolean forceFullScreen = (type == ShortsPlayerType.REGULAR_PLAYER_FULLSCREEN);
OpenVideosFullscreenHookPatch.setOpenNextVideoFullscreen(forceFullScreen);
@@ -33,7 +33,7 @@ public class OpenVideosFullscreenHookPatch {
}
if (!isFullScreenPatchIncluded()) {
return false;
return original;
}
return Settings.OPEN_VIDEOS_FULLSCREEN_PORTRAIT.get();