diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/shorts/ShortsRepeatStatePatch.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/shorts/ShortsRepeatStatePatch.java index a8ff7ec8c..6e73485b7 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/shorts/ShortsRepeatStatePatch.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/shorts/ShortsRepeatStatePatch.java @@ -101,7 +101,10 @@ public class ShortsRepeatStatePatch { : "Changing Shorts repeat behavior from: " + name + " to: " + overrideBehavior.name(); }); - return overrideBehavior; + // For some reason, in YouTube 20.09+, 'UNKNOWN' functions as 'Pause'. + return ExtendedUtils.IS_20_09_OR_GREATER && behavior == ShortsLoopBehavior.END_SCREEN + ? ShortsLoopBehavior.UNKNOWN.ytEnumValue + : overrideBehavior; } } catch (Exception ex) { Logger.printException(() -> "changeShortsRepeatBehavior failure", ex); diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/utils/ExtendedUtils.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/utils/ExtendedUtils.java index 7713f1084..51cc78e31 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/utils/ExtendedUtils.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/utils/ExtendedUtils.java @@ -39,6 +39,7 @@ public class ExtendedUtils extends PackageUtils { public static final boolean IS_19_28_OR_GREATER = getAppVersionName().compareTo("19.28.00") >= 0; public static final boolean IS_19_29_OR_GREATER = getAppVersionName().compareTo("19.29.00") >= 0; public static final boolean IS_19_34_OR_GREATER = getAppVersionName().compareTo("19.34.00") >= 0; + public static final boolean IS_20_09_OR_GREATER = getAppVersionName().compareTo("20.09.00") >= 0; public static int validateValue(IntegerSetting settings, int min, int max, String message) { int value = settings.get();