mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-05-11 12:04:39 +02:00
fix(YouTube/Remove viewer discretion dialog): Remove viewer discretion dialog
settings close unintended dialog
This commit is contained in:
parent
bca9ca9570
commit
3b69d92980
@ -21,20 +21,26 @@ abstract class AbstractRemoveViewerDiscretionDialogPatch(
|
||||
additionalFingerprints.let(::addAll)
|
||||
}
|
||||
) {
|
||||
private fun MutableMethod.invoke() {
|
||||
private fun MutableMethod.invoke(isAgeVerified: Boolean) {
|
||||
val showDialogIndex = implementation!!.instructions.indexOfFirst { instruction ->
|
||||
((instruction as? ReferenceInstruction)?.reference as? MethodReference)?.name == "show"
|
||||
}
|
||||
val dialogRegister = getInstruction<FiveRegisterInstruction>(showDialogIndex).registerC
|
||||
|
||||
val methodName =
|
||||
if (isAgeVerified)
|
||||
"confirmDialogAgeVerified"
|
||||
else
|
||||
"confirmDialog"
|
||||
|
||||
addInstruction(
|
||||
showDialogIndex + 1,
|
||||
"invoke-static { v$dialogRegister }, $classDescriptor->confirmDialog(Landroid/app/AlertDialog;)V",
|
||||
"invoke-static { v$dialogRegister }, $classDescriptor->$methodName(Landroid/app/AlertDialog;)V"
|
||||
)
|
||||
}
|
||||
|
||||
override fun execute(context: BytecodeContext) {
|
||||
CreateDialogFingerprint.result?.mutableMethod?.invoke()
|
||||
CreateDialogFingerprint.result?.mutableMethod?.invoke(false)
|
||||
?: throw CreateDialogFingerprint.exception
|
||||
|
||||
if (additionalFingerprints.isNotEmpty()) {
|
||||
@ -44,7 +50,7 @@ abstract class AbstractRemoveViewerDiscretionDialogPatch(
|
||||
.nextMethod(it.scanResult.patternScanResult!!.endIndex - 1, true)
|
||||
.getMethod() as MutableMethod
|
||||
|
||||
targetMethod.invoke()
|
||||
targetMethod.invoke(true)
|
||||
} ?: throw fingerprint.exception
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import app.revanced.patcher.data.BytecodeContext
|
||||
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
||||
import app.revanced.patcher.patch.annotation.Patch
|
||||
import app.revanced.patches.shared.patch.dialog.AbstractRemoveViewerDiscretionDialogPatch
|
||||
import app.revanced.patches.youtube.general.dialog.fingerprints.AgeRestrictionFingerprint
|
||||
import app.revanced.patches.youtube.general.dialog.fingerprints.AgeVerifiedFingerprint
|
||||
import app.revanced.patches.youtube.utils.integrations.Constants.GENERAL
|
||||
import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
||||
|
||||
@ -43,7 +43,7 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
||||
@Suppress("unused")
|
||||
object RemoveViewerDiscretionDialogPatch : AbstractRemoveViewerDiscretionDialogPatch(
|
||||
GENERAL,
|
||||
setOf(AgeRestrictionFingerprint)
|
||||
setOf(AgeVerifiedFingerprint)
|
||||
) {
|
||||
override fun execute(context: BytecodeContext) {
|
||||
super.execute(context)
|
||||
|
@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
object AgeRestrictionFingerprint : MethodFingerprint(
|
||||
object AgeVerifiedFingerprint : MethodFingerprint(
|
||||
returnType = "V",
|
||||
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||
parameters = listOf("L", "Ljava/util/Map;"),
|
Loading…
x
Reference in New Issue
Block a user