28 lines
1.2 KiB
Kotlin
28 lines
1.2 KiB
Kotlin
package app.revanced.patches.youtube.misc.navigation.fingerprints
|
|
|
|
import app.revanced.patcher.extensions.or
|
|
import app.revanced.patcher.fingerprint.MethodFingerprint
|
|
import app.revanced.patches.youtube.misc.navigation.fingerprints.PivotBarButtonsViewSetSelectedFingerprint.indexOfSetViewSelectedInstruction
|
|
import app.revanced.util.getReference
|
|
import app.revanced.util.indexOfFirstInstruction
|
|
import com.android.tools.smali.dexlib2.AccessFlags
|
|
import com.android.tools.smali.dexlib2.Opcode
|
|
import com.android.tools.smali.dexlib2.iface.Method
|
|
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
|
|
|
internal object PivotBarButtonsViewSetSelectedFingerprint : MethodFingerprint(
|
|
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
|
parameters = listOf("I", "Z"),
|
|
returnType = "V",
|
|
customFingerprint = { methodDef, classDef ->
|
|
classDef.type == "Lcom/google/android/libraries/youtube/rendering/ui/pivotbar/PivotBar;" &&
|
|
indexOfSetViewSelectedInstruction(methodDef) >= 0
|
|
}
|
|
) {
|
|
fun indexOfSetViewSelectedInstruction(methodDef: Method) =
|
|
methodDef.indexOfFirstInstruction {
|
|
opcode == Opcode.INVOKE_VIRTUAL && getReference<MethodReference>()?.name == "setSelected"
|
|
}
|
|
}
|
|
|