From 4c080ecb1e7cf906e6789e5c99907170939606e0 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Sun, 14 Jul 2024 14:32:27 +0900 Subject: [PATCH] fix(YouTube - Video playback): Default video quality does not apply --- .../patches/video/VideoQualityPatch.java | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/app/revanced/integrations/youtube/patches/video/VideoQualityPatch.java b/app/src/main/java/app/revanced/integrations/youtube/patches/video/VideoQualityPatch.java index 41b761002d..a80bb0a16a 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/patches/video/VideoQualityPatch.java +++ b/app/src/main/java/app/revanced/integrations/youtube/patches/video/VideoQualityPatch.java @@ -19,6 +19,13 @@ public class VideoQualityPatch { @NonNull public static String videoId = ""; + /** + * Injection point. + */ + public static void newVideoStarted(Object ignoredPlayerController) { + setVideoQuality(0); + } + /** * Injection point. */ @@ -29,8 +36,21 @@ public static void newVideoStarted(@NonNull String newlyLoadedChannelId, @NonNul return; if (videoId.equals(newlyLoadedVideoId)) return; - Utils.runOnMainThreadDelayed(() -> videoId = newlyLoadedVideoId, 5000); + videoId = newlyLoadedVideoId; + setVideoQuality(Settings.SKIP_PRELOADED_BUFFER.get() ? 250 : 500); + } + + /** + * Injection point. + */ + public static void userSelectedVideoQuality() { + Utils.runOnMainThreadDelayed(() -> + userSelectedVideoQuality(VideoInformation.getVideoQuality()), + 300 + ); + } + private static void setVideoQuality(final long delayMillis) { final int defaultQuality = Utils.getNetworkType() == Utils.NetworkType.MOBILE ? mobileQualitySetting.get() : wifiQualitySetting.get(); @@ -38,13 +58,6 @@ public static void newVideoStarted(@NonNull String newlyLoadedChannelId, @NonNul if (defaultQuality == DEFAULT_YOUTUBE_VIDEO_QUALITY) return; - long delayMillis; - if (Settings.SKIP_PRELOADED_BUFFER.get()) { - delayMillis = 250; - } else { - delayMillis = 500; - } - Utils.runOnMainThreadDelayed(() -> VideoInformation.overrideVideoQuality( VideoInformation.getAvailableVideoQuality(defaultQuality) @@ -53,16 +66,6 @@ public static void newVideoStarted(@NonNull String newlyLoadedChannelId, @NonNul ); } - /** - * Injection point. - */ - public static void userSelectedVideoQuality() { - Utils.runOnMainThreadDelayed(() -> - userSelectedVideoQuality(VideoInformation.getVideoQuality()), - 300 - ); - } - private static void userSelectedVideoQuality(final int defaultQuality) { if (!Settings.REMEMBER_VIDEO_QUALITY_LAST_SELECTED.get()) return;