diff --git a/patches/api/patches.api b/patches/api/patches.api index be251e84a5..93ba04f66f 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -421,6 +421,10 @@ public final class app/revanced/patches/messenger/layout/HideFacebookButtonPatch public static final fun getHideFacebookButtonPatch ()Lapp/revanced/patcher/patch/Patch; } +public final class app/revanced/patches/messenger/layout/RestoreOldEmojiDrawerPatchKt { + public static final fun getRestoreOldEmojiDrawerPatch ()Lapp/revanced/patcher/patch/Patch; +} + public final class app/revanced/patches/messenger/metaai/RemoveMetaAIPatchKt { public static final fun getRemoveMetaAIPatch ()Lapp/revanced/patcher/patch/Patch; } @@ -632,7 +636,7 @@ public final class app/revanced/patches/photomath/misc/unlock/plus/UnlockPlusPat } public final class app/revanced/patches/photoshopmix/BypassLoginPatchKt { - public static final fun getBypassLoginPatch ()Lapp/revanced/patcher/patch/BytecodePatch; + public static final fun getBypassLoginPatch ()Lapp/revanced/patcher/patch/Patch; } public final class app/revanced/patches/piccomafr/misc/SpoofAndroidDeviceIdPatchKt { diff --git a/patches/src/main/kotlin/app/revanced/patches/messenger/layout/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/messenger/layout/Fingerprints.kt index d0cce5ef00..28d2ee9745 100644 --- a/patches/src/main/kotlin/app/revanced/patches/messenger/layout/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/messenger/layout/Fingerprints.kt @@ -1,14 +1,22 @@ package app.revanced.patches.messenger.layout -import app.revanced.patcher.gettingFirstMethodDeclaratively -import app.revanced.patcher.parameterTypes +import app.revanced.patcher.* import app.revanced.patcher.patch.BytecodePatchContext -import app.revanced.patcher.returnType -import app.revanced.patcher.instructions -import app.revanced.patcher.invoke +import com.android.tools.smali.dexlib2.Opcode internal val BytecodePatchContext.isFacebookButtonEnabledMethod by gettingFirstMethodDeclaratively { parameterTypes() returnType("Z") instructions("FacebookButtonTabButtonImplementation"(String::contains)) } + +internal val BytecodePatchContext.renderRedesignedDrawerMethodMatch by composingFirstMethod("Cannot render redesigned drawer with search icon ") { + instructions( + allOf( + Opcode.INVOKE_VIRTUAL(), + method { + returnType == "Z" && parameterTypes.isEmpty() + } + ) + ) +} \ No newline at end of file diff --git a/patches/src/main/kotlin/app/revanced/patches/messenger/layout/RestoreOldEmojiDrawerPatch.kt b/patches/src/main/kotlin/app/revanced/patches/messenger/layout/RestoreOldEmojiDrawerPatch.kt new file mode 100644 index 0000000000..04314183b6 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/messenger/layout/RestoreOldEmojiDrawerPatch.kt @@ -0,0 +1,28 @@ +package app.revanced.patches.messenger.layout + +import app.revanced.patcher.extensions.getInstruction +import app.revanced.patcher.firstMethod +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.util.getReference +import app.revanced.util.returnEarly +import com.android.tools.smali.dexlib2.iface.reference.MethodReference +import com.android.tools.smali.dexlib2.util.MethodUtil + +@Suppress("unused") +val restoreOldEmojiDrawerPatch = bytecodePatch( + name = "Restore old emoji drawer", + description = "Disables the new redesigned emoji drawer.", +) { + compatibleWith("com.facebook.orca") + + apply { + val isRedesignedDrawerEnabledMethodReference = renderRedesignedDrawerMethodMatch.let { + it.method.getInstruction(it[0]).getReference()!! + } + val isRedesignedDrawerEnabledMethod = firstMethod { + definingClass == isRedesignedDrawerEnabledMethodReference.definingClass + && MethodUtil.methodSignaturesMatch(this, isRedesignedDrawerEnabledMethodReference) + } + isRedesignedDrawerEnabledMethod.returnEarly(false) + } +} \ No newline at end of file