Compare commits

...

5 Commits

Author SHA1 Message Date
semantic-release-bot
04c8c48df7 chore(release): 2.187.0-dev.7 [skip ci]
# [2.187.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v2.187.0-dev.6...v2.187.0-dev.7) (2023-07-30)

### Features

* **YouTube:** add `Player Flyout Menu` patch ([#2295](https://github.com/ReVanced/revanced-patches/issues/2295)) ([bb90012](bb9001283a))
2023-07-30 09:54:23 +00:00
johnconner122
bb9001283a 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>
2023-07-30 13:51:50 +04:00
semantic-release-bot
b7f0c13443 chore(release): 2.187.0-dev.6 [skip ci]
# [2.187.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v2.187.0-dev.5...v2.187.0-dev.6) (2023-07-30)
2023-07-30 00:53:14 +00:00
oSumAtrIX
942fe7f870 build(Needs bump): Bump dependencies 2023-07-30 02:50:17 +02:00
oSumAtrIX
c224c16f50 ci: Change bumping commit scope 2023-07-30 02:49:19 +02:00
9 changed files with 123 additions and 69 deletions

View File

@@ -10,7 +10,7 @@
[
"@semantic-release/commit-analyzer", {
"releaseRules": [
{ "type": "build", "scope": "revanced-patcher", "release": "patch" }
{ "type": "build", "scope": "Needs bump", "release": "patch" }
]
}
],

View File

@@ -1,3 +1,12 @@
# [2.187.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v2.187.0-dev.6...v2.187.0-dev.7) (2023-07-30)
### Features
* **YouTube:** add `Player Flyout Menu` patch ([#2295](https://github.com/ReVanced/revanced-patches/issues/2295)) ([aea0af0](https://github.com/ReVanced/revanced-patches/commit/aea0af059784ae4820a0e73ff91f97bbc3ebc4c7))
# [2.187.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v2.187.0-dev.5...v2.187.0-dev.6) (2023-07-30)
# [2.187.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v2.187.0-dev.4...v2.187.0-dev.5) (2023-07-28)

View File

@@ -27,7 +27,7 @@ repositories {
}
dependencies {
implementation("app.revanced:revanced-patcher:11.0.3")
implementation("app.revanced:revanced-patcher:12.0.0")
implementation("app.revanced:multidexlib2:2.5.3-a3836654")
// Required for meta
implementation("com.google.code.gson:gson:2.10.1")

View File

@@ -1,4 +1,4 @@
org.gradle.parallel = true
org.gradle.caching = true
kotlin.code.style = official
version = 2.187.0-dev.5
version = 2.187.0-dev.7

File diff suppressed because one or more lines are too long

View File

@@ -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

View File

@@ -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;"
}
}

View File

@@ -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")
)

View File

@@ -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()
}
}