diff options
| -rw-r--r-- | packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginInstance.java | 2 | ||||
| -rw-r--r-- | packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginManagerImpl.java | 14 |
2 files changed, 10 insertions, 6 deletions
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginInstance.java b/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginInstance.java index 016d573930e8..4a665621b3fe 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginInstance.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginInstance.java @@ -230,7 +230,7 @@ public class PluginInstance<T extends Plugin> implements PluginLifecycleManager private ClassLoader getParentClassLoader(ClassLoader baseClassLoader) { return new PluginManagerImpl.ClassLoaderFilter( - baseClassLoader, "com.android.systemui.plugin"); + baseClassLoader, "com.android.systemui.log", "com.android.systemui.plugin"); } /** Returns class loader specific for the given plugin. */ diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginManagerImpl.java b/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginManagerImpl.java index 2f9f5b2ac938..1e668b84cdc6 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginManagerImpl.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginManagerImpl.java @@ -248,19 +248,23 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage // This allows plugins to include any libraries or copied code they want by only including // classes from the plugin library. static class ClassLoaderFilter extends ClassLoader { - private final String mPackage; + private final String[] mPackages; private final ClassLoader mBase; - public ClassLoaderFilter(ClassLoader base, String pkg) { + ClassLoaderFilter(ClassLoader base, String... pkgs) { super(ClassLoader.getSystemClassLoader()); mBase = base; - mPackage = pkg; + mPackages = pkgs; } @Override protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { - if (!name.startsWith(mPackage)) super.loadClass(name, resolve); - return mBase.loadClass(name); + for (String pkg : mPackages) { + if (name.startsWith(pkg)) { + return mBase.loadClass(name); + } + } + return super.loadClass(name, resolve); } } |