mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-05-29 13:20:19 +02:00
fix(overlay-button): buttons are not hidden when swiping the seekbar
This commit is contained in:
parent
35a52a0ee9
commit
4aab95d351
@ -0,0 +1,9 @@
|
|||||||
|
package app.revanced.patches.youtube.misc.playercontrols.fingerprints
|
||||||
|
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
|
import org.jf.dexlib2.Opcode
|
||||||
|
|
||||||
|
object PlayerControlsVisibilityModelFingerprint : MethodFingerprint(
|
||||||
|
opcodes = listOf(Opcode.IGET_BOOLEAN),
|
||||||
|
strings = listOf("hasNext", "hasPrevious", "Missing required properties:")
|
||||||
|
)
|
@ -26,38 +26,42 @@ class PlayerControlsPatch : BytecodePatch(
|
|||||||
listOf(
|
listOf(
|
||||||
BottomControlsInflateFingerprint,
|
BottomControlsInflateFingerprint,
|
||||||
ControlsLayoutInflateFingerprint,
|
ControlsLayoutInflateFingerprint,
|
||||||
PlayerControlsVisibilityFingerprint
|
PlayerControlsVisibilityFingerprint,
|
||||||
|
PlayerControlsVisibilityModelFingerprint
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
override fun execute(context: BytecodeContext): PatchResult {
|
override fun execute(context: BytecodeContext): PatchResult {
|
||||||
|
|
||||||
PlayerControlsVisibilityFingerprint.result?.let {
|
playerControlsVisibilityResult = PlayerControlsVisibilityFingerprint.result?: return PlayerControlsVisibilityFingerprint.toErrorResult()
|
||||||
showPlayerControlsResult = it
|
playerControlsVisibilityModelResult = PlayerControlsVisibilityModelFingerprint.result?: return PlayerControlsVisibilityModelFingerprint.toErrorResult()
|
||||||
} ?: return PlayerControlsVisibilityFingerprint.toErrorResult()
|
controlsLayoutInflateResult = ControlsLayoutInflateFingerprint.result?: return ControlsLayoutInflateFingerprint.toErrorResult()
|
||||||
|
inflateResult = BottomControlsInflateFingerprint.result?: return BottomControlsInflateFingerprint.toErrorResult()
|
||||||
ControlsLayoutInflateFingerprint.result?.let {
|
|
||||||
controlsLayoutInflateResult = it
|
|
||||||
} ?: return ControlsLayoutInflateFingerprint.toErrorResult()
|
|
||||||
|
|
||||||
BottomControlsInflateFingerprint.result?.let {
|
|
||||||
inflateResult = it
|
|
||||||
} ?: return BottomControlsInflateFingerprint.toErrorResult()
|
|
||||||
|
|
||||||
return PatchResultSuccess()
|
return PatchResultSuccess()
|
||||||
}
|
}
|
||||||
|
|
||||||
internal companion object {
|
internal companion object {
|
||||||
lateinit var showPlayerControlsResult: MethodFingerprintResult
|
lateinit var playerControlsVisibilityResult: MethodFingerprintResult
|
||||||
|
lateinit var playerControlsVisibilityModelResult: MethodFingerprintResult
|
||||||
lateinit var controlsLayoutInflateResult: MethodFingerprintResult
|
lateinit var controlsLayoutInflateResult: MethodFingerprintResult
|
||||||
lateinit var inflateResult: MethodFingerprintResult
|
lateinit var inflateResult: MethodFingerprintResult
|
||||||
|
|
||||||
fun MethodFingerprintResult.injectVisibilityCall(
|
private fun MethodFingerprintResult.injectVisibilityCall(
|
||||||
descriptor: String,
|
descriptor: String,
|
||||||
fieldname: String
|
fieldName: String
|
||||||
) {
|
) {
|
||||||
mutableMethod.addInstruction(
|
mutableMethod.addInstruction(
|
||||||
0,
|
0,
|
||||||
"invoke-static {p1}, $descriptor->$fieldname(Z)V"
|
"invoke-static {p1}, $descriptor->$fieldName(Z)V"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun MethodFingerprintResult.injectVisibilityNegatedCall(
|
||||||
|
descriptor: String
|
||||||
|
) {
|
||||||
|
mutableMethod.addInstruction(
|
||||||
|
scanResult.patternScanResult!!.startIndex,
|
||||||
|
"invoke-static {}, $descriptor->changeVisibilityNegatedImmediate()V"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,7 +79,8 @@ class PlayerControlsPatch : BytecodePatch(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun injectVisibility(descriptor: String) {
|
fun injectVisibility(descriptor: String) {
|
||||||
showPlayerControlsResult.injectVisibilityCall(descriptor, "changeVisibility")
|
playerControlsVisibilityResult.injectVisibilityCall(descriptor, "changeVisibility")
|
||||||
|
playerControlsVisibilityModelResult.injectVisibilityNegatedCall(descriptor)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun initializeSB(descriptor: String) {
|
fun initializeSB(descriptor: String) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user