Skip to content

Commit c68cde3

Browse files
authored
feat(YouTube): Add an option to disable toasts when changing default playback speed or quality (#5230)
1 parent 1f539b1 commit c68cde3

File tree

8 files changed

+24
-12
lines changed

8 files changed

+24
-12
lines changed

extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/quality/RememberVideoQualityPatch.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,11 @@ private static void changeDefaultQuality(int defaultQuality) {
6464
else videoQualityWifi.save(defaultQuality);
6565
networkTypeMessage = str("revanced_remember_video_quality_wifi");
6666
}
67-
Utils.showToastShort(str(
68-
useShortsPreference ? "revanced_remember_video_quality_toast_shorts" : "revanced_remember_video_quality_toast",
69-
networkTypeMessage, (defaultQuality + "p")
70-
));
67+
if (Settings.REMEMBER_VIDEO_QUALITY_LAST_SELECTED_TOAST.get())
68+
Utils.showToastShort(str(
69+
useShortsPreference ? "revanced_remember_video_quality_toast_shorts" : "revanced_remember_video_quality_toast",
70+
networkTypeMessage, (defaultQuality + "p")
71+
));
7172
}
7273

7374
/**

extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -617,9 +617,9 @@ private static int speedToProgressValue(float speed) {
617617
* @return The rounded speed, constrained to the specified bounds.
618618
*/
619619
private static float roundSpeedToNearestIncrement(float speed) {
620-
// Round to nearest 0.05 speed.
621-
final float roundedSpeed = Math.round(speed / 0.05f) * 0.05f;
622-
return Utils.clamp(roundedSpeed, 0.05f, PLAYBACK_SPEED_MAXIMUM);
620+
// Round to nearest 0.05 speed. Must use double precision otherwise rounding error can occur.
621+
final double roundedSpeed = Math.round(speed / 0.05) * 0.05;
622+
return Utils.clamp((float) roundedSpeed, 0.05f, PLAYBACK_SPEED_MAXIMUM);
623623
}
624624

