Loading packages/SystemUI/src/com/android/systemui/plugins/PluginManagerImpl.java +5 −6 Original line number Diff line number Diff line Loading @@ -59,7 +59,6 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage private static PluginManager sInstance; private final HandlerThread mBackgroundThread; private final ArrayMap<PluginListener<?>, PluginInstanceManager> mPluginMap = new ArrayMap<>(); private final Map<String, ClassLoader> mClassLoaders = new ArrayMap<>(); Loading @@ -71,6 +70,7 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage private ClassLoaderFilter mParentClassLoader; private boolean mListening; private boolean mHasOneShot; private Looper mLooper; public PluginManagerImpl(Context context) { this(context, new PluginInstanceManagerFactory(), Loading @@ -82,8 +82,7 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage UncaughtExceptionHandler defaultHandler) { mContext = context; mFactory = factory; mBackgroundThread = new HandlerThread("Plugins"); mBackgroundThread.start(); mLooper = Dependency.get(Dependency.BG_LOOPER); isDebuggable = debuggable; mPluginPrefs = new PluginPrefs(mContext); Loading @@ -91,7 +90,7 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage defaultHandler); Thread.setDefaultUncaughtExceptionHandler(uncaughtExceptionHandler); if (isDebuggable) { new Handler(mBackgroundThread.getLooper()).post(() -> { new Handler(mLooper).post(() -> { // Plugin dependencies that don't have another good home can go here, but // dependencies that have better places to init can happen elsewhere. Dependency.get(PluginDependencyProvider.class) Loading Loading @@ -120,7 +119,7 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage throw new RuntimeException("Must be called from UI thread"); } PluginInstanceManager<T> p = mFactory.createPluginInstanceManager(mContext, action, null, false, mBackgroundThread.getLooper(), cls, this); false, mLooper, cls, this); mPluginPrefs.addAction(action); PluginInfo<T> info = p.getPlugin(); if (info != null) { Loading Loading @@ -154,7 +153,7 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage } mPluginPrefs.addAction(action); PluginInstanceManager p = mFactory.createPluginInstanceManager(mContext, action, listener, allowMultiple, mBackgroundThread.getLooper(), cls, this); allowMultiple, mLooper, cls, this); p.loadAll(); mPluginMap.put(listener, p); startListening(); Loading packages/SystemUI/tests/src/com/android/systemui/plugins/PluginManagerTest.java +10 −2 Original line number Diff line number Diff line Loading @@ -29,13 +29,18 @@ import android.net.Uri; import android.support.test.annotation.UiThreadTest; import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; import com.android.systemui.Dependency; import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.annotations.ProvidesInterface; import com.android.systemui.plugins.PluginInstanceManager.PluginInfo; import com.android.systemui.plugins.PluginManagerImpl.PluginInstanceManagerFactory; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -45,7 +50,8 @@ import org.mockito.Mockito; import java.lang.Thread.UncaughtExceptionHandler; @SmallTest @RunWith(AndroidJUnit4.class) @RunWith(AndroidTestingRunner.class) @RunWithLooper public class PluginManagerTest extends SysuiTestCase { private PluginInstanceManagerFactory mMockFactory; Loading @@ -59,6 +65,8 @@ public class PluginManagerTest extends SysuiTestCase { @Before public void setup() throws Exception { mDependency.injectTestDependency(Dependency.BG_LOOPER, TestableLooper.get(this).getLooper()); mRealExceptionHandler = Thread.getDefaultUncaughtExceptionHandler(); mMockExceptionHandler = mock(UncaughtExceptionHandler.class); mMockFactory = mock(PluginInstanceManagerFactory.class); Loading @@ -72,7 +80,7 @@ public class PluginManagerTest extends SysuiTestCase { mMockListener = mock(PluginListener.class); } @UiThreadTest @RunWithLooper(setAsMainLooper = true) @Test public void testOneShot() { Plugin mockPlugin = mock(Plugin.class); Loading Loading
packages/SystemUI/src/com/android/systemui/plugins/PluginManagerImpl.java +5 −6 Original line number Diff line number Diff line Loading @@ -59,7 +59,6 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage private static PluginManager sInstance; private final HandlerThread mBackgroundThread; private final ArrayMap<PluginListener<?>, PluginInstanceManager> mPluginMap = new ArrayMap<>(); private final Map<String, ClassLoader> mClassLoaders = new ArrayMap<>(); Loading @@ -71,6 +70,7 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage private ClassLoaderFilter mParentClassLoader; private boolean mListening; private boolean mHasOneShot; private Looper mLooper; public PluginManagerImpl(Context context) { this(context, new PluginInstanceManagerFactory(), Loading @@ -82,8 +82,7 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage UncaughtExceptionHandler defaultHandler) { mContext = context; mFactory = factory; mBackgroundThread = new HandlerThread("Plugins"); mBackgroundThread.start(); mLooper = Dependency.get(Dependency.BG_LOOPER); isDebuggable = debuggable; mPluginPrefs = new PluginPrefs(mContext); Loading @@ -91,7 +90,7 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage defaultHandler); Thread.setDefaultUncaughtExceptionHandler(uncaughtExceptionHandler); if (isDebuggable) { new Handler(mBackgroundThread.getLooper()).post(() -> { new Handler(mLooper).post(() -> { // Plugin dependencies that don't have another good home can go here, but // dependencies that have better places to init can happen elsewhere. Dependency.get(PluginDependencyProvider.class) Loading Loading @@ -120,7 +119,7 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage throw new RuntimeException("Must be called from UI thread"); } PluginInstanceManager<T> p = mFactory.createPluginInstanceManager(mContext, action, null, false, mBackgroundThread.getLooper(), cls, this); false, mLooper, cls, this); mPluginPrefs.addAction(action); PluginInfo<T> info = p.getPlugin(); if (info != null) { Loading Loading @@ -154,7 +153,7 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage } mPluginPrefs.addAction(action); PluginInstanceManager p = mFactory.createPluginInstanceManager(mContext, action, listener, allowMultiple, mBackgroundThread.getLooper(), cls, this); allowMultiple, mLooper, cls, this); p.loadAll(); mPluginMap.put(listener, p); startListening(); Loading
packages/SystemUI/tests/src/com/android/systemui/plugins/PluginManagerTest.java +10 −2 Original line number Diff line number Diff line Loading @@ -29,13 +29,18 @@ import android.net.Uri; import android.support.test.annotation.UiThreadTest; import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; import com.android.systemui.Dependency; import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.annotations.ProvidesInterface; import com.android.systemui.plugins.PluginInstanceManager.PluginInfo; import com.android.systemui.plugins.PluginManagerImpl.PluginInstanceManagerFactory; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -45,7 +50,8 @@ import org.mockito.Mockito; import java.lang.Thread.UncaughtExceptionHandler; @SmallTest @RunWith(AndroidJUnit4.class) @RunWith(AndroidTestingRunner.class) @RunWithLooper public class PluginManagerTest extends SysuiTestCase { private PluginInstanceManagerFactory mMockFactory; Loading @@ -59,6 +65,8 @@ public class PluginManagerTest extends SysuiTestCase { @Before public void setup() throws Exception { mDependency.injectTestDependency(Dependency.BG_LOOPER, TestableLooper.get(this).getLooper()); mRealExceptionHandler = Thread.getDefaultUncaughtExceptionHandler(); mMockExceptionHandler = mock(UncaughtExceptionHandler.class); mMockFactory = mock(PluginInstanceManagerFactory.class); Loading @@ -72,7 +80,7 @@ public class PluginManagerTest extends SysuiTestCase { mMockListener = mock(PluginListener.class); } @UiThreadTest @RunWithLooper(setAsMainLooper = true) @Test public void testOneShot() { Plugin mockPlugin = mock(Plugin.class); Loading