diff --git a/src/main/kotlin/app/revanced/patches/shared/patch/dialog/AbstractRemoveViewerDiscretionDialogPatch.kt b/src/main/kotlin/app/revanced/patches/shared/patch/dialog/AbstractRemoveViewerDiscretionDialogPatch.kt index 5b5938850..d4ea83dd7 100644 --- a/src/main/kotlin/app/revanced/patches/shared/patch/dialog/AbstractRemoveViewerDiscretionDialogPatch.kt +++ b/src/main/kotlin/app/revanced/patches/shared/patch/dialog/AbstractRemoveViewerDiscretionDialogPatch.kt @@ -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(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 } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/dialog/RemoveViewerDiscretionDialogPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/dialog/RemoveViewerDiscretionDialogPatch.kt index be5fb45cf..179eecd92 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/dialog/RemoveViewerDiscretionDialogPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/dialog/RemoveViewerDiscretionDialogPatch.kt @@ -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) diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/dialog/fingerprints/AgeRestrictionFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/general/dialog/fingerprints/AgeVerifiedFingerprint.kt similarity index 94% rename from src/main/kotlin/app/revanced/patches/youtube/general/dialog/fingerprints/AgeRestrictionFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/general/dialog/fingerprints/AgeVerifiedFingerprint.kt index e2ed0cff7..c5cd86b2b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/dialog/fingerprints/AgeRestrictionFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/dialog/fingerprints/AgeVerifiedFingerprint.kt @@ -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;"),