diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/quality/RememberVideoQualityPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/quality/RememberVideoQualityPatch.java index 706c7c0d1..82e75058b 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/quality/RememberVideoQualityPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/quality/RememberVideoQualityPatch.java @@ -64,10 +64,11 @@ public class RememberVideoQualityPatch { else videoQualityWifi.save(defaultQuality); networkTypeMessage = str("revanced_remember_video_quality_wifi"); } - Utils.showToastShort(str( - useShortsPreference ? "revanced_remember_video_quality_toast_shorts" : "revanced_remember_video_quality_toast", - networkTypeMessage, (defaultQuality + "p") - )); + if (Settings.REMEMBER_VIDEO_QUALITY_LAST_SELECTED_TOAST.get()) + Utils.showToastShort(str( + useShortsPreference ? "revanced_remember_video_quality_toast_shorts" : "revanced_remember_video_quality_toast", + networkTypeMessage, (defaultQuality + "p") + )); } /** diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java index b1502828c..504dc0791 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java @@ -617,9 +617,9 @@ public class CustomPlaybackSpeedPatch { * @return The rounded speed, constrained to the specified bounds. */ private static float roundSpeedToNearestIncrement(float speed) { - // Round to nearest 0.05 speed. - final float roundedSpeed = Math.round(speed / 0.05f) * 0.05f; - return Utils.clamp(roundedSpeed, 0.05f, PLAYBACK_SPEED_MAXIMUM); + // Round to nearest 0.05 speed. Must use double precision otherwise rounding error can occur. + final double roundedSpeed = Math.round(speed / 0.05) * 0.05; + return Utils.clamp((float) roundedSpeed, 0.05f, PLAYBACK_SPEED_MAXIMUM); } /** diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java index 04840c761..414e54dce 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java @@ -57,7 +57,8 @@ public final class RememberPlaybackSpeedPatch { } Settings.PLAYBACK_SPEED_DEFAULT.save(finalPlaybackSpeed); - Utils.showToastShort(str("revanced_remember_playback_speed_toast", (finalPlaybackSpeed + "x"))); + if (Settings.REMEMBER_PLAYBACK_SPEED_LAST_SELECTED_TOAST.get()) + Utils.showToastShort(str("revanced_remember_playback_speed_toast", (finalPlaybackSpeed + "x"))); }, TOAST_DELAY_MILLISECONDS); } } catch (Exception ex) { diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java index d644a582d..af7ad4dbc 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java @@ -52,6 +52,8 @@ public class Settings extends BaseSettings { public static final IntegerSetting VIDEO_QUALITY_DEFAULT_WIFI = new IntegerSetting("revanced_video_quality_default_wifi", -2); public static final IntegerSetting VIDEO_QUALITY_DEFAULT_MOBILE = new IntegerSetting("revanced_video_quality_default_mobile", -2); public static final BooleanSetting REMEMBER_VIDEO_QUALITY_LAST_SELECTED = new BooleanSetting("revanced_remember_video_quality_last_selected", FALSE); + public static final BooleanSetting REMEMBER_VIDEO_QUALITY_LAST_SELECTED_TOAST = new BooleanSetting("revanced_remember_video_quality_last_selected_toast", TRUE, false, + parent(REMEMBER_VIDEO_QUALITY_LAST_SELECTED)); public static final IntegerSetting SHORTS_QUALITY_DEFAULT_WIFI = new IntegerSetting("revanced_shorts_quality_default_wifi", -2, true); public static final IntegerSetting SHORTS_QUALITY_DEFAULT_MOBILE = new IntegerSetting("revanced_shorts_quality_default_mobile", -2, true); public static final BooleanSetting REMEMBER_SHORTS_QUALITY_LAST_SELECTED = new BooleanSetting("revanced_remember_shorts_quality_last_selected", FALSE); @@ -60,6 +62,8 @@ public class Settings extends BaseSettings { // Speed public static final FloatSetting SPEED_TAP_AND_HOLD = new FloatSetting("revanced_speed_tap_and_hold", 2.0f, true); public static final BooleanSetting REMEMBER_PLAYBACK_SPEED_LAST_SELECTED = new BooleanSetting("revanced_remember_playback_speed_last_selected", FALSE); + public static final BooleanSetting REMEMBER_PLAYBACK_SPEED_LAST_SELECTED_TOAST = new BooleanSetting("revanced_remember_playback_speed_last_selected_toast", TRUE, false, + parent(REMEMBER_PLAYBACK_SPEED_LAST_SELECTED)); public static final BooleanSetting CUSTOM_SPEED_MENU = new BooleanSetting("revanced_custom_speed_menu", TRUE); public static final FloatSetting PLAYBACK_SPEED_DEFAULT = new FloatSetting("revanced_playback_speed_default", -2.0f); public static final StringSetting CUSTOM_PLAYBACK_SPEEDS = new StringSetting("revanced_custom_playback_speeds", diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/PlaybackSpeedDialogButton.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/PlaybackSpeedDialogButton.java index a61ed679c..a365222e0 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/PlaybackSpeedDialogButton.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/PlaybackSpeedDialogButton.java @@ -42,7 +42,6 @@ public class PlaybackSpeedDialogButton { : Settings.PLAYBACK_SPEED_DEFAULT.get(); VideoInformation.overridePlaybackSpeed(speed); - showToastShort(str("revanced_custom_playback_speeds_reset_toast", (speed + "x"))); } catch (Exception ex) { Logger.printException(() -> "speed button reset failure", ex); } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt index 2285af71b..79e2fade4 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt @@ -57,7 +57,8 @@ val rememberVideoQualityPatch = bytecodePatch { entriesKey = "revanced_shorts_quality_default_entries", entryValuesKey = "revanced_shorts_quality_default_entry_values" ), - SwitchPreference("revanced_remember_shorts_quality_last_selected") + SwitchPreference("revanced_remember_shorts_quality_last_selected"), + SwitchPreference("revanced_remember_video_quality_last_selected_toast") )) /* diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt index 9b8032a6b..39160955c 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt @@ -39,7 +39,8 @@ internal val rememberPlaybackSpeedPatch = bytecodePatch { entryValuesKey = null, tag = "app.revanced.extension.youtube.settings.preference.CustomVideoSpeedListPreference" ), - SwitchPreference("revanced_remember_playback_speed_last_selected") + SwitchPreference("revanced_remember_playback_speed_last_selected"), + SwitchPreference("revanced_remember_playback_speed_last_selected_toast") ) ) diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index c1e8373b7..2e1cb4b89 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -1465,6 +1465,9 @@ Enabling this can unlock higher video qualities" Remember video quality changes Quality changes apply to all videos Quality changes only apply to the current video + Show toast on video quality changes + A toast is shown when the default video quality is changed + A toast is not shown when the default video quality is changed Default video quality on Wi-Fi network Default video quality on mobile network Remember Shorts quality changes @@ -1491,7 +1494,6 @@ Enabling this can unlock higher video qualities" Custom speeds must be less than %s Invalid custom playback speeds Auto - Playback speed reset to: %s Custom tap and hold speed Playback speed between 0-8 @@ -1499,6 +1501,9 @@ Enabling this can unlock higher video qualities" Remember playback speed changes Playback speed changes apply to all videos Playback speed changes only apply to the current video + Show toast on playback speed changes + A toast is shown when the default playback speed is changed + A toast is not shown when the default playback speed is changed Default playback speed Changed default speed to: %s