refactor(youtube/sponsorblock): remove dead code
Signed-off-by: oSumAtrIX <johan.melkonyan1@web.de>
This commit is contained in:
parent
5d232c2018
commit
0d14c46a1b
|
@ -1,22 +0,0 @@
|
||||||
package app.revanced.patches.youtube.layout.sponsorblock.bytecode.fingerprints
|
|
||||||
|
|
||||||
|
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import org.jf.dexlib2.iface.instruction.ReferenceInstruction
|
|
||||||
import org.jf.dexlib2.iface.reference.MethodReference
|
|
||||||
|
|
||||||
object RectangleFieldInvalidatorFingerprint : MethodFingerprint(
|
|
||||||
"V",
|
|
||||||
customFingerprint = custom@{ methodDef ->
|
|
||||||
val instructions = methodDef.implementation?.instructions!!
|
|
||||||
val instructionCount = instructions.count()
|
|
||||||
|
|
||||||
// the method has definitely more than 5 instructions
|
|
||||||
if (instructionCount < 5) return@custom false
|
|
||||||
|
|
||||||
val referenceInstruction = instructions.elementAt(instructionCount - 2) // the second to last instruction
|
|
||||||
val reference = ((referenceInstruction as? ReferenceInstruction)?.reference as? MethodReference)
|
|
||||||
|
|
||||||
reference?.parameterTypes?.size == 1 && reference.name == "invalidate" // the reference is the invalidate(..) method
|
|
||||||
}
|
|
||||||
)
|
|
|
@ -7,11 +7,9 @@ import app.revanced.patcher.data.BytecodeContext
|
||||||
import app.revanced.patcher.data.toMethodWalker
|
import app.revanced.patcher.data.toMethodWalker
|
||||||
import app.revanced.patcher.extensions.addInstruction
|
import app.revanced.patcher.extensions.addInstruction
|
||||||
import app.revanced.patcher.extensions.addInstructions
|
import app.revanced.patcher.extensions.addInstructions
|
||||||
import app.revanced.patcher.extensions.replaceInstruction
|
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve
|
||||||
import app.revanced.patcher.patch.BytecodePatch
|
import app.revanced.patcher.patch.BytecodePatch
|
||||||
import app.revanced.patcher.patch.PatchResult
|
import app.revanced.patcher.patch.PatchResult
|
||||||
import app.revanced.patcher.patch.PatchResultError
|
|
||||||
import app.revanced.patcher.patch.PatchResultSuccess
|
import app.revanced.patcher.patch.PatchResultSuccess
|
||||||
import app.revanced.patcher.patch.annotations.DependsOn
|
import app.revanced.patcher.patch.annotations.DependsOn
|
||||||
import app.revanced.patcher.patch.annotations.Patch
|
import app.revanced.patcher.patch.annotations.Patch
|
||||||
|
@ -30,9 +28,7 @@ import app.revanced.patches.youtube.misc.video.videoid.patch.VideoIdPatch
|
||||||
import org.jf.dexlib2.Opcode
|
import org.jf.dexlib2.Opcode
|
||||||
import org.jf.dexlib2.iface.instruction.*
|
import org.jf.dexlib2.iface.instruction.*
|
||||||
import org.jf.dexlib2.iface.instruction.formats.Instruction35c
|
import org.jf.dexlib2.iface.instruction.formats.Instruction35c
|
||||||
import org.jf.dexlib2.iface.reference.FieldReference
|
|
||||||
import org.jf.dexlib2.iface.reference.MethodReference
|
import org.jf.dexlib2.iface.reference.MethodReference
|
||||||
import org.jf.dexlib2.iface.reference.StringReference
|
|
||||||
|
|
||||||
@Patch
|
@Patch
|
||||||
@DependsOn(
|
@DependsOn(
|
||||||
|
@ -236,39 +232,6 @@ class SponsorBlockBytecodePatch : BytecodePatch(
|
||||||
"invoke-static {p0}, Lapp/revanced/integrations/sponsorblock/player/ui/SponsorBlockView;->initialize(Ljava/lang/Object;)V"
|
"invoke-static {p0}, Lapp/revanced/integrations/sponsorblock/player/ui/SponsorBlockView;->initialize(Ljava/lang/Object;)V"
|
||||||
)
|
)
|
||||||
|
|
||||||
// get rectangle field name
|
|
||||||
RectangleFieldInvalidatorFingerprint.resolve(context, seekbarSignatureResult.classDef)
|
|
||||||
val rectangleFieldInvalidatorInstructions =
|
|
||||||
RectangleFieldInvalidatorFingerprint.result!!.method.implementation!!.instructions
|
|
||||||
val rectangleFieldName =
|
|
||||||
((rectangleFieldInvalidatorInstructions.elementAt(rectangleFieldInvalidatorInstructions.count() - 3) as ReferenceInstruction).reference as FieldReference).name
|
|
||||||
|
|
||||||
// replace the "replaceMeWith*" strings
|
|
||||||
context
|
|
||||||
.proxy(context.classes.first { it.type.endsWith("PlayerController;") })
|
|
||||||
.mutableClass
|
|
||||||
.methods
|
|
||||||
.find { it.name == "setSponsorBarRect" }
|
|
||||||
?.let { method ->
|
|
||||||
fun MutableMethod.replaceStringInstruction(index: Int, instruction: Instruction, with: String) {
|
|
||||||
val register = (instruction as OneRegisterInstruction).registerA
|
|
||||||
this.replaceInstruction(
|
|
||||||
index, "const-string v$register, \"$with\""
|
|
||||||
)
|
|
||||||
}
|
|
||||||
for ((index, it) in method.implementation!!.instructions.withIndex()) {
|
|
||||||
if (it.opcode.ordinal != Opcode.CONST_STRING.ordinal) continue
|
|
||||||
|
|
||||||
when (((it as ReferenceInstruction).reference as StringReference).string) {
|
|
||||||
"replaceMeWithsetSponsorBarRect" ->
|
|
||||||
method.replaceStringInstruction(index, it, rectangleFieldName)
|
|
||||||
|
|
||||||
"replaceMeWithsetMillisecondMethod" ->
|
|
||||||
method.replaceStringInstruction(index, it, "seekHelper")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} ?: return PatchResultError("Could not find the method which contains the replaceMeWith* strings")
|
|
||||||
|
|
||||||
val startVideoInformerMethod = StartVideoInformerFingerprint.result!!.mutableMethod
|
val startVideoInformerMethod = StartVideoInformerFingerprint.result!!.mutableMethod
|
||||||
startVideoInformerMethod.addInstructions(
|
startVideoInformerMethod.addInstructions(
|
||||||
0, """
|
0, """
|
||||||
|
|
Loading…
Reference in a new issue