mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-05-28 04:40: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(
|
||||
BottomControlsInflateFingerprint,
|
||||
ControlsLayoutInflateFingerprint,
|
||||
PlayerControlsVisibilityFingerprint
|
||||
PlayerControlsVisibilityFingerprint,
|
||||
PlayerControlsVisibilityModelFingerprint
|
||||
)
|
||||
) {
|
||||
override fun execute(context: BytecodeContext): PatchResult {
|
||||
|
||||
PlayerControlsVisibilityFingerprint.result?.let {
|
||||
showPlayerControlsResult = it
|
||||
} ?: return PlayerControlsVisibilityFingerprint.toErrorResult()
|
||||
|
||||
ControlsLayoutInflateFingerprint.result?.let {
|
||||
controlsLayoutInflateResult = it
|
||||
} ?: return ControlsLayoutInflateFingerprint.toErrorResult()
|
||||
|
||||
BottomControlsInflateFingerprint.result?.let {
|
||||
inflateResult = it
|
||||
} ?: return BottomControlsInflateFingerprint.toErrorResult()
|
||||
playerControlsVisibilityResult = PlayerControlsVisibilityFingerprint.result?: return PlayerControlsVisibilityFingerprint.toErrorResult()
|
||||
playerControlsVisibilityModelResult = PlayerControlsVisibilityModelFingerprint.result?: return PlayerControlsVisibilityModelFingerprint.toErrorResult()
|
||||
controlsLayoutInflateResult = ControlsLayoutInflateFingerprint.result?: return ControlsLayoutInflateFingerprint.toErrorResult()
|
||||
inflateResult = BottomControlsInflateFingerprint.result?: return BottomControlsInflateFingerprint.toErrorResult()
|
||||
|
||||
return PatchResultSuccess()
|
||||
}
|
||||
|
||||
internal companion object {
|
||||
lateinit var showPlayerControlsResult: MethodFingerprintResult
|
||||
lateinit var playerControlsVisibilityResult: MethodFingerprintResult
|
||||
lateinit var playerControlsVisibilityModelResult: MethodFingerprintResult
|
||||
lateinit var controlsLayoutInflateResult: MethodFingerprintResult
|
||||
lateinit var inflateResult: MethodFingerprintResult
|
||||
|
||||
fun MethodFingerprintResult.injectVisibilityCall(
|
||||
private fun MethodFingerprintResult.injectVisibilityCall(
|
||||
descriptor: String,
|
||||
fieldname: String
|
||||
fieldName: String
|
||||
) {
|
||||
mutableMethod.addInstruction(
|
||||
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) {
|
||||
showPlayerControlsResult.injectVisibilityCall(descriptor, "changeVisibility")
|
||||
playerControlsVisibilityResult.injectVisibilityCall(descriptor, "changeVisibility")
|
||||
playerControlsVisibilityModelResult.injectVisibilityNegatedCall(descriptor)
|
||||
}
|
||||
|
||||
fun initializeSB(descriptor: String) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user