mirror of
https://github.com/revanced/revanced-patches
synced 2024-12-02 23:42:55 +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.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
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"))])
|
@Compatibility([Package("com.google.android.youtube", arrayOf("18.16.37", "18.19.35", "18.20.39", "18.23.35"))])
|
||||||
@Target(AnnotationTarget.CLASS)
|
@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