From a764e3aea313e154185e04094050bedbd115d695 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Wed, 26 Mar 2025 15:05:39 +0900 Subject: [PATCH] fix(YouTube - Shorts components): `Pause` option of `Change Shorts repeat state` not working (20.09+) --- .../youtube/patches/shorts/ShortsRepeatStatePatch.java | 5 ++++- .../app/revanced/extension/youtube/utils/ExtendedUtils.java | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) 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();