Refine XposedResources
This commit is contained in:
parent
a922ae9e6c
commit
39178b1dad
|
|
@ -66,7 +66,7 @@ import de.robv.android.xposed.XposedInit;
|
||||||
import de.robv.android.xposed.callbacks.XC_LayoutInflated;
|
import de.robv.android.xposed.callbacks.XC_LayoutInflated;
|
||||||
import de.robv.android.xposed.callbacks.XC_LayoutInflated.LayoutInflatedParam;
|
import de.robv.android.xposed.callbacks.XC_LayoutInflated.LayoutInflatedParam;
|
||||||
import de.robv.android.xposed.callbacks.XCallback;
|
import de.robv.android.xposed.callbacks.XCallback;
|
||||||
import xposed.dummy.XResourcesSuperClass;
|
import io.github.libxposed.XposedResources;
|
||||||
import xposed.dummy.XTypedArraySuperClass;
|
import xposed.dummy.XTypedArraySuperClass;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -77,7 +77,7 @@ import xposed.dummy.XTypedArraySuperClass;
|
||||||
* be set using the methods made available via the API methods in this class.
|
* be set using the methods made available via the API methods in this class.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("JniMissingFunction")
|
@SuppressWarnings("JniMissingFunction")
|
||||||
public class XResources extends XResourcesSuperClass {
|
public class XResources extends XposedResources {
|
||||||
private static final SparseArray<HashMap<String, Object>> sReplacements = new SparseArray<>();
|
private static final SparseArray<HashMap<String, Object>> sReplacements = new SparseArray<>();
|
||||||
private static final SparseArray<HashMap<String, ResourceNames>> sResourceNames = new SparseArray<>();
|
private static final SparseArray<HashMap<String, ResourceNames>> sResourceNames = new SparseArray<>();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,9 +58,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import de.robv.android.xposed.callbacks.XC_InitPackageResources;
|
import de.robv.android.xposed.callbacks.XC_InitPackageResources;
|
||||||
import de.robv.android.xposed.callbacks.XCallback;
|
import de.robv.android.xposed.callbacks.XCallback;
|
||||||
import hidden.HiddenApiBridge;
|
import hidden.HiddenApiBridge;
|
||||||
import io.github.libxposed.XposedInterface;
|
|
||||||
import io.github.libxposed.XposedModuleInterface;
|
import io.github.libxposed.XposedModuleInterface;
|
||||||
import io.github.libxposed.XposedResource;
|
|
||||||
|
|
||||||
public final class XposedInit {
|
public final class XposedInit {
|
||||||
private static final String TAG = XposedBridge.TAG;
|
private static final String TAG = XposedBridge.TAG;
|
||||||
|
|
@ -200,7 +198,7 @@ public final class XposedInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Replace the returned resources with our subclass.
|
// Replace the returned resources with our subclass.
|
||||||
var newRes = new XposedResource(
|
var newRes = new XResources(
|
||||||
(ClassLoader) XposedHelpers.getObjectField(param.getResult(), "mClassLoader"));
|
(ClassLoader) XposedHelpers.getObjectField(param.getResult(), "mClassLoader"));
|
||||||
HiddenApiBridge.Resources_setImpl(newRes, (ResourcesImpl) XposedHelpers.getObjectField(param.getResult(), "mResourcesImpl"));
|
HiddenApiBridge.Resources_setImpl(newRes, (ResourcesImpl) XposedHelpers.getObjectField(param.getResult(), "mResourcesImpl"));
|
||||||
newRes.initObject(resDir);
|
newRes.initObject(resDir);
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ public interface XposedModuleInterface {
|
||||||
|
|
||||||
class ResourceLoadedParam {
|
class ResourceLoadedParam {
|
||||||
public String packageName;
|
public String packageName;
|
||||||
public XposedResource res;
|
public XposedResources res;
|
||||||
}
|
}
|
||||||
|
|
||||||
default void onPackageLoaded(@NonNull PackageLoadedParam param, @Nullable Bundle extra) {
|
default void onPackageLoaded(@NonNull PackageLoadedParam param, @Nullable Bundle extra) {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
package io.github.libxposed;
|
|
||||||
|
|
||||||
import android.content.res.XResources;
|
|
||||||
|
|
||||||
public class XposedResource extends XResources {
|
|
||||||
public XposedResource(ClassLoader classLoader) {
|
|
||||||
super(classLoader);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package io.github.libxposed;
|
||||||
|
|
||||||
|
import xposed.dummy.XResourcesSuperClass;
|
||||||
|
|
||||||
|
public abstract class XposedResources extends XResourcesSuperClass {
|
||||||
|
/** Dummy, will never be called (objects are transferred to this class only). */
|
||||||
|
protected XposedResources() {
|
||||||
|
super();
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected XposedResources(ClassLoader classLoader) {
|
||||||
|
super(classLoader);
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue