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 f8fa0890b..a8ff7ec8c 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 @@ -30,8 +30,8 @@ public class ShortsRepeatStatePatch { END_SCREEN; static void setYTEnumValue(Enum ytBehavior) { - String ytName = ytBehavior.name(); for (ShortsLoopBehavior rvBehavior : values()) { + String ytName = ytBehavior.name(); if (ytName.endsWith(rvBehavior.name())) { if (rvBehavior.ytEnumValue != null) { Logger.printException(() -> "Conflicting behavior names: " + rvBehavior @@ -87,22 +87,19 @@ public class ShortsRepeatStatePatch { @Nullable public static Enum changeShortsRepeatBehavior(@Nullable Enum original) { try { - if (original == null) { - Logger.printDebug(() -> "Original is null, returning null"); - return null; - } - ShortsLoopBehavior behavior = ExtendedUtils.IS_19_34_OR_GREATER && isAppInBackgroundPiPMode() ? Settings.CHANGE_SHORTS_BACKGROUND_REPEAT_STATE.get() : Settings.CHANGE_SHORTS_REPEAT_STATE.get(); Enum overrideBehavior = behavior.ytEnumValue; - if (overrideBehavior != null) { - Logger.printDebug(() -> overrideBehavior == original - ? "Behavior setting is same as original. Using original: " + original.name() - : "Changing Shorts repeat behavior from: " + original.name() + " to: " + overrideBehavior.name() - ); + if (behavior != ShortsLoopBehavior.UNKNOWN && overrideBehavior != null) { + Logger.printDebug(() -> { + String name = original == null ? "unknown (null)" : original.name(); + return overrideBehavior == original + ? "Behavior setting is same as original. Using original: " + name + : "Changing Shorts repeat behavior from: " + name + " to: " + overrideBehavior.name(); + }); return overrideBehavior; } @@ -117,6 +114,6 @@ public class ShortsRepeatStatePatch { * Injection point. */ public static boolean isAutoPlay(@Nullable Enum original) { - return original != null && ShortsLoopBehavior.SINGLE_PLAY.ytEnumValue == original; + return ShortsLoopBehavior.SINGLE_PLAY.ytEnumValue == original; } } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/shorts/components/ShortsComponentPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/shorts/components/ShortsComponentPatch.kt index cc33f254b..acc000d0d 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/shorts/components/ShortsComponentPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/shorts/components/ShortsComponentPatch.kt @@ -486,7 +486,6 @@ private val shortsRepeatPatch = bytecodePatch( // As of YouTube 20.09, Google has removed the code for 'Autoplay' and 'Pause' from this method. // Manually add the 'Autoplay' code that Google removed. // Tested on YouTube 20.10. - // TODO: add the 'Pause' code that Google removed. if (is_20_09_or_greater) { val (directReference, virtualReference) = with (reelPlaybackFingerprint.methodOrThrow(videoIdFingerprintShorts)) { val directIndex = indexOfInitializationInstruction(this) @@ -537,17 +536,6 @@ private val shortsRepeatPatch = bytecodePatch( """ ) } - } else { - getContext().apply { - addEntryValues( - "revanced_change_shorts_repeat_state_entries", - "@string/revanced_change_shorts_repeat_state_entry_pause", - ) - addEntryValues( - "revanced_change_shorts_repeat_state_entry_values", - "END_SCREEN", - ) - } } if (is_19_34_or_greater) { diff --git a/patches/src/main/resources/youtube/settings/host/values/arrays.xml b/patches/src/main/resources/youtube/settings/host/values/arrays.xml index f4da38b69..366f7c424 100644 --- a/patches/src/main/resources/youtube/settings/host/values/arrays.xml +++ b/patches/src/main/resources/youtube/settings/host/values/arrays.xml @@ -98,11 +98,13 @@ @string/revanced_change_shorts_repeat_state_entry_default @string/revanced_change_shorts_repeat_state_entry_repeat @string/revanced_change_shorts_repeat_state_entry_auto_play + @string/revanced_change_shorts_repeat_state_entry_pause UNKNOWN REPEAT SINGLE_PLAY + END_SCREEN @string/quality_auto