diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginActionManager.java b/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginActionManager.java index 3275d2d804bef..9ea4b578ad3bf 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginActionManager.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginActionManager.java @@ -73,7 +73,6 @@ public class PluginActionManager { private final boolean mIsDebuggable; private final PackageManager mPm; private final Class mPluginClass; - private final PluginInitializer mInitializer; private final Executor mMainExecutor; private final Executor mBgExecutor; @@ -87,13 +86,11 @@ public class PluginActionManager { Executor mainExecutor, Executor bgExecutor, boolean debuggable, - PluginInitializer initializer, NotificationManager notificationManager, PluginEnabler pluginEnabler, List privilegedPlugins, PluginInstance.Factory pluginInstanceFactory) { mPluginClass = pluginClass; - mInitializer = initializer; mMainExecutor = mainExecutor; mBgExecutor = bgExecutor; mContext = context; @@ -376,21 +373,19 @@ public class PluginActionManager { private final PackageManager mPackageManager; private final Executor mMainExecutor; private final Executor mBgExecutor; - private final PluginInitializer mInitializer; private final NotificationManager mNotificationManager; private final PluginEnabler mPluginEnabler; private final List mPrivilegedPlugins; private final PluginInstance.Factory mPluginInstanceFactory; public Factory(Context context, PackageManager packageManager, - Executor mainExecutor, Executor bgExecutor, PluginInitializer initializer, + Executor mainExecutor, Executor bgExecutor, NotificationManager notificationManager, PluginEnabler pluginEnabler, List privilegedPlugins, PluginInstance.Factory pluginInstanceFactory) { mContext = context; mPackageManager = packageManager; mMainExecutor = mainExecutor; mBgExecutor = bgExecutor; - mInitializer = initializer; mNotificationManager = notificationManager; mPluginEnabler = pluginEnabler; mPrivilegedPlugins = privilegedPlugins; @@ -402,7 +397,7 @@ public class PluginActionManager { boolean allowMultiple, boolean debuggable) { return new PluginActionManager<>(mContext, mPackageManager, action, listener, pluginClass, allowMultiple, mMainExecutor, mBgExecutor, - debuggable, mInitializer, mNotificationManager, mPluginEnabler, + debuggable, mNotificationManager, mPluginEnabler, mPrivilegedPlugins, mPluginInstanceFactory); } } diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginInitializer.java b/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginInitializer.java deleted file mode 100644 index 5890f81cc6936..0000000000000 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginInitializer.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2018 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.shared.plugins; - -/** - * Provides necessary components for initializing {@link PluginManagerImpl}. - */ -public interface PluginInitializer { -} diff --git a/packages/SystemUI/src/com/android/systemui/dagger/PluginModule.java b/packages/SystemUI/src/com/android/systemui/dagger/PluginModule.java index 406981d0c4adc..67ad3db74f8ad 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/PluginModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/PluginModule.java @@ -24,6 +24,7 @@ import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.GlobalActions; +import com.android.systemui.plugins.PluginDependencyProvider; import com.android.systemui.plugins.VolumeDialogController; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.StatusBarStateControllerImpl; @@ -32,6 +33,7 @@ import com.android.systemui.volume.VolumeDialogControllerImpl; import dagger.Binds; import dagger.Module; +import dagger.Provides; /** * Module for binding Plugin implementations. @@ -39,36 +41,40 @@ import dagger.Module; * TODO(b/166258224): Many of these should be moved closer to their implementations. */ @Module -public interface PluginModule { +public abstract class PluginModule { + + /** */ + @Provides + static ActivityStarter provideActivityStarter(ActivityStarterDelegate delegate, + PluginDependencyProvider dependencyProvider) { + dependencyProvider.allowPluginDependency(ActivityStarter.class, delegate); + return delegate; + } /** */ @Binds - ActivityStarter provideActivityStarter(ActivityStarterDelegate delegate); + abstract DarkIconDispatcher provideDarkIconDispatcher(DarkIconDispatcherImpl controllerImpl); /** */ @Binds - DarkIconDispatcher provideDarkIconDispatcher(DarkIconDispatcherImpl controllerImpl); + abstract FalsingManager provideFalsingManager(FalsingManagerProxy falsingManagerImpl); /** */ @Binds - FalsingManager provideFalsingManager(FalsingManagerProxy falsingManagerImpl); + abstract GlobalActions provideGlobalActions(GlobalActionsImpl controllerImpl); /** */ @Binds - GlobalActions provideGlobalActions(GlobalActionsImpl controllerImpl); - - /** */ - @Binds - GlobalActions.GlobalActionsManager provideGlobalActionsManager( + abstract GlobalActions.GlobalActionsManager provideGlobalActionsManager( GlobalActionsComponent controllerImpl); /** */ @Binds - StatusBarStateController provideStatusBarStateController( + abstract StatusBarStateController provideStatusBarStateController( StatusBarStateControllerImpl controllerImpl); /** */ @Binds - VolumeDialogController provideVolumeDialogController(VolumeDialogControllerImpl controllerImpl); - + abstract VolumeDialogController provideVolumeDialogController( + VolumeDialogControllerImpl controllerImpl); } diff --git a/packages/SystemUI/src/com/android/systemui/plugins/PluginInitializerImpl.java b/packages/SystemUI/src/com/android/systemui/plugins/PluginInitializerImpl.java deleted file mode 100644 index 8effd53ef56da..0000000000000 --- a/packages/SystemUI/src/com/android/systemui/plugins/PluginInitializerImpl.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2018 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 com.android.systemui.shared.plugins.PluginInitializer; - -import javax.inject.Inject; -import javax.inject.Singleton; - -/** */ -@Singleton -public class PluginInitializerImpl implements PluginInitializer { - @Inject - public PluginInitializerImpl(PluginDependencyProvider dependencyProvider) { - dependencyProvider.allowPluginDependency(ActivityStarter.class); - } -} diff --git a/packages/SystemUI/src/com/android/systemui/plugins/PluginsModule.java b/packages/SystemUI/src/com/android/systemui/plugins/PluginsModule.java index 11c5efc4ed7db..a0cf44c8bfdcc 100644 --- a/packages/SystemUI/src/com/android/systemui/plugins/PluginsModule.java +++ b/packages/SystemUI/src/com/android/systemui/plugins/PluginsModule.java @@ -28,7 +28,6 @@ import com.android.systemui.dagger.PluginModule; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.shared.plugins.PluginActionManager; import com.android.systemui.shared.plugins.PluginEnabler; -import com.android.systemui.shared.plugins.PluginInitializer; import com.android.systemui.shared.plugins.PluginInstance; import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.shared.plugins.PluginManagerImpl; @@ -69,9 +68,6 @@ public abstract class PluginsModule { @Binds abstract PluginEnabler bindsPluginEnablerImpl(PluginEnablerImpl impl); - @Binds - abstract PluginInitializer bindsPluginInitializerImpl(PluginInitializerImpl impl); - @Provides @Singleton static PluginInstance.Factory providesPluginInstanceFactory( @@ -89,12 +85,12 @@ public abstract class PluginsModule { @Singleton static PluginActionManager.Factory providePluginInstanceManagerFactory(Context context, PackageManager packageManager, @Main Executor mainExecutor, - @Named(PLUGIN_THREAD) Executor pluginExecutor, PluginInitializer initializer, + @Named(PLUGIN_THREAD) Executor pluginExecutor, NotificationManager notificationManager, PluginEnabler pluginEnabler, @Named(PLUGIN_PRIVILEGED) List privilegedPlugins, PluginInstance.Factory pluginInstanceFactory) { return new PluginActionManager.Factory( - context, packageManager, mainExecutor, pluginExecutor, initializer, + context, packageManager, mainExecutor, pluginExecutor, notificationManager, pluginEnabler, privilegedPlugins, pluginInstanceFactory); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/shared/plugins/PluginActionManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/shared/plugins/PluginActionManagerTest.java index ce366657b7b24..05280fa826ed7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shared/plugins/PluginActionManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/shared/plugins/PluginActionManagerTest.java @@ -74,7 +74,6 @@ public class PluginActionManagerTest extends SysuiTestCase { private PluginEnabler mMockEnabler; ComponentName mTestPluginComponentName = new ComponentName(PRIVILEGED_PACKAGE, TestPlugin.class.getName()); - private PluginInitializer mInitializer; private final FakeExecutor mFakeExecutor = new FakeExecutor(new FakeSystemClock()); NotificationManager mNotificationManager; private PluginInstance mPluginInstance; @@ -98,14 +97,13 @@ public class PluginActionManagerTest extends SysuiTestCase { mMockListener = mock(PluginListener.class); mMockEnabler = mock(PluginEnabler.class); mMockVersionInfo = mock(VersionInfo.class); - mInitializer = mock(PluginInitializer.class); mNotificationManager = mock(NotificationManager.class); mMockPlugin = mock(TestPlugin.class); mPluginInstance = mock(PluginInstance.class); when(mPluginInstance.getComponentName()).thenReturn(mTestPluginComponentName); when(mPluginInstance.getPackage()).thenReturn(mTestPluginComponentName.getPackageName()); mActionManagerFactory = new PluginActionManager.Factory(getContext(), mMockPm, - mFakeExecutor, mFakeExecutor, mInitializer, mNotificationManager, mMockEnabler, + mFakeExecutor, mFakeExecutor, mNotificationManager, mMockEnabler, new ArrayList<>(), mPluginInstanceFactory); mPluginActionManager = mActionManagerFactory.create("myAction", mMockListener, @@ -178,7 +176,7 @@ public class PluginActionManagerTest extends SysuiTestCase { public void testNonDebuggable_privileged() throws Exception { // Create a version that thinks the build is not debuggable. PluginActionManager.Factory factory = new PluginActionManager.Factory(getContext(), - mMockPm, mFakeExecutor, mFakeExecutor, mInitializer, mNotificationManager, + mMockPm, mFakeExecutor, mFakeExecutor, mNotificationManager, mMockEnabler, Collections.singletonList(PRIVILEGED_PACKAGE), mPluginInstanceFactory); mPluginActionManager = factory.create("myAction", mMockListener, @@ -222,7 +220,7 @@ public class PluginActionManagerTest extends SysuiTestCase { @Test public void testDisablePrivileged() throws Exception { PluginActionManager.Factory factory = new PluginActionManager.Factory(getContext(), - mMockPm, mFakeExecutor, mFakeExecutor, mInitializer, mNotificationManager, + mMockPm, mFakeExecutor, mFakeExecutor, mNotificationManager, mMockEnabler, Collections.singletonList(PRIVILEGED_PACKAGE), mPluginInstanceFactory); mPluginActionManager = factory.create("myAction", mMockListener,