fix(YouTube - Toolbar components): Hide voice search button setting does not work https://github.com/inotia00/ReVanced_Extended/issues/2580

This commit is contained in:
inotia00 2024-12-22 16:39:53 +09:00
parent 1e13c4e83e
commit a253e5edce
2 changed files with 33 additions and 3 deletions

View File

@ -155,6 +155,27 @@ internal val searchBarParentFingerprint = legacyFingerprint(
literals = listOf(voiceSearch), literals = listOf(voiceSearch),
) )
internal val voiceInputControllerParentFingerprint = legacyFingerprint(
name = "voiceInputControllerParentFingerprint",
returnType = "V",
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
parameters = listOf("[B", "Z"),
strings = listOf("VoiceInputController"),
)
internal val voiceInputControllerFingerprint = legacyFingerprint(
name = "voiceInputControllerFingerprint",
returnType = "Z",
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
parameters = emptyList(),
customFingerprint = { method, _ ->
method.indexOfFirstInstruction {
opcode == Opcode.INVOKE_VIRTUAL &&
getReference<MethodReference>()?.name == "resolveActivity"
} >= 0
},
)
internal val searchResultFingerprint = legacyFingerprint( internal val searchResultFingerprint = legacyFingerprint(
name = "searchResultFingerprint", name = "searchResultFingerprint",
returnType = "Landroid/view/View;", returnType = "Landroid/view/View;",

View File

@ -18,7 +18,6 @@ import app.revanced.patches.youtube.utils.patch.PatchList.TOOLBAR_COMPONENTS
import app.revanced.patches.youtube.utils.playservice.versionCheckPatch import app.revanced.patches.youtube.utils.playservice.versionCheckPatch
import app.revanced.patches.youtube.utils.resourceid.actionBarRingoBackground import app.revanced.patches.youtube.utils.resourceid.actionBarRingoBackground
import app.revanced.patches.youtube.utils.resourceid.sharedResourceIdPatch import app.revanced.patches.youtube.utils.resourceid.sharedResourceIdPatch
import app.revanced.patches.youtube.utils.resourceid.voiceSearch
import app.revanced.patches.youtube.utils.resourceid.ytOutlineVideoCamera import app.revanced.patches.youtube.utils.resourceid.ytOutlineVideoCamera
import app.revanced.patches.youtube.utils.resourceid.ytPremiumWordMarkHeader import app.revanced.patches.youtube.utils.resourceid.ytPremiumWordMarkHeader
import app.revanced.patches.youtube.utils.resourceid.ytWordMarkHeader import app.revanced.patches.youtube.utils.resourceid.ytWordMarkHeader
@ -32,6 +31,7 @@ import app.revanced.util.doRecursively
import app.revanced.util.findInstructionIndicesReversedOrThrow import app.revanced.util.findInstructionIndicesReversedOrThrow
import app.revanced.util.findMethodOrThrow import app.revanced.util.findMethodOrThrow
import app.revanced.util.fingerprint.matchOrThrow import app.revanced.util.fingerprint.matchOrThrow
import app.revanced.util.fingerprint.methodCall
import app.revanced.util.fingerprint.methodOrThrow import app.revanced.util.fingerprint.methodOrThrow
import app.revanced.util.fingerprint.mutableClassOrThrow import app.revanced.util.fingerprint.mutableClassOrThrow
import app.revanced.util.getReference import app.revanced.util.getReference
@ -332,8 +332,17 @@ val toolBarComponentsPatch = bytecodePatch(
searchResultFingerprint.matchOrThrow().let { searchResultFingerprint.matchOrThrow().let {
it.method.apply { it.method.apply {
val startIndex = indexOfFirstLiteralInstructionOrThrow(voiceSearch) val voiceInputControllerActivityMethodCall =
val setOnClickListenerIndex = indexOfFirstInstructionOrThrow(startIndex) { voiceInputControllerFingerprint
.methodOrThrow(voiceInputControllerParentFingerprint)
.methodCall()
val voiceInputControllerActivityIndex =
indexOfFirstInstructionOrThrow {
opcode == Opcode.INVOKE_VIRTUAL &&
getReference<MethodReference>()?.toString() == voiceInputControllerActivityMethodCall
}
val setOnClickListenerIndex = indexOfFirstInstructionOrThrow(voiceInputControllerActivityIndex) {
opcode == Opcode.INVOKE_VIRTUAL && opcode == Opcode.INVOKE_VIRTUAL &&
getReference<MethodReference>()?.name == "setOnClickListener" getReference<MethodReference>()?.name == "setOnClickListener"
} }