From 04ba11db12163d101d8bb6c4381cb69ae38a3e84 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Tue, 24 Jan 2023 20:56:33 +0800 Subject: [PATCH] Add newInstanceSpecial --- .../io/github/libxposed/api/XposedContextWrapper.java | 8 +++++++- .../java/io/github/libxposed/api/XposedInterface.java | 8 ++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/io/github/libxposed/api/XposedContextWrapper.java b/api/src/main/java/io/github/libxposed/api/XposedContextWrapper.java index 4a015b3..9b378d6 100644 --- a/api/src/main/java/io/github/libxposed/api/XposedContextWrapper.java +++ b/api/src/main/java/io/github/libxposed/api/XposedContextWrapper.java @@ -226,12 +226,18 @@ public class XposedContextWrapper extends ContextWrapper implements XposedInterf return getBaseContext().invokeSpecial(method, thisObject, args); } - @Nullable + @NonNull @Override public T newInstanceOrigin(@NonNull Constructor constructor, Object... args) throws InvocationTargetException, IllegalArgumentException, IllegalAccessException, InstantiationException { return getBaseContext().newInstanceOrigin(constructor, args); } + @NonNull + @Override + public U newInstanceSpecial(@NonNull Constructor constructor, @NonNull Class subClass, Object... args) throws InvocationTargetException, IllegalArgumentException, IllegalAccessException, InstantiationException { + return getBaseContext().newInstanceSpecial(constructor, subClass, args); + } + /** * {@inheritDoc} */ diff --git a/api/src/main/java/io/github/libxposed/api/XposedInterface.java b/api/src/main/java/io/github/libxposed/api/XposedInterface.java index fbb935e..3f6677c 100644 --- a/api/src/main/java/io/github/libxposed/api/XposedInterface.java +++ b/api/src/main/java/io/github/libxposed/api/XposedInterface.java @@ -131,7 +131,7 @@ public interface XposedInterface { * @throws IllegalAccessException the illegal access exception */ @Nullable - Object invokeOrigin() throws InvocationTargetException, IllegalAccessException; + Object invokeOrigin() throws InvocationTargetException, IllegalArgumentException, IllegalAccessException; /** * Sets extra. @@ -539,9 +539,13 @@ public interface XposedInterface { * @throws InvocationTargetException the invocation target exception * @throws IllegalAccessException the illegal access exception */ - @Nullable + @NonNull T newInstanceOrigin(@NonNull Constructor constructor, Object... args) throws InvocationTargetException, IllegalArgumentException, IllegalAccessException, InstantiationException; + + @NonNull + U newInstanceSpecial(@NonNull Constructor constructor, @NonNull Class subClass, Object... args) throws InvocationTargetException, IllegalArgumentException, IllegalAccessException, InstantiationException; + /** * Log. *