diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/PluginActivity.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/PluginActivity.java deleted file mode 100644 index 925214e3ab3a9..0000000000000 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/PluginActivity.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the - * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -package com.android.systemui.plugins; - -import android.app.Activity; -import android.content.Context; -import android.content.res.Resources; -import android.os.Bundle; - -import com.android.systemui.plugins.annotations.ProvidesInterface; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -/** - * A PluginActivity is an activity that replaces another full activity (e.g. RecentsActivity) - * at runtime within the sysui process. - */ -@ProvidesInterface(version = PluginActivity.VERSION) -public abstract class PluginActivity extends Activity implements Plugin { - - public static final int VERSION = 1; - - public static final String ACTION_RECENTS = "com.android.systemui.action.PLUGIN_RECENTS"; - - private Context mSysuiContext; - private boolean mSettingActionBar; - - @Override - public final void onCreate(Context sysuiContext, Context pluginContext) { - mSysuiContext = sysuiContext; - super.attachBaseContext(pluginContext); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Theme theme = getClass().getDeclaredAnnotation(Theme.class); - if (theme != null && theme.value() != 0) { - setTheme(theme.value()); - } - mSettingActionBar = true; - getActionBar(); - mSettingActionBar = false; - } - - @Override - public Resources getResources() { - return mSettingActionBar ? mSysuiContext.getResources() : super.getResources(); - } - - @Override - protected void attachBaseContext(Context newBase) { - mSysuiContext = newBase; - } - - @Override - public void onDestroy() { - super.onDestroy(); - } - - public Context getSysuiContext() { - return mSysuiContext; - } - - public Context getPluginContext() { - return getBaseContext(); - } - - /** - * Since PluginActivities are declared as services instead of activities (since they - * are plugins), they can't have a theme attached to them. Instead a PluginActivity - * can annotate itself with @Theme to specify the resource of the style it wants - * to be themed with. - */ - @Retention(RetentionPolicy.RUNTIME) - public @interface Theme { - int value(); - } -} diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/PluginDependency.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/PluginDependency.java index db2e3765d2d01..25ce3ddf8169e 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/PluginDependency.java +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/PluginDependency.java @@ -21,11 +21,6 @@ public class PluginDependency { public static final int VERSION = 1; static DependencyProvider sProvider; - /** - * Allows a plugin to get a hold of static dependencies if they have declared dependence - * on their interface. For one-shot plugins this will only work during onCreate and will - * not work afterwards. - */ public static T get(Plugin p, Class cls) { return sProvider.get(p, cls); } diff --git a/packages/SystemUI/src/com/android/systemui/Dependency.java b/packages/SystemUI/src/com/android/systemui/Dependency.java index ecc2111366671..49253ec536cd9 100644 --- a/packages/SystemUI/src/com/android/systemui/Dependency.java +++ b/packages/SystemUI/src/com/android/systemui/Dependency.java @@ -34,7 +34,6 @@ import com.android.systemui.fragments.FragmentService; import com.android.systemui.keyguard.ScreenLifecycle; import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.plugins.ActivityStarter; -import com.android.systemui.plugins.PluginActivityManager; import com.android.systemui.plugins.PluginDependencyProvider; import com.android.systemui.plugins.PluginManager; import com.android.systemui.plugins.PluginManagerImpl; @@ -295,8 +294,6 @@ public class Dependency extends SystemUI { mProviders.put(UiOffloadThread.class, UiOffloadThread::new); - mProviders.put(PluginActivityManager.class, - () -> new PluginActivityManager(mContext, getDependency(PluginManager.class))); mProviders.put(PowerUI.WarningsUI.class, () -> new PowerNotificationWarnings(mContext)); diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java index 49a076f07a254..9adafda7adf5d 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java @@ -16,7 +16,6 @@ package com.android.systemui; -import android.app.Activity; import android.app.ActivityThread; import android.app.Application; import android.content.BroadcastReceiver; @@ -41,7 +40,6 @@ import com.android.systemui.pip.PipUI; import com.android.systemui.plugins.GlobalActions; import com.android.systemui.plugins.OverlayPlugin; import com.android.systemui.plugins.Plugin; -import com.android.systemui.plugins.PluginActivityManager; import com.android.systemui.plugins.PluginListener; import com.android.systemui.plugins.PluginManager; import com.android.systemui.power.PowerUI; @@ -281,10 +279,4 @@ public class SystemUIApplication extends Application implements SysUiServiceProv public SystemUI[] getServices() { return mServices; } - - @Override - public Activity instantiateActivity(ClassLoader cl, String className, Intent intent) { - if (!mServicesStarted) return null; - return Dependency.get(PluginActivityManager.class).instantiate(cl, className, intent); - } } diff --git a/packages/SystemUI/src/com/android/systemui/plugins/PluginActivityManager.java b/packages/SystemUI/src/com/android/systemui/plugins/PluginActivityManager.java deleted file mode 100644 index 9becc38d760e9..0000000000000 --- a/packages/SystemUI/src/com/android/systemui/plugins/PluginActivityManager.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the - * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -package com.android.systemui.plugins; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.text.TextUtils; -import android.util.ArrayMap; - -public class PluginActivityManager { - - private final Context mContext; - private final PluginManager mPluginManager; - private final ArrayMap mActionLookup = new ArrayMap<>(); - - public PluginActivityManager(Context context, PluginManager pluginManager) { - mContext = context; - mPluginManager = pluginManager; - } - - public void addActivityPlugin(String className, String action) { - mActionLookup.put(className, action); - } - - public Activity instantiate(ClassLoader cl, String className, Intent intent) { - String action = mActionLookup.get(className); - if (TextUtils.isEmpty(action)) return null; - return mPluginManager.getOneShotPlugin(action, PluginActivity.class); - } -} diff --git a/packages/SystemUI/src/com/android/systemui/plugins/PluginManagerImpl.java b/packages/SystemUI/src/com/android/systemui/plugins/PluginManagerImpl.java index a96839943cad5..493d244f5e991 100644 --- a/packages/SystemUI/src/com/android/systemui/plugins/PluginManagerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/plugins/PluginManagerImpl.java @@ -42,6 +42,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; import com.android.systemui.Dependency; import com.android.systemui.plugins.PluginInstanceManager.PluginContextWrapper; +import com.android.systemui.plugins.PluginInstanceManager.PluginInfo; import com.android.systemui.plugins.annotations.ProvidesInterface; import dalvik.system.PathClassLoader; @@ -119,21 +120,14 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage } PluginInstanceManager p = mFactory.createPluginInstanceManager(mContext, action, null, false, mLooper, cls, this); - PluginListener listener = new PluginListener() { - @Override - public void onPluginConnected(Plugin plugin, Context pluginContext) { } - }; - mPluginMap.put(listener, p); mPluginPrefs.addAction(action); - PluginInstanceManager.PluginInfo info = p.getPlugin(); + PluginInfo info = p.getPlugin(); if (info != null) { mOneShotPackages.add(info.mPackage); mHasOneShot = true; startListening(); - mPluginMap.remove(listener); return info.mPlugin; } - mPluginMap.remove(listener); return null; } diff --git a/packages/SystemUI/src/com/android/systemui/recents/Recents.java b/packages/SystemUI/src/com/android/systemui/recents/Recents.java index d10e080a54435..4a8b43ec62db6 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/Recents.java +++ b/packages/SystemUI/src/com/android/systemui/recents/Recents.java @@ -43,14 +43,11 @@ import android.widget.Toast; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; -import com.android.systemui.Dependency; import com.android.systemui.EventLogConstants; import com.android.systemui.EventLogTags; import com.android.systemui.R; import com.android.systemui.RecentsComponent; import com.android.systemui.SystemUI; -import com.android.systemui.plugins.PluginActivity; -import com.android.systemui.plugins.PluginActivityManager; import com.android.systemui.recents.events.EventBus; import com.android.systemui.recents.events.activity.ConfigurationChangedEvent; import com.android.systemui.recents.events.activity.DockedTopTaskEvent; @@ -239,8 +236,6 @@ public class Recents extends SystemUI registerWithSystemUser(); } putComponent(Recents.class, this); - Dependency.get(PluginActivityManager.class).addActivityPlugin(RecentsImpl.RECENTS_ACTIVITY, - PluginActivity.ACTION_RECENTS); } @Override diff --git a/packages/SystemUI/tests/src/com/android/systemui/plugins/PluginManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/plugins/PluginManagerTest.java index bba982c3b0604..b8e9fcd290969 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/plugins/PluginManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/plugins/PluginManagerTest.java @@ -26,6 +26,8 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; 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; @@ -34,10 +36,11 @@ 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.PluginInstanceManager.PluginInfo; 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; diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakePluginManager.java b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakePluginManager.java index d1b1c5b9a0661..0a83a896dfafe 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakePluginManager.java +++ b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakePluginManager.java @@ -14,6 +14,7 @@ package com.android.systemui.utils.leaks; +import android.content.Context; import android.testing.LeakCheck; import com.android.systemui.plugins.Plugin;