diff --git a/patcher/api/android/patcher.api b/patcher/api/android/patcher.api index 8668ede..6409275 100644 --- a/patcher/api/android/patcher.api +++ b/patcher/api/android/patcher.api @@ -81,19 +81,21 @@ public final class app/revanced/patcher/BytecodePatchContextMethodMatching { public final class app/revanced/patcher/ClassDefMethodMatching { public static final field INSTANCE Lapp/revanced/patcher/ClassDefMethodMatching; public final fun firstMethod (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/iface/Method; - public final fun firstMethod (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMethod (Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; - public static synthetic fun firstMethod$default (Lapp/revanced/patcher/ClassDefMethodMatching;Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/Method; public static synthetic fun firstMethod$default (Lapp/revanced/patcher/ClassDefMethodMatching;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/Method; - public final fun firstMethodDeclaratively (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; - public final fun firstMethodDeclarativelyOrNull (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; + public final fun firstMethodDeclaratively (Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; + public final fun firstMethodDeclarativelyOrNull (Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMethodOrNull (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/iface/Method; - public final fun firstMethodOrNull (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMethodOrNull (Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; - public static synthetic fun firstMethodOrNull$default (Lapp/revanced/patcher/ClassDefMethodMatching;Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/Method; public static synthetic fun firstMethodOrNull$default (Lapp/revanced/patcher/ClassDefMethodMatching;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMutableMethod (Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public final fun firstMutableMethod (Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public static synthetic fun firstMutableMethod$default (Lapp/revanced/patcher/ClassDefMethodMatching;Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public final fun firstMutableMethodDeclaratively (Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public final fun firstMutableMethodDeclarativelyOrNull (Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; public final fun firstMutableMethodOrNull (Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public final fun firstMutableMethodOrNull (Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public static synthetic fun firstMutableMethodOrNull$default (Lapp/revanced/patcher/ClassDefMethodMatching;Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; } public final class app/revanced/patcher/Fingerprint { @@ -173,17 +175,13 @@ public final class app/revanced/patcher/IndexedMatcher : app/revanced/patcher/Ma public final class app/revanced/patcher/IterableClassDefClassDefMatching { public static final field INSTANCE Lapp/revanced/patcher/IterableClassDefClassDefMatching; public final fun firstClassDef (Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; - public final fun firstClassDef (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public static synthetic fun firstClassDef$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; - public static synthetic fun firstClassDef$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public final fun firstClassDefDeclaratively (Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public static synthetic fun firstClassDefDeclaratively$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public final fun firstClassDefDeclarativelyOrNull (Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public static synthetic fun firstClassDefDeclarativelyOrNull$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public final fun firstClassDefOrNull (Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; - public final fun firstClassDefOrNull (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public static synthetic fun firstClassDefOrNull$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; - public static synthetic fun firstClassDefOrNull$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public final fun firstMutableClassDef (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableClassDef; public static synthetic fun firstMutableClassDef$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/mutable/MutableClassDef; public final fun firstMutableClassDefDeclaratively (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableClassDef; @@ -224,14 +222,16 @@ public final class app/revanced/patcher/IterableMethodMethodMatching { public final fun firstMethod (Ljava/lang/Iterable;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMethod (Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; public static synthetic fun firstMethod$default (Lapp/revanced/patcher/IterableMethodMethodMatching;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/Method; - public final fun firstMethodDeclaratively (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; - public final fun firstMethodDeclarativelyOrNull (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; + public final fun firstMethodDeclaratively (Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; + public final fun firstMethodDeclarativelyOrNull (Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMethodOrNull (Ljava/lang/Iterable;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMethodOrNull (Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; public static synthetic fun firstMethodOrNull$default (Lapp/revanced/patcher/IterableMethodMethodMatching;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMutableMethod (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; public final fun firstMutableMethod (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; public static synthetic fun firstMutableMethod$default (Lapp/revanced/patcher/IterableMethodMethodMatching;Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public final fun firstMutableMethodDeclaratively (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public final fun firstMutableMethodDeclarativelyOrNull (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; public final fun firstMutableMethodOrNull (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; public final fun firstMutableMethodOrNull (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; public static synthetic fun firstMutableMethodOrNull$default (Lapp/revanced/patcher/IterableMethodMethodMatching;Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; diff --git a/patcher/api/jvm/patcher.api b/patcher/api/jvm/patcher.api index ba63f74..ee11471 100644 --- a/patcher/api/jvm/patcher.api +++ b/patcher/api/jvm/patcher.api @@ -81,19 +81,21 @@ public final class app/revanced/patcher/BytecodePatchContextMethodMatching { public final class app/revanced/patcher/ClassDefMethodMatching { public static final field INSTANCE Lapp/revanced/patcher/ClassDefMethodMatching; public final fun firstMethod (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/iface/Method; - public final fun firstMethod (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMethod (Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; - public static synthetic fun firstMethod$default (Lapp/revanced/patcher/ClassDefMethodMatching;Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/Method; public static synthetic fun firstMethod$default (Lapp/revanced/patcher/ClassDefMethodMatching;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/Method; - public final fun firstMethodDeclaratively (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; - public final fun firstMethodDeclarativelyOrNull (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; + public final fun firstMethodDeclaratively (Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; + public final fun firstMethodDeclarativelyOrNull (Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMethodOrNull (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/iface/Method; - public final fun firstMethodOrNull (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMethodOrNull (Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; - public static synthetic fun firstMethodOrNull$default (Lapp/revanced/patcher/ClassDefMethodMatching;Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/Method; public static synthetic fun firstMethodOrNull$default (Lapp/revanced/patcher/ClassDefMethodMatching;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMutableMethod (Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public final fun firstMutableMethod (Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public static synthetic fun firstMutableMethod$default (Lapp/revanced/patcher/ClassDefMethodMatching;Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public final fun firstMutableMethodDeclaratively (Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public final fun firstMutableMethodDeclarativelyOrNull (Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; public final fun firstMutableMethodOrNull (Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public final fun firstMutableMethodOrNull (Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public static synthetic fun firstMutableMethodOrNull$default (Lapp/revanced/patcher/ClassDefMethodMatching;Lapp/revanced/patcher/patch/BytecodePatchContext;Lcom/android/tools/smali/dexlib2/iface/ClassDef;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; } public final class app/revanced/patcher/Fingerprint { @@ -173,17 +175,13 @@ public final class app/revanced/patcher/IndexedMatcher : app/revanced/patcher/Ma public final class app/revanced/patcher/IterableClassDefClassDefMatching { public static final field INSTANCE Lapp/revanced/patcher/IterableClassDefClassDefMatching; public final fun firstClassDef (Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; - public final fun firstClassDef (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public static synthetic fun firstClassDef$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; - public static synthetic fun firstClassDef$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public final fun firstClassDefDeclaratively (Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public static synthetic fun firstClassDefDeclaratively$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public final fun firstClassDefDeclarativelyOrNull (Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public static synthetic fun firstClassDefDeclarativelyOrNull$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public final fun firstClassDefOrNull (Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; - public final fun firstClassDefOrNull (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public static synthetic fun firstClassDefOrNull$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; - public static synthetic fun firstClassDefOrNull$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/ClassDef; public final fun firstMutableClassDef (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableClassDef; public static synthetic fun firstMutableClassDef$default (Lapp/revanced/patcher/IterableClassDefClassDefMatching;Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/mutable/MutableClassDef; public final fun firstMutableClassDefDeclaratively (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableClassDef; @@ -224,14 +222,16 @@ public final class app/revanced/patcher/IterableMethodMethodMatching { public final fun firstMethod (Ljava/lang/Iterable;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMethod (Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; public static synthetic fun firstMethod$default (Lapp/revanced/patcher/IterableMethodMethodMatching;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/Method; - public final fun firstMethodDeclaratively (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; - public final fun firstMethodDeclarativelyOrNull (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; + public final fun firstMethodDeclaratively (Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; + public final fun firstMethodDeclarativelyOrNull (Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMethodOrNull (Ljava/lang/Iterable;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMethodOrNull (Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/iface/Method; public static synthetic fun firstMethodOrNull$default (Lapp/revanced/patcher/IterableMethodMethodMatching;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/iface/Method; public final fun firstMutableMethod (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; public final fun firstMutableMethod (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; public static synthetic fun firstMutableMethod$default (Lapp/revanced/patcher/IterableMethodMethodMatching;Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public final fun firstMutableMethodDeclaratively (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; + public final fun firstMutableMethodDeclarativelyOrNull (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; public final fun firstMutableMethodOrNull (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;Lcom/android/tools/smali/dexlib2/iface/reference/MethodReference;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; public final fun firstMutableMethodOrNull (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; public static synthetic fun firstMutableMethodOrNull$default (Lapp/revanced/patcher/IterableMethodMethodMatching;Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/Iterable;[Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/android/tools/smali/dexlib2/mutable/MutableMethod; diff --git a/patcher/src/commonMain/kotlin/app/revanced/patcher/Matching.kt b/patcher/src/commonMain/kotlin/app/revanced/patcher/Matching.kt index e07a5cd..579810a 100644 --- a/patcher/src/commonMain/kotlin/app/revanced/patcher/Matching.kt +++ b/patcher/src/commonMain/kotlin/app/revanced/patcher/Matching.kt @@ -11,6 +11,7 @@ import app.revanced.patcher.IterableClassDefClassDefMatching.firstClassDefOrNull import app.revanced.patcher.IterableClassDefMethodMatching.firstMethodOrNull import app.revanced.patcher.IterableMethodMethodMatching.firstMethodDeclarativelyOrNull import app.revanced.patcher.IterableMethodMethodMatching.firstMethodOrNull +import app.revanced.patcher.IterableMethodMethodMatching.firstMutableMethodDeclarativelyOrNull import app.revanced.patcher.IterableMethodMethodMatching.firstMutableMethodOrNull import app.revanced.patcher.extensions.* import app.revanced.patcher.patch.BytecodePatchContext @@ -152,8 +153,7 @@ object IterableMethodMethodMatching { vararg strings: String, predicate: MethodPredicate = { true }, ) = firstMethodOrNull( - strings = strings, - predicate + strings = strings, predicate )?.let { BytecodePatchContextMethodMatching.firstMutableMethod(it) } context(_: BytecodePatchContext) @@ -163,12 +163,22 @@ object IterableMethodMethodMatching { ) = requireNotNull(firstMutableMethodOrNull(strings = strings, predicate)) fun Iterable.firstMethodDeclarativelyOrNull( - predicate: DeclarativePredicate - ) = firstMethodOrNull { rememberDeclarativePredicate(predicate) } + vararg strings: String, predicate: DeclarativePredicate + ) = firstMethodOrNull(strings = strings) { rememberDeclarativePredicate(predicate) } fun Iterable.firstMethodDeclaratively( - predicate: DeclarativePredicate - ) = requireNotNull(firstMethodDeclarativelyOrNull(predicate)) + vararg strings: String, predicate: DeclarativePredicate + ) = requireNotNull(firstMethodDeclarativelyOrNull(strings = strings, predicate)) + + context(_: BytecodePatchContext) + fun Iterable.firstMutableMethodDeclarativelyOrNull( + vararg strings: String, predicate: DeclarativePredicate + ) = firstMutableMethodOrNull(strings = strings) { rememberDeclarativePredicate(predicate) } + + context(_: BytecodePatchContext) + fun Iterable.firstMutableMethodDeclaratively( + vararg strings: String, predicate: DeclarativePredicate + ) = requireNotNull(firstMutableMethodDeclarativelyOrNull(strings = strings, predicate)) } object IterableClassDefMethodMatching { @@ -214,8 +224,7 @@ object IterableClassDefMethodMatching { vararg strings: String, predicate: MethodPredicate = { true }, ) = firstMethodOrNull( - strings = strings, - predicate + strings = strings, predicate )?.let { BytecodePatchContextMethodMatching.firstMutableMethod(it) } context(_: BytecodePatchContext) @@ -267,14 +276,6 @@ object ClassDefMethodMatching { methodReference: MethodReference ) = requireNotNull(firstMutableMethodOrNull(methodReference)) - fun ClassDef.firstMethodOrNull( - predicate: MethodPredicate = { true }, - ) = methods.firstMethodOrNull(strings = emptyArray(), predicate) - - fun ClassDef.firstMethod( - predicate: MethodPredicate = { true }, - ) = requireNotNull(firstMethodOrNull(predicate)) - fun ClassDef.firstMethodOrNull( vararg strings: String, predicate: MethodPredicate = { true }, @@ -285,28 +286,48 @@ object ClassDefMethodMatching { predicate: MethodPredicate = { true }, ) = requireNotNull(firstMethodOrNull(strings = strings, predicate)) + context(_: BytecodePatchContext) + fun ClassDef.firstMutableMethodOrNull( + vararg strings: String, + predicate: MethodPredicate = { true }, + ) = methods.firstMutableMethodOrNull(strings = strings, predicate) + + context(_: BytecodePatchContext) + fun ClassDef.firstMutableMethod( + vararg strings: String, + predicate: MethodPredicate = { true }, + ) = requireNotNull(firstMutableMethodOrNull(strings = strings, predicate)) + fun ClassDef.firstMethodDeclarativelyOrNull( + vararg strings: String, predicate: DeclarativePredicate - ) = methods.firstMethodDeclarativelyOrNull(predicate) + ) = methods.firstMethodDeclarativelyOrNull(strings = strings, predicate) fun ClassDef.firstMethodDeclaratively( + vararg strings: String, predicate: DeclarativePredicate - ) = requireNotNull(firstMethodDeclarativelyOrNull(predicate)) + ) = requireNotNull(firstMethodDeclarativelyOrNull(strings = strings, predicate)) + + context(_: BytecodePatchContext) + fun ClassDef.firstMutableMethodDeclarativelyOrNull( + vararg strings: String, + predicate: DeclarativePredicate + ) = methods.firstMutableMethodDeclarativelyOrNull(strings = strings, predicate) + + context(_: BytecodePatchContext) + fun ClassDef.firstMutableMethodDeclaratively( + vararg strings: String, + predicate: DeclarativePredicate + ) = requireNotNull(firstMutableMethodDeclarativelyOrNull(strings = strings, predicate)) } object IterableClassDefClassDefMatching { - fun Iterable.firstClassDefOrNull( - predicate: ClassDefPredicate = { true } - ) = withPredicateContext { firstOrNull { it.predicate() } } - - fun Iterable.firstClassDef( - predicate: ClassDefPredicate = { true } - ) = requireNotNull(firstClassDefOrNull(predicate)) - fun Iterable.firstClassDefOrNull( type: String? = null, predicate: ClassDefPredicate = { true } - ) = if (type == null) firstClassDefOrNull(predicate) - else withPredicateContext { firstOrNull { it.type == type && it.predicate() } } + ) = withPredicateContext { + if (type == null) firstOrNull { it.predicate() } + else firstOrNull { it.type == type && it.predicate() } + } fun Iterable.firstClassDef( type: String? = null, predicate: ClassDefPredicate = { true } @@ -315,7 +336,10 @@ object IterableClassDefClassDefMatching { context(context: BytecodePatchContext) fun Iterable.firstMutableClassDefOrNull( type: String? = null, predicate: ClassDefPredicate = { true } - ) = firstClassDefOrNull(type, predicate)?.let { context.classDefs.getOrReplaceMutable(it) } + ) = if (type == null) firstClassDefOrNull(type, predicate) + else { + context.classDefs[type].takeIf { withPredicateContext { it?.predicate() == true } } + }?.let { context.classDefs.getOrReplaceMutable(it) } context(_: BytecodePatchContext) fun Iterable.firstMutableClassDef( @@ -357,8 +381,7 @@ object BytecodePatchContextMethodMatching { methodReference: MethodReference ): MutableMethod? = firstMutableClassDefOrNull(methodReference.definingClass)?.methods?.first { MethodUtil.methodSignaturesMatch( - methodReference, - it + methodReference, it ) } @@ -459,23 +482,19 @@ object BytecodePatchContextMethodMatching { ) = requireNotNull(firstMutableMethodDeclarativelyOrNull(strings = strings, predicate)) fun gettingFirstMethodDeclarativelyOrNull( - vararg strings: String, - predicate: BytecodePatchContextDeclarativePredicate = { } + vararg strings: String, predicate: BytecodePatchContextDeclarativePredicate = { } ) = gettingFirstMethodOrNull(strings = strings) { rememberDeclarativePredicate { predicate() } } fun gettingFirstMethodDeclaratively( - vararg strings: String, - predicate: BytecodePatchContextDeclarativePredicate = { } + vararg strings: String, predicate: BytecodePatchContextDeclarativePredicate = { } ) = gettingFirstMethod(strings = strings) { rememberDeclarativePredicate { predicate() } } fun gettingFirstMutableMethodDeclarativelyOrNull( - vararg strings: String, - predicate: BytecodePatchContextDeclarativePredicate = { } + vararg strings: String, predicate: BytecodePatchContextDeclarativePredicate = { } ) = gettingFirstMutableMethodOrNull(strings = strings) { rememberDeclarativePredicate { predicate() } } fun gettingFirstMutableMethodDeclaratively( - vararg strings: String, - predicate: BytecodePatchContextDeclarativePredicate = { } + vararg strings: String, predicate: BytecodePatchContextDeclarativePredicate = { } ) = gettingFirstMutableMethod(strings = strings) { rememberDeclarativePredicate { predicate() } } } @@ -483,10 +502,8 @@ object BytecodePatchContextClassDefMatching { context(context: BytecodePatchContext) fun firstClassDefOrNull( type: String? = null, predicate: ClassDefPredicate = { true } - ) = withPredicateContext { - if (type == null) context.classDefs.firstClassDefOrNull(predicate) - else context.classDefs[type]?.takeIf { it.predicate() } - } + ) = if (type == null) context.classDefs.firstClassDefOrNull(type, predicate) + else withPredicateContext { context.classDefs[type]?.takeIf { it.predicate() } } context(_: BytecodePatchContext) fun firstClassDef( @@ -509,7 +526,7 @@ object BytecodePatchContextClassDefMatching { fun gettingFirstClassDef( type: String? = null, predicate: BytecodePatchContextClassDefPredicate = { true } - ) = requireNotNull(gettingFirstClassDefOrNull(type) { predicate() }) + ) = cachedReadOnlyProperty { firstClassDef(type) { predicate() } } fun gettingFirstMutableClassDefOrNull( type: String? = null, predicate: BytecodePatchContextClassDefPredicate = { true } @@ -517,7 +534,7 @@ object BytecodePatchContextClassDefMatching { fun gettingFirstMutableClassDef( type: String? = null, predicate: BytecodePatchContextClassDefPredicate = { true } - ) = requireNotNull(gettingFirstMutableClassDefOrNull(type, predicate)) + ) = cachedReadOnlyProperty { firstMutableClassDef(type) { predicate() } } context(_: BytecodePatchContext) fun firstClassDefDeclarativelyOrNull( @@ -527,7 +544,7 @@ object BytecodePatchContextClassDefMatching { context(_: BytecodePatchContext) fun firstClassDefDeclaratively( type: String? = null, predicate: DeclarativePredicate = { } - ) = requireNotNull(firstClassDefDeclarativelyOrNull(type, predicate)) + ) = firstClassDef(type) { rememberDeclarativePredicate(predicate) } context(_: BytecodePatchContext) fun firstMutableClassDefDeclarativelyOrNull( @@ -537,23 +554,24 @@ object BytecodePatchContextClassDefMatching { context(_: BytecodePatchContext) fun firstMutableClassDefDeclaratively( type: String? = null, predicate: DeclarativePredicate = { } - ) = requireNotNull(firstMutableClassDefDeclarativelyOrNull(type, predicate)) + ) = firstMutableClassDef(type) { rememberDeclarativePredicate(predicate) } fun gettingFirstClassDefDeclarativelyOrNull( type: String? = null, predicate: BytecodePatchContextDeclarativePredicate = { } - ) = cachedReadOnlyProperty { firstClassDefDeclarativelyOrNull(type) { predicate() } } + ) = gettingFirstClassDefOrNull { rememberDeclarativePredicate { predicate() } } fun gettingFirstClassDefDeclaratively( type: String? = null, predicate: BytecodePatchContextDeclarativePredicate = { } - ) = requireNotNull(gettingFirstClassDefDeclarativelyOrNull(type) { predicate() }) + ) = gettingFirstClassDef { rememberDeclarativePredicate { predicate() } } fun gettingFirstMutableClassDefDeclarativelyOrNull( type: String? = null, predicate: BytecodePatchContextDeclarativePredicate = { } - ) = cachedReadOnlyProperty { firstMutableClassDefDeclarativelyOrNull(type) { predicate() } } + ) = gettingFirstMutableClassDefOrNull { rememberDeclarativePredicate { predicate() } } fun gettingFirstMutableClassDefDeclaratively( type: String? = null, predicate: BytecodePatchContextDeclarativePredicate = { } - ) = requireNotNull(gettingFirstMutableClassDefDeclarativelyOrNull(type) { predicate() }) + ) = gettingFirstMutableClassDef { rememberDeclarativePredicate { predicate() } } + } class PredicateContext internal constructor() : MutableMap by mutableMapOf() @@ -920,8 +938,7 @@ typealias BuildCompositeDeclarativePredicate = context(BytecodePatchCont MutablePredicateList.() -> Unit fun firstMethodComposite( - vararg strings: String, - build: BuildCompositeDeclarativePredicate + vararg strings: String, build: BuildCompositeDeclarativePredicate ) = MatchBuilder(strings = strings, build) class MatchBuilder private constructor( @@ -931,8 +948,7 @@ class MatchBuilder private constructor( ) { internal constructor( - vararg strings: String, - build: BuildCompositeDeclarativePredicate + vararg strings: String, build: BuildCompositeDeclarativePredicate ) : this(strings = mutableListOf(elements = strings), indexedMatcher(), build) private val predicate: BytecodePatchContextDeclarativePredicate = { @@ -942,8 +958,7 @@ class MatchBuilder private constructor( val indices = indexedMatcher.indices private val BytecodePatchContext.cachedImmutableMethodOrNull by gettingFirstMethodDeclarativelyOrNull( - strings = strings.toTypedArray(), - predicate + strings = strings.toTypedArray(), predicate ) private val BytecodePatchContext.cachedImmutableClassDefOrNull by cachedReadOnlyProperty { @@ -986,9 +1001,7 @@ class MatchBuilder private constructor( context(context: BytecodePatchContext) fun match(classDef: ClassDef) = Match( - context, - classDef.firstMethodDeclarativelyOrNull { predicate() }, - indices.toList() + context, classDef.firstMethodDeclarativelyOrNull { predicate() }, indices.toList() ) }