feat(YouTube/Hide player flyout menu): add Hide picture-in-picture menu settings

This commit is contained in:
inotia00 2024-04-25 23:00:48 +09:00
parent 57c94dc39c
commit 4774bd10e8
5 changed files with 34 additions and 2 deletions

View File

@ -4,6 +4,7 @@ import app.revanced.patcher.data.BytecodeContext
import app.revanced.patches.shared.litho.LithoFilterPatch
import app.revanced.patches.youtube.player.flyoutmenu.hide.fingerprints.AdvancedQualityBottomSheetFingerprint
import app.revanced.patches.youtube.player.flyoutmenu.hide.fingerprints.CaptionsBottomSheetFingerprint
import app.revanced.patches.youtube.player.flyoutmenu.hide.fingerprints.PiPModeConfigFingerprint
import app.revanced.patches.youtube.utils.fingerprints.QualityMenuViewInflateFingerprint
import app.revanced.patches.youtube.utils.integrations.Constants.COMPATIBLE_PACKAGE
import app.revanced.patches.youtube.utils.integrations.Constants.COMPONENTS_PATH
@ -12,6 +13,7 @@ import app.revanced.patches.youtube.utils.playertype.PlayerTypeHookPatch
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.BottomSheetFooterText
import app.revanced.patches.youtube.utils.settings.SettingsPatch
import app.revanced.util.literalInstructionBooleanHook
import app.revanced.util.literalInstructionViewHook
import app.revanced.util.patch.BaseBytecodePatch
@ -29,6 +31,7 @@ object PlayerFlyoutMenuPatch : BaseBytecodePatch(
fingerprints = setOf(
AdvancedQualityBottomSheetFingerprint,
CaptionsBottomSheetFingerprint,
PiPModeConfigFingerprint,
QualityMenuViewInflateFingerprint
)
) {
@ -36,6 +39,7 @@ object PlayerFlyoutMenuPatch : BaseBytecodePatch(
"$COMPONENTS_PATH/PlayerFlyoutMenuFilter;"
override fun execute(context: BytecodeContext) {
arrayOf(
AdvancedQualityBottomSheetFingerprint to "hideFooterQuality",
CaptionsBottomSheetFingerprint to "hideFooterCaptions",
@ -58,5 +62,17 @@ object PlayerFlyoutMenuPatch : BaseBytecodePatch(
)
SettingsPatch.updatePatchStatus(this)
if (SettingsPatch.upward1839) {
PiPModeConfigFingerprint.literalInstructionBooleanHook(
45427407,
"$PLAYER_CLASS_DESCRIPTOR->hidePiPModeMenu(Z)Z"
)
SettingsPatch.addPreference(
arrayOf(
"SETTINGS: HIDE_PIP_MODE_MENU"
)
)
}
}
}

View File

@ -0,0 +1,10 @@
package app.revanced.patches.youtube.player.flyoutmenu.hide.fingerprints
import app.revanced.util.fingerprint.LiteralValueFingerprint
/**
* This fingerprint is compatible with YouTube v18.39.xx+
*/
internal object PiPModeConfigFingerprint : LiteralValueFingerprint(
literalSupplier = { 45427407 }
)

View File

@ -4,7 +4,7 @@ import app.revanced.util.fingerprint.ReferenceFingerprint
import com.android.tools.smali.dexlib2.Opcode
/**
* Compatible with YouTube v18.30.xx to v18.49.xx
* This fingerprint is compatible with YouTube v18.30.xx+
*/
internal object RollingNumberMeasureAnimatedTextFingerprint : ReferenceFingerprint(
opcodes = listOf(

View File

@ -565,6 +565,9 @@ Instead, use the 'Settings → Autoplay → Autoplay next video' setting."</stri
<string name="revanced_hide_player_flyout_menu_loop_video_title">Hide loop video menu</string>
<string name="revanced_hide_player_flyout_menu_loop_video_summary_on">Loop video menu is hidden.</string>
<string name="revanced_hide_player_flyout_menu_loop_video_summary_off">Loop video menu is shown.</string>
<string name="revanced_hide_player_flyout_menu_pip_title">Hide picture-in-picture menu</string>
<string name="revanced_hide_player_flyout_menu_pip_summary_on">Picture-in-picture menu is hidden.</string>
<string name="revanced_hide_player_flyout_menu_pip_summary_off">Picture-in-picture menu is shown.</string>
<string name="revanced_hide_player_flyout_menu_premium_controls_title">Hide premium controls menu</string>
<string name="revanced_hide_player_flyout_menu_premium_controls_summary_on">Premium controls menu is hidden.</string>
<string name="revanced_hide_player_flyout_menu_premium_controls_summary_off">Premium controls menu is shown.</string>

View File

@ -236,7 +236,10 @@
<SwitchPreference android:title="@string/revanced_hide_player_flyout_menu_ambient_mode_title" android:key="revanced_hide_player_flyout_menu_ambient_mode" android:defaultValue="false" android:summaryOn="@string/revanced_hide_player_flyout_menu_ambient_mode_summary_on" android:summaryOff="@string/revanced_hide_player_flyout_menu_ambient_mode_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_player_flyout_menu_help_title" android:key="revanced_hide_player_flyout_menu_help" android:defaultValue="true" android:summaryOn="@string/revanced_hide_player_flyout_menu_help_summary_on" android:summaryOff="@string/revanced_hide_player_flyout_menu_help_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_player_flyout_menu_listen_with_youtube_music_title" android:key="revanced_hide_player_flyout_menu_listen_with_youtube_music" android:defaultValue="true" android:summaryOn="@string/revanced_hide_player_flyout_menu_listen_with_youtube_music_summary_on" android:summaryOff="@string/revanced_hide_player_flyout_menu_listen_with_youtube_music_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_player_flyout_menu_loop_video_title" android:key="revanced_hide_player_flyout_menu_loop_video" android:defaultValue="false" android:summaryOn="@string/revanced_hide_player_flyout_menu_loop_video_summary_on" android:summaryOff="@string/revanced_hide_player_flyout_menu_loop_video_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_player_flyout_menu_loop_video_title" android:key="revanced_hide_player_flyout_menu_loop_video" android:defaultValue="false" android:summaryOn="@string/revanced_hide_player_flyout_menu_loop_video_summary_on" android:summaryOff="@string/revanced_hide_player_flyout_menu_loop_video_summary_off" />SETTINGS: HIDE_PLAYER_FLYOUT_MENU -->
<!-- SETTINGS: HIDE_PIP_MODE_MENU
<SwitchPreference android:title="@string/revanced_hide_player_flyout_menu_pip_title" android:key="revanced_hide_player_flyout_menu_pip" android:defaultValue="true" android:summaryOn="@string/revanced_hide_player_flyout_menu_pip_summary_on" android:summaryOff="@string/revanced_hide_player_flyout_menu_pip_summary_off" />SETTINGS: HIDE_PIP_MODE_MENU -->
<!-- SETTINGS: HIDE_PLAYER_FLYOUT_MENU
<SwitchPreference android:title="@string/revanced_hide_player_flyout_menu_premium_controls_title" android:key="revanced_hide_player_flyout_menu_premium_controls" android:defaultValue="true" android:summaryOn="@string/revanced_hide_player_flyout_menu_premium_controls_summary_on" android:summaryOff="@string/revanced_hide_player_flyout_menu_premium_controls_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_player_flyout_menu_stable_volume_title" android:key="revanced_hide_player_flyout_menu_stable_volume" android:defaultValue="false" android:summaryOn="@string/revanced_hide_player_flyout_menu_stable_volume_summary_on" android:summaryOff="@string/revanced_hide_player_flyout_menu_stable_volume_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_player_flyout_menu_stats_for_nerds_title" android:key="revanced_hide_player_flyout_menu_stats_for_nerds" android:defaultValue="true" android:summaryOn="@string/revanced_hide_player_flyout_menu_stats_for_nerds_summary_on" android:summaryOff="@string/revanced_hide_player_flyout_menu_stats_for_nerds_summary_off" />