625625
/**

extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ public static void userSelectedPlaybackSpeed(float playbackSpeed) {
5757
}
5858
Settings.PLAYBACK_SPEED_DEFAULT.save(finalPlaybackSpeed);
5959

60-
Utils.showToastShort(str("revanced_remember_playback_speed_toast", (finalPlaybackSpeed + "x")));
60+
if (Settings.REMEMBER_PLAYBACK_SPEED_LAST_SELECTED_TOAST.get())
61+
Utils.showToastShort(str("revanced_remember_playback_speed_toast", (finalPlaybackSpeed + "x")));
6162
}, TOAST_DELAY_MILLISECONDS);
6263
}
6364
} catch (Exception ex) {

extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ public class Settings extends BaseSettings {
5252
public static final IntegerSetting VIDEO_QUALITY_DEFAULT_WIFI = new IntegerSetting("revanced_video_quality_default_wifi", -2);
5353
public static final IntegerSetting VIDEO_QUALITY_DEFAULT_MOBILE = new IntegerSetting("revanced_video_quality_default_mobile", -2);
5454
public static final BooleanSetting REMEMBER_VIDEO_QUALITY_LAST_SELECTED = new BooleanSetting("revanced_remember_video_quality_last_selected", FALSE);
55+
public static final BooleanSetting REMEMBER_VIDEO_QUALITY_LAST_SELECTED_TOAST = new BooleanSetting("revanced_remember_video_quality_last_selected_toast", TRUE, false,
56+
parent(REMEMBER_VIDEO_QUALITY_LAST_SELECTED));
5557
public static final IntegerSetting SHORTS_QUALITY_DEFAULT_WIFI = new IntegerSetting("revanced_shorts_quality_default_wifi", -2, true);
5658
public static final IntegerSetting SHORTS_QUALITY_DEFAULT_MOBILE = new IntegerSetting("revanced_shorts_quality_default_mobile", -2, true);
5759
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 {
6062
// Speed
6163
public static final FloatSetting SPEED_TAP_AND_HOLD = new FloatSetting("revanced_speed_tap_and_hold", 2.0f, true);
6264
public static final BooleanSetting REMEMBER_PLAYBACK_SPEED_LAST_SELECTED = new BooleanSetting("revanced_remember_playback_speed_last_selected", FALSE);
65+
public static final BooleanSetting REMEMBER_PLAYBACK_SPEED_LAST_SELECTED_TOAST = new BooleanSetting("revanced_remember_playback_speed_last_selected_toast", TRUE, false,
66+
parent(REMEMBER_PLAYBACK_SPEED_LAST_SELECTED));
6367
public static final BooleanSetting CUSTOM_SPEED_MENU = new BooleanSetting("revanced_custom_speed_menu", TRUE);
6468
public static final FloatSetting PLAYBACK_SPEED_DEFAULT = new FloatSetting("revanced_playback_speed_default", -2.0f);
6569
public static final StringSetting CUSTOM_PLAYBACK_SPEEDS = new StringSetting("revanced_custom_playback_speeds",

extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/PlaybackSpeedDialogButton.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ public static void initializeButton(View controlsView) {
4242
: Settings.PLAYBACK_SPEED_DEFAULT.get();
4343

4444
VideoInformation.overridePlaybackSpeed(speed);
45-
showToastShort(str("revanced_custom_playback_speeds_reset_toast", (speed + "x")));
4645
} catch (Exception ex) {
4746
Logger.printException(() -> "speed button reset failure", ex);
4847
}

patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ val rememberVideoQualityPatch = bytecodePatch {
5757
entriesKey = "revanced_shorts_quality_default_entries",
5858
entryValuesKey = "revanced_shorts_quality_default_entry_values"
5959
),
60-
SwitchPreference("revanced_remember_shorts_quality_last_selected")
60+
SwitchPreference("revanced_remember_shorts_quality_last_selected"),
61+
SwitchPreference("revanced_remember_video_quality_last_selected_toast")
6162
))
6263

6364
/*

patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ internal val rememberPlaybackSpeedPatch = bytecodePatch {
3939
entryValuesKey = null,
4040
tag = "app.revanced.extension.youtube.settings.preference.CustomVideoSpeedListPreference"
4141
),
42-
SwitchPreference("revanced_remember_playback_speed_last_selected")
42+
SwitchPreference("revanced_remember_playback_speed_last_selected"),
43+
SwitchPreference("revanced_remember_playback_speed_last_selected_toast")
4344
)
4445
)
4546

patches/src/main/resources/addresources/values/strings.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1465,6 +1465,9 @@ Enabling this can unlock higher video qualities"</string>
14651465
<string name="revanced_remember_video_quality_last_selected_title">Remember video quality changes</string>
14661466
<string name="revanced_remember_video_quality_last_selected_summary_on">Quality changes apply to all videos</string>
14671467
<string name="revanced_remember_video_quality_last_selected_summary_off">Quality changes only apply to the current video</string>
1468+
<string name="revanced_remember_video_quality_last_selected_toast_title">Show toast on video quality changes</string>
1469+
<string name="revanced_remember_video_quality_last_selected_toast_summary_on">A toast is shown when the default video quality is changed</string>
1470+
<string name="revanced_remember_video_quality_last_selected_toast_summary_off">A toast is not shown when the default video quality is changed</string>
14681471
<string name="revanced_video_quality_default_wifi_title">Default video quality on Wi-Fi network</string>
14691472
<string name="revanced_video_quality_default_mobile_title">Default video quality on mobile network</string>
14701473
<string name="revanced_remember_shorts_quality_last_selected_title">Remember Shorts quality changes</string>
@@ -1491,14 +1494,16 @@ Enabling this can unlock higher video qualities"</string>
14911494
<string name="revanced_custom_playback_speeds_invalid">Custom speeds must be less than %s</string>
14921495
<string name="revanced_custom_playback_speeds_parse_exception">Invalid custom playback speeds</string>
14931496
<string name="revanced_custom_playback_speeds_auto">Auto</string>
1494-
<string name="revanced_custom_playback_speeds_reset_toast">Playback speed reset to: %s</string>
14951497
<string name="revanced_speed_tap_and_hold_title">Custom tap and hold speed</string>
14961498
<string name="revanced_speed_tap_and_hold_summary">Playback speed between 0-8</string>
14971499
</patch>
14981500
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
14991501
<string name="revanced_remember_playback_speed_last_selected_title">Remember playback speed changes</string>
15001502
<string name="revanced_remember_playback_speed_last_selected_summary_on">Playback speed changes apply to all videos</string>
15011503
<string name="revanced_remember_playback_speed_last_selected_summary_off">Playback speed changes only apply to the current video</string>
1504+
<string name="revanced_remember_playback_speed_last_selected_toast_title">Show toast on playback speed changes</string>
1505+
<string name="revanced_remember_playback_speed_last_selected_toast_summary_on">A toast is shown when the default playback speed is changed</string>
1506+
<string name="revanced_remember_playback_speed_last_selected_toast_summary_off">A toast is not shown when the default playback speed is changed</string>
15021507
<string name="revanced_playback_speed_default_title">Default playback speed</string>
15031508
<string name="revanced_remember_playback_speed_toast">Changed default speed to: %s</string>
15041509
</patch>

0 commit comments

Comments
 (0)