diff options
| author | 2022-02-10 16:09:34 +0000 | |
|---|---|---|
| committer | 2022-02-10 16:09:34 +0000 | |
| commit | c0715a6c1e642fa3495393adcf959f53d76b6ac2 (patch) | |
| tree | 3fc98397d2832a705405b7973f40feff21f0b4ec | |
| parent | 1e4bf7fa9ea9f3fa18b08e745c78445ae52b24ef (diff) | |
| parent | 9e7a15f0ac7d81d48046f8df9744d579c68684ca (diff) | |
Merge "Remove low-hanging Dep#get from sb.phone."
16 files changed, 110 insertions, 126 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/DefaultServiceBinder.java b/packages/SystemUI/src/com/android/systemui/dagger/DefaultServiceBinder.java index 33f07c716f95..e1cbdcdd86c1 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/DefaultServiceBinder.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/DefaultServiceBinder.java @@ -25,6 +25,7 @@ import com.android.systemui.dreams.DreamOverlayService; import com.android.systemui.dump.SystemUIAuxiliaryDumpService; import com.android.systemui.keyguard.KeyguardService; import com.android.systemui.screenrecord.RecordingService; +import com.android.systemui.statusbar.phone.NotificationListenerWithPlugins; import dagger.Binds; import dagger.Module; @@ -63,6 +64,13 @@ public abstract class DefaultServiceBinder { /** */ @Binds @IntoMap + @ClassKey(NotificationListenerWithPlugins.class) + public abstract Service bindNotificationListenerWithPlugins( + NotificationListenerWithPlugins service); + + /** */ + @Binds + @IntoMap @ClassKey(SystemUIService.class) public abstract Service bindSystemUIService(SystemUIService service); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java index e19fd7a44394..01bdb401e00c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java @@ -29,7 +29,9 @@ import android.os.UserHandle; import android.service.notification.StatusBarNotification; import android.util.Log; +import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; +import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.statusbar.dagger.StatusBarModule; import com.android.systemui.statusbar.notification.collection.NotifCollection; import com.android.systemui.statusbar.phone.NotificationListenerWithPlugins; @@ -42,10 +44,13 @@ import java.util.List; import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.Executor; +import javax.inject.Inject; + /** * This class handles listening to notification updates and passing them along to * NotificationPresenter to be displayed to the user. */ +@SysUISingleton @SuppressLint("OverrideAbstract") public class NotificationListener extends NotificationListenerWithPlugins { private static final String TAG = "NotificationListener"; @@ -66,11 +71,14 @@ public class NotificationListener extends NotificationListenerWithPlugins { /** * Injected constructor. See {@link StatusBarModule}. */ + @Inject public NotificationListener( Context context, NotificationManager notificationManager, SystemClock systemClock, - @Main Executor mainExecutor) { + @Main Executor mainExecutor, + PluginManager pluginManager) { + super(pluginManager); mContext = context; mNotificationManager = notificationManager; mSystemClock = systemClock; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java index e3d0d9802b8d..c687e8282c7c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java @@ -17,7 +17,6 @@ package com.android.systemui.statusbar.dagger; import android.app.IActivityManager; -import android.app.NotificationManager; import android.content.Context; import android.os.Handler; import android.service.dreams.IDreamManager; @@ -38,7 +37,6 @@ import com.android.systemui.statusbar.ActionClickLogger; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.MediaArtworkProcessor; import com.android.systemui.statusbar.NotificationClickNotifier; -import com.android.systemui.statusbar.NotificationListener; import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.NotificationMediaManager; import com.android.systemui.statusbar.NotificationRemoteInputManager; @@ -167,18 +165,6 @@ public interface StatusBarDependenciesModule { /** */ @SysUISingleton @Provides - static NotificationListener provideNotificationListener( - Context context, - NotificationManager notificationManager, - SystemClock systemClock, - @Main Executor mainExecutor) { - return new NotificationListener( - context, notificationManager, systemClock, mainExecutor); - } - - /** */ - @SysUISingleton - @Provides static SmartReplyController provideSmartReplyController( DumpManager dumpManager, NotificationVisibilityProvider visibilityProvider, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java index f421d23bd0d8..866f0d324391 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java @@ -16,34 +16,36 @@ package com.android.systemui.statusbar.phone; +import static com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentModule.OPERATOR_NAME_FRAME_VIEW; + import android.graphics.Rect; import android.view.View; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.widget.ViewClippingUtil; -import com.android.systemui.Dependency; import com.android.systemui.R; -import com.android.systemui.dagger.qualifiers.RootView; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CrossFadeHelper; import com.android.systemui.statusbar.HeadsUpStatusBarView; import com.android.systemui.statusbar.StatusBarState; -import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController; import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentScope; +import com.android.systemui.statusbar.policy.Clock; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener; import com.android.systemui.util.ViewController; +import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.Consumer; import javax.inject.Inject; +import javax.inject.Named; /** * Controls the appearance of heads up notifications in the icon area and the header itself. @@ -69,8 +71,8 @@ public class HeadsUpAppearanceController extends ViewController<HeadsUpStatusBar private final CommandQueue mCommandQueue; private final NotificationWakeUpCoordinator mWakeUpCoordinator; - private View mClockView; - private View mOperatorNameView; + private final View mClockView; + private final Optional<View> mOperatorNameViewOptional; @VisibleForTesting float mExpandedHeight; @@ -86,45 +88,24 @@ public class HeadsUpAppearanceController extends ViewController<HeadsUpStatusBar } }; private boolean mAnimationsEnabled = true; - private KeyguardStateController mKeyguardStateController; - - @Inject - public HeadsUpAppearanceController( - NotificationIconAreaController notificationIconAreaController, - HeadsUpManagerPhone headsUpManager, - NotificationStackScrollLayoutController notificationStackScrollLayoutController, - SysuiStatusBarStateController statusBarStateController, - KeyguardBypassController keyguardBypassController, - KeyguardStateController keyguardStateController, - NotificationWakeUpCoordinator wakeUpCoordinator, CommandQueue commandQueue, - NotificationPanelViewController notificationPanelViewController, - @RootView PhoneStatusBarView statusBarView) { - this(notificationIconAreaController, headsUpManager, statusBarStateController, - keyguardBypassController, wakeUpCoordinator, keyguardStateController, - commandQueue, notificationStackScrollLayoutController, - notificationPanelViewController, - // TODO(b/205609837): We should have the StatusBarFragmentComponent provide these - // four views, and then we can delete this constructor and just use the one below - // (which also removes the undesirable @VisibleForTesting). - statusBarView.findViewById(R.id.heads_up_status_bar_view), - statusBarView.findViewById(R.id.clock), - statusBarView.findViewById(R.id.operator_name_frame)); - } + private final KeyguardStateController mKeyguardStateController; @VisibleForTesting + @Inject public HeadsUpAppearanceController( NotificationIconAreaController notificationIconAreaController, HeadsUpManagerPhone headsUpManager, StatusBarStateController stateController, KeyguardBypassController bypassController, NotificationWakeUpCoordinator wakeUpCoordinator, + DarkIconDispatcher darkIconDispatcher, KeyguardStateController keyguardStateController, CommandQueue commandQueue, NotificationStackScrollLayoutController stackScrollerController, NotificationPanelViewController notificationPanelViewController, HeadsUpStatusBarView headsUpStatusBarView, - View clockView, - View operatorNameView) { + Clock clockView, + @Named(OPERATOR_NAME_FRAME_VIEW) Optional<View> operatorNameViewOptional) { super(headsUpStatusBarView); mNotificationIconAreaController = notificationIconAreaController; mHeadsUpManager = headsUpManager; @@ -141,8 +122,8 @@ public class HeadsUpAppearanceController extends ViewController<HeadsUpStatusBar mNotificationPanelViewController = notificationPanelViewController; mStackScrollerController.setHeadsUpAppearanceController(this); mClockView = clockView; - mOperatorNameView = operatorNameView; - mDarkIconDispatcher = Dependency.get(DarkIconDispatcher.class); + mOperatorNameViewOptional = operatorNameViewOptional; + mDarkIconDispatcher = darkIconDispatcher; mView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { @Override @@ -232,14 +213,10 @@ public class HeadsUpAppearanceController extends ViewController<HeadsUpStatusBar mView.setVisibility(View.VISIBLE); show(mView); hide(mClockView, View.INVISIBLE); - if (mOperatorNameView != null) { - hide(mOperatorNameView, View.INVISIBLE); - } + mOperatorNameViewOptional.ifPresent(view -> hide(view, View.INVISIBLE)); } else { show(mClockView); - if (mOperatorNameView != null) { - show(mOperatorNameView); - } + mOperatorNameViewOptional.ifPresent(this::show); hide(mView, View.GONE, () -> { updateParentClipping(true /* shouldClip */); }); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardEnvironmentImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardEnvironmentImpl.java index 817b86bf643e..9bdefcd98422 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardEnvironmentImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardEnvironmentImpl.java @@ -20,7 +20,6 @@ import static com.android.systemui.statusbar.phone.StatusBar.MULTIUSER_DEBUG; import android.service.notification.StatusBarNotification; import android.util.Log; -import com.android.systemui.Dependency; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.notification.NotificationEntryManager.KeyguardEnvironment; @@ -33,13 +32,15 @@ public class KeyguardEnvironmentImpl implements KeyguardEnvironment { private static final String TAG = "KeyguardEnvironmentImpl"; - private final NotificationLockscreenUserManager mLockscreenUserManager = - Dependency.get(NotificationLockscreenUserManager.class); - private final DeviceProvisionedController mDeviceProvisionedController = - Dependency.get(DeviceProvisionedController.class); + private final NotificationLockscreenUserManager mLockscreenUserManager; + private final DeviceProvisionedController mDeviceProvisionedController; @Inject - public KeyguardEnvironmentImpl() { + public KeyguardEnvironmentImpl( + NotificationLockscreenUserManager notificationLockscreenUserManager, + DeviceProvisionedController deviceProvisionedController) { + mLockscreenUserManager = notificationLockscreenUserManager; + mDeviceProvisionedController = deviceProvisionedController; } @Override // NotificationEntryManager.KeyguardEnvironment diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java index 8bababfb9d5e..ca6e67ec4a83 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java @@ -28,7 +28,7 @@ import android.util.ArrayMap; import android.util.Log; import com.android.internal.statusbar.NotificationVisibility; -import com.android.systemui.Dependency; +import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener; import com.android.systemui.statusbar.notification.NotificationEntryListener; @@ -48,11 +48,14 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import javax.inject.Inject; + /** * A helper class dealing with the alert interactions between {@link NotificationGroupManagerLegacy} * and {@link HeadsUpManager}. In particular, this class deals with keeping * the correct notification in a group alerting based off the group suppression and alertOverride. */ +@SysUISingleton public class NotificationGroupAlertTransferHelper implements OnHeadsUpChangedListener, StateListener { @@ -74,8 +77,7 @@ public class NotificationGroupAlertTransferHelper implements OnHeadsUpChangedLis private HeadsUpManager mHeadsUpManager; private final RowContentBindStage mRowContentBindStage; - private final NotificationGroupManagerLegacy mGroupManager = - Dependency.get(NotificationGroupManagerLegacy.class); + private final NotificationGroupManagerLegacy mGroupManager; private NotificationEntryManager mEntryManager; @@ -84,9 +86,14 @@ public class NotificationGroupAlertTransferHelper implements OnHeadsUpChangedLis /** * Injected constructor. See {@link StatusBarPhoneModule}. */ - public NotificationGroupAlertTransferHelper(RowContentBindStage bindStage) { - Dependency.get(StatusBarStateController.class).addCallback(this); + @Inject + public NotificationGroupAlertTransferHelper( + RowContentBindStage bindStage, + StatusBarStateController statusBarStateController, + NotificationGroupManagerLegacy notificationGroupManagerLegacy) { mRowContentBindStage = bindStage; + mGroupManager = notificationGroupManagerLegacy; + statusBarStateController.addCallback(this); } /** Causes the TransferHelper to register itself as a listener to the appropriate classes. */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationListenerWithPlugins.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationListenerWithPlugins.java index c68d39b97355..3811689a2295 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationListenerWithPlugins.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationListenerWithPlugins.java @@ -22,7 +22,6 @@ import android.os.UserHandle; import android.service.notification.NotificationListenerService; import android.service.notification.StatusBarNotification; -import com.android.systemui.Dependency; import com.android.systemui.plugins.NotificationListenerController; import com.android.systemui.plugins.NotificationListenerController.NotificationProvider; import com.android.systemui.plugins.PluginListener; @@ -30,6 +29,8 @@ import com.android.systemui.shared.plugins.PluginManager; import java.util.ArrayList; +import javax.inject.Inject; + /** * A version of NotificationListenerService that passes all info to * any plugins connected. Also allows those plugins the chance to cancel @@ -40,19 +41,25 @@ public class NotificationListenerWithPlugins extends NotificationListenerService private ArrayList<NotificationListenerController> mPlugins = new ArrayList<>(); private boolean mConnected; + private PluginManager mPluginManager; + + @Inject + public NotificationListenerWithPlugins(PluginManager pluginManager) { + super(); + mPluginManager = pluginManager; + } @Override public void registerAsSystemService(Context context, ComponentName componentName, int currentUser) throws RemoteException { super.registerAsSystemService(context, componentName, currentUser); - Dependency.get(PluginManager.class).addPluginListener(this, - NotificationListenerController.class); + mPluginManager.addPluginListener(this, NotificationListenerController.class); } @Override public void unregisterAsSystemService() throws RemoteException { super.unregisterAsSystemService(); - Dependency.get(PluginManager.class).removePluginListener(this); + mPluginManager.removePluginListener(this); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index 62a96ad81434..7a2eceb30951 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -113,7 +113,6 @@ import com.android.keyguard.dagger.KeyguardStatusBarViewComponent; import com.android.keyguard.dagger.KeyguardStatusViewComponent; import com.android.keyguard.dagger.KeyguardUserSwitcherComponent; import com.android.systemui.DejankUtils; -import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.animation.ActivityLaunchAnimator; import com.android.systemui.animation.Interpolators; @@ -804,6 +803,7 @@ public class NotificationPanelViewController extends PanelViewController ControlsComponent controlsComponent, InteractionJankMonitor interactionJankMonitor, QsFrameTranslateController qsFrameTranslateController, + SysUiState sysUiState, KeyguardUnlockAnimationController keyguardUnlockAnimationController) { super(view, falsingManager, @@ -876,8 +876,7 @@ public class NotificationPanelViewController extends PanelViewController mUiExecutor = uiExecutor; mSecureSettings = secureSettings; mInteractionJankMonitor = interactionJankMonitor; - // TODO: inject via dagger instead of Dependency - mSysUiState = Dependency.get(SysUiState.class); + mSysUiState = sysUiState; pulseExpansionHandler.setPulseExpandAbortListener(() -> { if (mQs != null) { mQs.animateHeaderSlidingOut(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java index 88a7dc7bcd75..c5d3937173e7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java @@ -27,7 +27,6 @@ import android.util.Log; import android.view.ViewGroup; import com.android.internal.statusbar.StatusBarIcon; -import com.android.systemui.Dependency; import com.android.systemui.Dumpable; import com.android.systemui.R; import com.android.systemui.dagger.SysUISingleton; @@ -74,17 +73,19 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu Context context, CommandQueue commandQueue, DemoModeController demoModeController, + ConfigurationController configurationController, + TunerService tunerService, DumpManager dumpManager) { super(context.getResources().getStringArray( com.android.internal.R.array.config_statusBarIcons)); - Dependency.get(ConfigurationController.class).addCallback(this); + configurationController.addCallback(this); mContext = context; loadDimens(); commandQueue.addCallback(this); - Dependency.get(TunerService.class).addTunable(this, ICON_HIDE_LIST); + tunerService.addTunable(this, ICON_HIDE_LIST); demoModeController.addCallback(this); dumpManager.registerDumpable(getClass().getSimpleName(), this); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneDependenciesModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneDependenciesModule.java deleted file mode 100644 index 79d72b3d0f65..000000000000 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneDependenciesModule.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2020 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.statusbar.phone.dagger; - -import com.android.systemui.dagger.SysUISingleton; -import com.android.systemui.statusbar.notification.row.RowContentBindStage; -import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper; -import com.android.systemui.statusbar.phone.StatusBar; - -import dagger.Module; -import dagger.Provides; - -/** - * This module provides instances needed to construct {@link StatusBar}. These are moved to this - * separate from {@link StatusBarPhoneModule} module so that components that wish to build their own - * version of StatusBar can include just dependencies, without injecting StatusBar itself. - */ -@Module -public interface StatusBarPhoneDependenciesModule { - - /** */ - @SysUISingleton - @Provides - static NotificationGroupAlertTransferHelper provideNotificationGroupAlertTransferHelper( - RowContentBindStage bindStage) { - return new NotificationGroupAlertTransferHelper(bindStage); - } -} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java index d3ff4a78c893..83bdd1b7884c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java @@ -129,7 +129,7 @@ import dagger.Provides; /** * Dagger Module providing {@link StatusBar}. */ -@Module(includes = {StatusBarPhoneDependenciesModule.class}) +@Module public interface StatusBarPhoneModule { /** * Provides our instance of StatusBar which is considered optional. diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/dagger/StatusBarFragmentModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/dagger/StatusBarFragmentModule.java index e2dc9057e49d..d5f5362eaf3c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/dagger/StatusBarFragmentModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/dagger/StatusBarFragmentModule.java @@ -21,6 +21,7 @@ import android.view.View; import com.android.systemui.R; import com.android.systemui.battery.BatteryMeterView; import com.android.systemui.dagger.qualifiers.RootView; +import com.android.systemui.statusbar.HeadsUpStatusBarView; import com.android.systemui.statusbar.phone.NotificationPanelViewController; import com.android.systemui.statusbar.phone.PhoneStatusBarTransitions; import com.android.systemui.statusbar.phone.PhoneStatusBarView; @@ -32,6 +33,8 @@ import com.android.systemui.statusbar.phone.userswitcher.StatusBarUserSwitcherCo import com.android.systemui.statusbar.policy.Clock; import com.android.systemui.statusbar.window.StatusBarWindowController; +import java.util.Optional; + import javax.inject.Named; import dagger.Binds; @@ -44,6 +47,7 @@ public interface StatusBarFragmentModule { String LIGHTS_OUT_NOTIF_VIEW = "lights_out_notif_view"; String OPERATOR_NAME_VIEW = "operator_name_view"; + String OPERATOR_NAME_FRAME_VIEW = "operator_name_frame_view"; /** */ @Provides @@ -80,6 +84,14 @@ public interface StatusBarFragmentModule { /** */ @Provides @StatusBarFragmentScope + @Named(OPERATOR_NAME_FRAME_VIEW) + static Optional<View> provideOperatorFrameNameView(@RootView PhoneStatusBarView view) { + return Optional.ofNullable(view.findViewById(R.id.operator_name_frame)); + } + + /** */ + @Provides + @StatusBarFragmentScope static Clock provideClock(@RootView PhoneStatusBarView view) { return view.findViewById(R.id.clock); } @@ -119,4 +131,11 @@ public interface StatusBarFragmentModule { ) { return new PhoneStatusBarTransitions(view, statusBarWindowController.getBackgroundView()); } + + /** */ + @Provides + @StatusBarFragmentScope + static HeadsUpStatusBarView providesHeasdUpStatusBarView(@RootView PhoneStatusBarView view) { + return view.findViewById(R.id.heads_up_status_bar_view); + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationListenerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationListenerTest.java index 8c5f04f92073..5e11858c7653 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationListenerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationListenerTest.java @@ -37,6 +37,7 @@ import android.testing.AndroidTestingRunner; import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; +import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.statusbar.NotificationListener.NotificationHandler; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.time.FakeSystemClock; @@ -55,6 +56,7 @@ public class NotificationListenerTest extends SysuiTestCase { @Mock private NotificationHandler mNotificationHandler; @Mock private NotificationManager mNotificationManager; + @Mock private PluginManager mPluginManager; private final FakeSystemClock mFakeSystemClock = new FakeSystemClock(); private final FakeExecutor mFakeExecutor = new FakeExecutor(mFakeSystemClock); @@ -70,7 +72,8 @@ public class NotificationListenerTest extends SysuiTestCase { mContext, mNotificationManager, mFakeSystemClock, - mFakeExecutor); + mFakeExecutor, + mPluginManager); mSbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME, 0, null, TEST_UID, 0, new Notification(), UserHandle.CURRENT, null, 0); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java index e9590b06c2c8..ed22cd3c55fc 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java @@ -40,6 +40,7 @@ import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.statusbar.notification.row.NotificationTestHelper; import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController; +import com.android.systemui.statusbar.policy.Clock; import com.android.systemui.statusbar.policy.KeyguardStateController; import org.junit.Assert; @@ -47,6 +48,8 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.Optional; + @SmallTest @RunWith(AndroidTestingRunner.class) @RunWithLooper @@ -76,7 +79,6 @@ public class HeadsUpAppearanceControllerTest extends SysuiTestCase { mDependency, TestableLooper.get(this)); mFirst = testHelper.createRow(); - mDependency.injectTestDependency(DarkIconDispatcher.class, mDarkIconDispatcher); mHeadsUpStatusBarView = new HeadsUpStatusBarView(mContext, mock(View.class), mock(TextView.class)); mHeadsUpManager = mock(HeadsUpManagerPhone.class); @@ -92,13 +94,14 @@ public class HeadsUpAppearanceControllerTest extends SysuiTestCase { mStatusbarStateController, mBypassController, mWakeUpCoordinator, + mDarkIconDispatcher, mKeyguardStateController, mCommandQueue, mStackScrollerController, mPanelView, mHeadsUpStatusBarView, - new View(mContext), - mOperatorNameView); + new Clock(mContext, null), + Optional.of(mOperatorNameView)); mHeadsUpAppearanceController.setAppearFraction(0.0f, 0.0f); } @@ -173,13 +176,14 @@ public class HeadsUpAppearanceControllerTest extends SysuiTestCase { mStatusbarStateController, mBypassController, mWakeUpCoordinator, + mDarkIconDispatcher, mKeyguardStateController, mCommandQueue, mStackScrollerController, mPanelView, mHeadsUpStatusBarView, - new View(mContext), - new View(mContext)); + new Clock(mContext, null), + Optional.empty()); Assert.assertEquals(expandedHeight, newController.mExpandedHeight, 0.0f); Assert.assertEquals(appearFraction, newController.mAppearFraction, 0.0f); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java index c13b3358a077..7070bc19db62 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java @@ -78,6 +78,7 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase { @Mock private NotificationEntryManager mNotificationEntryManager; @Mock private RowContentBindStage mBindStage; @Mock PeopleNotificationIdentifier mPeopleNotificationIdentifier; + @Mock StatusBarStateController mStatusBarStateController; @Captor private ArgumentCaptor<NotificationEntryListener> mListenerCaptor; private NotificationEntryListener mNotificationEntryListener; private final HashMap<String, NotificationEntry> mPendingEntries = new HashMap<>(); @@ -94,7 +95,7 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase { .thenReturn(mPendingEntries.values()); mGroupManager = new NotificationGroupManagerLegacy( - mock(StatusBarStateController.class), + mStatusBarStateController, () -> mPeopleNotificationIdentifier, Optional.of(mock(Bubbles.class)), mock(DumpManager.class)); @@ -103,7 +104,8 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase { when(mBindStage.getStageParams(any())).thenReturn(new RowContentBindParams()); - mGroupAlertTransferHelper = new NotificationGroupAlertTransferHelper(mBindStage); + mGroupAlertTransferHelper = new NotificationGroupAlertTransferHelper( + mBindStage, mStatusBarStateController, mGroupManager); mGroupAlertTransferHelper.setHeadsUpManager(mHeadsUpManager); mGroupAlertTransferHelper.bind(mNotificationEntryManager, mGroupManager); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java index 7347565408f5..36d1629fa9b8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java @@ -106,6 +106,7 @@ import com.android.systemui.keyguard.KeyguardUnlockAnimationController; import com.android.systemui.media.KeyguardMediaController; import com.android.systemui.media.MediaDataManager; import com.android.systemui.media.MediaHierarchyManager; +import com.android.systemui.model.SysUiState; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.qrcodescanner.controller.QRCodeScannerController; @@ -366,6 +367,8 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { private KeyguardUnlockAnimationController mKeyguardUnlockAnimationController; @Mock private NotificationShadeWindowController mNotificationShadeWindowController; + @Mock + private SysUiState mSysUiState; private Optional<SysUIUnfoldComponent> mSysUIUnfoldComponent = Optional.empty(); private SysuiStatusBarStateController mStatusBarStateController; private NotificationPanelViewController mNotificationPanelViewController; @@ -555,6 +558,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { mControlsComponent, mInteractionJankMonitor, mQsFrameTranslateController, + mSysUiState, mKeyguardUnlockAnimationController); mNotificationPanelViewController.initDependencies( mStatusBar, |