diff --git a/app/src/main/java/app/revanced/integrations/patches/ReturnYouTubeDislikePatch.java b/app/src/main/java/app/revanced/integrations/patches/ReturnYouTubeDislikePatch.java index 9a14366ea3..9c8caa455b 100644 --- a/app/src/main/java/app/revanced/integrations/patches/ReturnYouTubeDislikePatch.java +++ b/app/src/main/java/app/revanced/integrations/patches/ReturnYouTubeDislikePatch.java @@ -570,7 +570,7 @@ public static void preloadVideoId(@NonNull String videoId, boolean isShortAndOpe return; } - final boolean videoIdIsShort = VideoInformation.lastVideoIdIsShort(); + final boolean videoIdIsShort = VideoInformation.lastPlayerResponseIsShort(); // Shorts shelf in home and subscription feed causes player response hook to be called, // and the 'is opening/playing' parameter will be false. // This hook will be called again when the Short is actually opened. diff --git a/app/src/main/java/app/revanced/integrations/patches/VideoInformation.java b/app/src/main/java/app/revanced/integrations/patches/VideoInformation.java index a6ba5649cd..5d35b283b5 100644 --- a/app/src/main/java/app/revanced/integrations/patches/VideoInformation.java +++ b/app/src/main/java/app/revanced/integrations/patches/VideoInformation.java @@ -32,6 +32,7 @@ public final class VideoInformation { @NonNull private static volatile String playerResponseVideoId = ""; + private static volatile boolean playerResponseVideoIdIsShort; private static volatile boolean videoIdIsShort; /** @@ -82,6 +83,7 @@ public static boolean playerParametersAreShort(@NonNull String parameters) { */ public static String newPlayerResponseSignature(@NonNull String signature, boolean isShortAndOpeningOrPlaying) { final boolean isShort = playerParametersAreShort(signature); + playerResponseVideoIdIsShort = isShort; if (!isShort || isShortAndOpeningOrPlaying) { if (videoIdIsShort != isShort) { videoIdIsShort = isShort; @@ -206,11 +208,17 @@ public static String getPlayerResponseVideoId() { return playerResponseVideoId; } + /** + * @return If the last player response video id was a Short. + * Includes Shorts shelf items appearing in the feed that are not opened. + * @see #lastVideoIdIsShort() + */ + public static boolean lastPlayerResponseIsShort() { + return playerResponseVideoIdIsShort; + } + /** * @return If the last player response video id _that was opened_ was a Short. - *

- * Note: This value returned may not match the status of {@link #getPlayerResponseVideoId()} - * since that includes player responses for videos not opened. */ public static boolean lastVideoIdIsShort() { return videoIdIsShort;