mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2026-01-21 18:03:56 +00:00
feat(YouTube): Add Pause on audio interrupt patch (#6464)
Co-authored-by: bengross <bengross@vecta.com> Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
package app.revanced.extension.youtube.patches;
|
||||
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class PauseOnAudioInterruptPatch {
|
||||
|
||||
private static final int AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK = -3;
|
||||
private static final int AUDIOFOCUS_LOSS_TRANSIENT = -2;
|
||||
|
||||
/**
|
||||
* Injection point for AudioFocusRequest builder.
|
||||
* Returns true if audio ducking should be disabled (willPauseWhenDucked = true).
|
||||
*/
|
||||
public static boolean shouldPauseOnAudioInterrupt() {
|
||||
return Settings.PAUSE_ON_AUDIO_INTERRUPT.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Injection point for onAudioFocusChange callback.
|
||||
* Converts AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK to AUDIOFOCUS_LOSS_TRANSIENT
|
||||
* when the setting is enabled, causing YouTube to pause instead of ducking.
|
||||
*/
|
||||
public static int overrideAudioFocusChange(int focusChange) {
|
||||
if (Settings.PAUSE_ON_AUDIO_INTERRUPT.get() && focusChange == AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) {
|
||||
return AUDIOFOCUS_LOSS_TRANSIENT;
|
||||
}
|
||||
return focusChange;
|
||||
}
|
||||
}
|
||||
@@ -356,6 +356,7 @@ public class Settings extends BaseSettings {
|
||||
public static final IntegerSetting ANNOUNCEMENT_LAST_ID = new IntegerSetting("revanced_announcement_last_id", -1, false, false);
|
||||
public static final BooleanSetting LOOP_VIDEO = new BooleanSetting("revanced_loop_video", FALSE);
|
||||
public static final BooleanSetting LOOP_VIDEO_BUTTON = new BooleanSetting("revanced_loop_video_button", FALSE);
|
||||
public static final BooleanSetting PAUSE_ON_AUDIO_INTERRUPT = new BooleanSetting("revanced_pause_on_audio_interrupt", FALSE, true);
|
||||
public static final BooleanSetting BYPASS_URL_REDIRECTS = new BooleanSetting("revanced_bypass_url_redirects", TRUE);
|
||||
public static final BooleanSetting DISABLE_HAPTIC_FEEDBACK_CHAPTERS = new BooleanSetting("revanced_disable_haptic_feedback_chapters", FALSE);
|
||||
public static final BooleanSetting DISABLE_HAPTIC_FEEDBACK_PRECISE_SEEKING = new BooleanSetting("revanced_disable_haptic_feedback_precise_seeking", FALSE);
|
||||
|
||||
Reference in New Issue
Block a user