mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-05-20 16:27:17 +02:00
fix(YouTube Music/Player components): Hide Audio / Video toggle
setting not working in landscape mode
This commit is contained in:
parent
41e00d6a4f
commit
542291414e
@ -6,6 +6,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
|
|||||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
|
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
|
||||||
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
||||||
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
|
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
|
||||||
|
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.patch.PatchException
|
import app.revanced.patcher.patch.PatchException
|
||||||
import app.revanced.patcher.util.proxy.mutableTypes.MutableField.Companion.toMutable
|
import app.revanced.patcher.util.proxy.mutableTypes.MutableField.Companion.toMutable
|
||||||
@ -13,6 +14,7 @@ import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
|
|||||||
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable
|
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable
|
||||||
import app.revanced.patcher.util.smali.ExternalLabel
|
import app.revanced.patcher.util.smali.ExternalLabel
|
||||||
import app.revanced.patches.music.player.components.fingerprints.AudioVideoSwitchToggleFingerprint
|
import app.revanced.patches.music.player.components.fingerprints.AudioVideoSwitchToggleFingerprint
|
||||||
|
import app.revanced.patches.music.player.components.fingerprints.AudioVideoSwitchToggleFingerprint.AUDIO_VIDEO_SWITCH_TOGGLE_VISIBILITY
|
||||||
import app.revanced.patches.music.player.components.fingerprints.EngagementPanelHeightFingerprint
|
import app.revanced.patches.music.player.components.fingerprints.EngagementPanelHeightFingerprint
|
||||||
import app.revanced.patches.music.player.components.fingerprints.EngagementPanelHeightParentFingerprint
|
import app.revanced.patches.music.player.components.fingerprints.EngagementPanelHeightParentFingerprint
|
||||||
import app.revanced.patches.music.player.components.fingerprints.HandleSearchRenderedFingerprint
|
import app.revanced.patches.music.player.components.fingerprints.HandleSearchRenderedFingerprint
|
||||||
@ -46,7 +48,6 @@ import app.revanced.patches.music.utils.integrations.Constants.INTEGRATIONS_PATH
|
|||||||
import app.revanced.patches.music.utils.integrations.Constants.PLAYER_CLASS_DESCRIPTOR
|
import app.revanced.patches.music.utils.integrations.Constants.PLAYER_CLASS_DESCRIPTOR
|
||||||
import app.revanced.patches.music.utils.mainactivity.MainActivityResolvePatch
|
import app.revanced.patches.music.utils.mainactivity.MainActivityResolvePatch
|
||||||
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch
|
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch
|
||||||
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.AudioVideoSwitchToggle
|
|
||||||
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.ColorGrey
|
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.ColorGrey
|
||||||
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.DarkBackground
|
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.DarkBackground
|
||||||
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.MiniPlayerPlayPauseReplayButton
|
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.MiniPlayerPlayPauseReplayButton
|
||||||
@ -629,14 +630,25 @@ object PlayerComponentsPatch : BaseBytecodePatch(
|
|||||||
// region patch for hide audio video switch toggle
|
// region patch for hide audio video switch toggle
|
||||||
|
|
||||||
AudioVideoSwitchToggleFingerprint.resultOrThrow().mutableMethod.apply {
|
AudioVideoSwitchToggleFingerprint.resultOrThrow().mutableMethod.apply {
|
||||||
val constIndex = indexOfFirstWideLiteralInstructionValueOrThrow(AudioVideoSwitchToggle)
|
implementation!!.instructions
|
||||||
val viewIndex = indexOfFirstInstructionOrThrow(constIndex, Opcode.MOVE_RESULT_OBJECT)
|
.withIndex()
|
||||||
val viewRegister = getInstruction<OneRegisterInstruction>(viewIndex).registerA
|
.filter { (_, instruction) ->
|
||||||
|
val reference = (instruction as? ReferenceInstruction)?.reference
|
||||||
|
instruction.opcode == Opcode.INVOKE_VIRTUAL &&
|
||||||
|
reference is MethodReference &&
|
||||||
|
reference.toString() == AUDIO_VIDEO_SWITCH_TOGGLE_VISIBILITY
|
||||||
|
}
|
||||||
|
.map { (index, _) -> index }
|
||||||
|
.reversed()
|
||||||
|
.forEach { index ->
|
||||||
|
val instruction = getInstruction<FiveRegisterInstruction>(index)
|
||||||
|
|
||||||
addInstruction(
|
replaceInstruction(
|
||||||
viewIndex + 1,
|
index,
|
||||||
"invoke-static {v$viewRegister}, $PLAYER_CLASS_DESCRIPTOR->hideAudioVideoSwitchToggle(Landroid/view/View;)V"
|
"invoke-static {v${instruction.registerC}, v${instruction.registerD}}," +
|
||||||
)
|
"$PLAYER_CLASS_DESCRIPTOR->hideAudioVideoSwitchToggle(Landroid/view/View;I)V"
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SettingsPatch.addSwitchPreference(
|
SettingsPatch.addSwitchPreference(
|
||||||
|
@ -1,12 +1,25 @@
|
|||||||
package app.revanced.patches.music.player.components.fingerprints
|
package app.revanced.patches.music.player.components.fingerprints
|
||||||
|
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.AudioVideoSwitchToggle
|
import app.revanced.patcher.fingerprint.MethodFingerprint
|
||||||
import app.revanced.util.fingerprint.LiteralValueFingerprint
|
import app.revanced.patches.music.player.components.fingerprints.AudioVideoSwitchToggleFingerprint.AUDIO_VIDEO_SWITCH_TOGGLE_VISIBILITY
|
||||||
|
import app.revanced.util.getReference
|
||||||
|
import app.revanced.util.indexOfFirstInstruction
|
||||||
import com.android.tools.smali.dexlib2.AccessFlags
|
import com.android.tools.smali.dexlib2.AccessFlags
|
||||||
|
import com.android.tools.smali.dexlib2.Opcode
|
||||||
|
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||||
|
|
||||||
internal object AudioVideoSwitchToggleFingerprint : LiteralValueFingerprint(
|
internal object AudioVideoSwitchToggleFingerprint : MethodFingerprint(
|
||||||
returnType = "V",
|
returnType = "V",
|
||||||
accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
|
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
literalSupplier = { AudioVideoSwitchToggle },
|
parameters = emptyList(),
|
||||||
)
|
customFingerprint = { methodDef, _ ->
|
||||||
|
methodDef.indexOfFirstInstruction {
|
||||||
|
opcode == Opcode.INVOKE_VIRTUAL &&
|
||||||
|
getReference<MethodReference>()?.toString() == AUDIO_VIDEO_SWITCH_TOGGLE_VISIBILITY
|
||||||
|
} >= 0
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
const val AUDIO_VIDEO_SWITCH_TOGGLE_VISIBILITY =
|
||||||
|
"Lcom/google/android/apps/youtube/music/player/AudioVideoSwitcherToggleView;->setVisibility(I)V"
|
||||||
|
}
|
@ -16,7 +16,6 @@ import app.revanced.patches.shared.mapping.ResourceType.STYLE
|
|||||||
@Patch(dependencies = [ResourceMappingPatch::class])
|
@Patch(dependencies = [ResourceMappingPatch::class])
|
||||||
object SharedResourceIdPatch : ResourcePatch() {
|
object SharedResourceIdPatch : ResourcePatch() {
|
||||||
var AccountSwitcherAccessibility = -1L
|
var AccountSwitcherAccessibility = -1L
|
||||||
var AudioVideoSwitchToggle = -1L
|
|
||||||
var BottomSheetRecyclerView = -1L
|
var BottomSheetRecyclerView = -1L
|
||||||
var ButtonContainer = -1L
|
var ButtonContainer = -1L
|
||||||
var ButtonIconPaddingMedium = -1L
|
var ButtonIconPaddingMedium = -1L
|
||||||
@ -62,7 +61,6 @@ object SharedResourceIdPatch : ResourcePatch() {
|
|||||||
override fun execute(context: ResourceContext) {
|
override fun execute(context: ResourceContext) {
|
||||||
|
|
||||||
AccountSwitcherAccessibility = getId(STRING, "account_switcher_accessibility_label")
|
AccountSwitcherAccessibility = getId(STRING, "account_switcher_accessibility_label")
|
||||||
AudioVideoSwitchToggle = getId(ID, "audio_video_switch_toggle")
|
|
||||||
BottomSheetRecyclerView = getId(LAYOUT, "bottom_sheet_recycler_view")
|
BottomSheetRecyclerView = getId(LAYOUT, "bottom_sheet_recycler_view")
|
||||||
ButtonContainer = getId(ID, "button_container")
|
ButtonContainer = getId(ID, "button_container")
|
||||||
ButtonIconPaddingMedium = getId(DIMEN, "button_icon_padding_medium")
|
ButtonIconPaddingMedium = getId(DIMEN, "button_icon_padding_medium")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user