mirror of
https://github.com/revanced/revanced-patches
synced 2024-12-02 21:03:01 +01:00
feat(YouTube): add Player Flyout Menu
patch (#2295)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de> Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
This commit is contained in:
parent
74fd7b6265
commit
aea0af0597
@ -1,8 +1,8 @@
|
||||
package app.revanced.patches.youtube.layout.hide.watchinvr.annotations
|
||||
package app.revanced.patches.youtube.layout.hide.player.flyoutmenupanel.annotations
|
||||
|
||||
import app.revanced.patcher.annotation.Compatibility
|
||||
import app.revanced.patcher.annotation.Package
|
||||
|
||||
@Compatibility([Package("com.google.android.youtube", arrayOf("18.16.37", "18.19.35", "18.20.39", "18.23.35"))])
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
internal annotation class WatchInVRCompatibility
|
||||
internal annotation class HidePlayerFlyoutMenuItemsCompatibility
|
@ -0,0 +1,108 @@
|
||||
package app.revanced.patches.youtube.layout.hide.player.flyoutmenupanel.patch
|
||||
|
||||
import app.revanced.patcher.annotation.Description
|
||||
import app.revanced.patcher.annotation.Name
|
||||
import app.revanced.patcher.annotation.Version
|
||||
import app.revanced.patcher.data.ResourceContext
|
||||
import app.revanced.patcher.patch.PatchResult
|
||||
import app.revanced.patcher.patch.PatchResultSuccess
|
||||
import app.revanced.patcher.patch.ResourcePatch
|
||||
import app.revanced.patcher.patch.annotations.DependsOn
|
||||
import app.revanced.patcher.patch.annotations.Patch
|
||||
import app.revanced.patches.shared.settings.preference.impl.PreferenceScreen
|
||||
import app.revanced.patches.shared.settings.preference.impl.StringResource
|
||||
import app.revanced.patches.shared.settings.preference.impl.SwitchPreference
|
||||
import app.revanced.patches.youtube.layout.hide.player.flyoutmenupanel.annotations.HidePlayerFlyoutMenuItemsCompatibility
|
||||
import app.revanced.patches.youtube.misc.litho.filter.patch.LithoFilterPatch
|
||||
import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch
|
||||
|
||||
@Patch
|
||||
@Name("Player flyout menu")
|
||||
@Description("Hides player flyout menu items.")
|
||||
@DependsOn([LithoFilterPatch::class, SettingsPatch::class])
|
||||
@HidePlayerFlyoutMenuItemsCompatibility
|
||||
@Version("0.0.1")
|
||||
class HidePlayerFlyoutMenuPatch : ResourcePatch {
|
||||
override fun execute(context: ResourceContext): PatchResult {
|
||||
SettingsPatch.PreferenceScreen.LAYOUT.addPreferences(
|
||||
PreferenceScreen(
|
||||
KEY,
|
||||
StringResource("${KEY}_title", "Player flyout menu items"),
|
||||
listOf(
|
||||
SwitchPreference(
|
||||
"${KEY}_quality",
|
||||
StringResource("${KEY}_quality_title", "Hide Quality menu"),
|
||||
StringResource("${KEY}_quality_on", "Quality menu item is hidden"),
|
||||
StringResource("${KEY}_quality_off", "Quality menu item is shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"${KEY}_captions",
|
||||
StringResource("${KEY}_captions_title", "Hide Captions menu"),
|
||||
StringResource("${KEY}_captions_on", "Captions menu item is hidden"),
|
||||
StringResource("${KEY}_captions_off", "Captions menu item is shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"${KEY}_loop_video",
|
||||
StringResource("${KEY}_loop_video_title", "Hide Loop video menu"),
|
||||
StringResource("${KEY}_loop_video_on", "Loop video menu item is hidden"),
|
||||
StringResource("${KEY}_loop_video_off", "Loop video menu item is shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"${KEY}_ambient_mode",
|
||||
StringResource("${KEY}_ambient_mode_title", "Hide Ambient mode menu"),
|
||||
StringResource("${KEY}_ambient_mode_on", "Ambient mode menu item is hidden"),
|
||||
StringResource("${KEY}_ambient_mode_off", "Ambient mode menu item is shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"${KEY}_report",
|
||||
StringResource("${KEY}_report_title", "Hide Report menu"),
|
||||
StringResource("${KEY}_report_on", "Report menu item is hidden"),
|
||||
StringResource("${KEY}_report_off", "Report menu item is shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"${KEY}_help",
|
||||
StringResource("${KEY}_help_title", "Hide Help menu"),
|
||||
StringResource("${KEY}_help_on", "Help menu item is hidden"),
|
||||
StringResource("${KEY}_help_off", "Help menu item is shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"${KEY}_speed",
|
||||
StringResource("${KEY}_speed_title", "Hide Speed menu"),
|
||||
StringResource("${KEY}_speed_on", "Speed menu item is hidden"),
|
||||
StringResource("${KEY}_speed_off", "Speed menu item is shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"${KEY}_more_info",
|
||||
StringResource("${KEY}_more_info_title", "Hide More info menu"),
|
||||
StringResource("${KEY}_more_info_on", "More info menu item is hidden"),
|
||||
StringResource("${KEY}_more_info_off", "More info menu item is shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"${KEY}_audio_track",
|
||||
StringResource("${KEY}_audio_track_title", "Hide Audio track menu"),
|
||||
StringResource("${KEY}_audio_track_on", "Audio track menu item is hidden"),
|
||||
StringResource("${KEY}_audio_track_off", "Audio track menu item is shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"${KEY}_watch_in_vr",
|
||||
StringResource("${KEY}_watch_in_vr_title", "Hide Watch in VR menu"),
|
||||
StringResource("${KEY}_watch_in_vr_on", "Watch in VR menu item is hidden"),
|
||||
StringResource("${KEY}_watch_in_vr_off", "Watch in VR menu item is shown")
|
||||
),
|
||||
),
|
||||
StringResource("${KEY}_summary", "Manage the visibility of player flyout menu items")
|
||||
)
|
||||
)
|
||||
|
||||
LithoFilterPatch.addFilter(FILTER_CLASS_DESCRIPTOR)
|
||||
|
||||
return PatchResultSuccess()
|
||||
}
|
||||
|
||||
private companion object {
|
||||
const val KEY = "revanced_hide_player_flyout"
|
||||
|
||||
const val FILTER_CLASS_DESCRIPTOR =
|
||||
"Lapp/revanced/integrations/patches/components/PlayerFlyoutMenuItemsFilter;"
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package app.revanced.patches.youtube.layout.hide.watchinvr.fingerprints
|
||||
|
||||
import app.revanced.patcher.extensions.or
|
||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||
import org.jf.dexlib2.AccessFlags
|
||||
|
||||
object WatchInVRFingerprint : MethodFingerprint(
|
||||
"V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("Z"),
|
||||
strings = listOf("menu_item_cardboard_vr")
|
||||
)
|
@ -1,53 +0,0 @@
|
||||
package app.revanced.patches.youtube.layout.hide.watchinvr.patch
|
||||
|
||||
import app.revanced.patcher.annotation.Description
|
||||
import app.revanced.patcher.annotation.Name
|
||||
import app.revanced.patcher.data.BytecodeContext
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
|
||||
import app.revanced.patcher.patch.BytecodePatch
|
||||
import app.revanced.patcher.patch.PatchResult
|
||||
import app.revanced.patcher.patch.PatchResultSuccess
|
||||
import app.revanced.patcher.patch.annotations.DependsOn
|
||||
import app.revanced.patcher.patch.annotations.Patch
|
||||
import app.revanced.patches.shared.settings.preference.impl.StringResource
|
||||
import app.revanced.patches.shared.settings.preference.impl.SwitchPreference
|
||||
import app.revanced.patches.youtube.layout.hide.watchinvr.annotations.WatchInVRCompatibility
|
||||
import app.revanced.patches.youtube.layout.hide.watchinvr.fingerprints.WatchInVRFingerprint
|
||||
import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch
|
||||
import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch
|
||||
|
||||
@Patch
|
||||
@DependsOn([IntegrationsPatch::class, SettingsPatch::class])
|
||||
@Name("Hide watch in VR")
|
||||
@Description("Hides the option to watch in VR from the player settings flyout panel.")
|
||||
@WatchInVRCompatibility
|
||||
class WatchInVRPatch : BytecodePatch(
|
||||
listOf(
|
||||
WatchInVRFingerprint
|
||||
)
|
||||
) {
|
||||
override fun execute(context: BytecodeContext): PatchResult {
|
||||
SettingsPatch.PreferenceScreen.LAYOUT.addPreferences(
|
||||
SwitchPreference(
|
||||
"revanced_hide_watch_in_vr",
|
||||
StringResource("revanced_hide_watch_in_vr_title", "Hide VR setting"),
|
||||
StringResource("revanced_hide_watch_in_vr_summary_on", "VR setting is hidden"),
|
||||
StringResource("revanced_hide_watch_in_vr_summary_off", "VR setting is shown")
|
||||
)
|
||||
)
|
||||
|
||||
WatchInVRFingerprint.result!!.mutableMethod.addInstructionsWithLabels(
|
||||
0,
|
||||
"""
|
||||
invoke-static {}, Lapp/revanced/integrations/patches/HideWatchInVRPatch;->hideWatchInVR()Z
|
||||
move-result v0
|
||||
if-eqz v0, :shown
|
||||
return-void
|
||||
:shown
|
||||
nop
|
||||
"""
|
||||
)
|
||||
|
||||
return PatchResultSuccess()
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user