diff options
4 files changed, 160 insertions, 192 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/DependencyBinder.java b/packages/SystemUI/src/com/android/systemui/DependencyBinder.java index c4dce1e70051..818b5e1c69f4 100644 --- a/packages/SystemUI/src/com/android/systemui/DependencyBinder.java +++ b/packages/SystemUI/src/com/android/systemui/DependencyBinder.java @@ -30,7 +30,6 @@ import com.android.systemui.qs.QSHost; import com.android.systemui.qs.QSTileHost; import com.android.systemui.statusbar.NotificationRemoteInputManager; import com.android.systemui.statusbar.StatusBarStateControllerImpl; -import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.phone.DarkIconDispatcherImpl; import com.android.systemui.statusbar.phone.ManagedProfileController; import com.android.systemui.statusbar.phone.ManagedProfileControllerImpl; @@ -235,10 +234,4 @@ public abstract class DependencyBinder { */ @Binds public abstract FalsingManager provideFalsingmanager(FalsingManagerProxy falsingManagerImpl); - - /** - */ - @Binds - public abstract SysuiStatusBarStateController providesSysuiStatusBarStateController( - StatusBarStateControllerImpl statusBarStateControllerImpl); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index e79f14175377..5fc2d9beab89 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -347,10 +347,10 @@ public class StatusBar extends SystemUI implements DemoMode, private BrightnessMirrorController mBrightnessMirrorController; private boolean mBrightnessMirrorVisible; protected BiometricUnlockController mBiometricUnlockController; - @Inject LightBarController mLightBarController; + private LightBarController mLightBarController; protected LockscreenWallpaper mLockscreenWallpaper; @VisibleForTesting - @Inject AutoHideController mAutoHideController; + protected AutoHideController mAutoHideController; private int mNaturalBarHeight = -1; @@ -361,7 +361,7 @@ public class StatusBar extends SystemUI implements DemoMode, private int mStatusBarWindowState = WINDOW_STATE_SHOWING; protected StatusBarWindowController mStatusBarWindowController; @VisibleForTesting - @Inject KeyguardUpdateMonitor mKeyguardUpdateMonitor; + KeyguardUpdateMonitor mKeyguardUpdateMonitor; @VisibleForTesting DozeServiceHost mDozeServiceHost = new DozeServiceHost(); private boolean mWakeUpComingFromTouch; @@ -369,7 +369,7 @@ public class StatusBar extends SystemUI implements DemoMode, private final Object mQueueLock = new Object(); - @Inject StatusBarIconController mIconController; + protected StatusBarIconController mIconController; @Inject DozeLog mDozeLog; @Inject @@ -400,7 +400,7 @@ public class StatusBar extends SystemUI implements DemoMode, protected FalsingManager mFalsingManager; @VisibleForTesting - @Inject BroadcastDispatcher mBroadcastDispatcher; + BroadcastDispatcher mBroadcastDispatcher; // expanded notifications protected NotificationPanelView mNotificationPanel; // the sliding/resizing panel within the notification window @@ -413,7 +413,8 @@ public class StatusBar extends SystemUI implements DemoMode, // RemoteInputView to be activated after unlock private View mPendingRemoteInputView; - @Inject RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler; + private RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler = + Dependency.get(RemoteInputQuickSettingsDisabler.class); private View mReportRejectedTouch; @@ -422,17 +423,18 @@ public class StatusBar extends SystemUI implements DemoMode, private final int[] mAbsPos = new int[2]; private final ArrayList<Runnable> mPostCollapseRunnables = new ArrayList<>(); - @Inject NotificationGutsManager mGutsManager; - @Inject NotificationLogger mNotificationLogger; - @Inject NotificationEntryManager mEntryManager; + private NotificationGutsManager mGutsManager; + protected NotificationLogger mNotificationLogger; + protected NotificationEntryManager mEntryManager; private NotificationListController mNotificationListController; - @Inject NotificationInterruptionStateProvider mNotificationInterruptionStateProvider; - @Inject NotificationViewHierarchyManager mViewHierarchyManager; - @Inject ForegroundServiceController mForegroundServiceController; - @Inject AppOpsController mAppOpsController; - @Inject KeyguardViewMediator mKeyguardViewMediator; - @Inject ZenModeController mZenController; - @Inject NotificationAlertingManager mNotificationAlertingManager; + private NotificationInterruptionStateProvider mNotificationInterruptionStateProvider; + protected NotificationViewHierarchyManager mViewHierarchyManager; + protected ForegroundServiceController mForegroundServiceController; + protected AppOpsController mAppOpsController; + protected KeyguardViewMediator mKeyguardViewMediator; + private ZenModeController mZenController; + private final NotificationAlertingManager mNotificationAlertingManager = + Dependency.get(NotificationAlertingManager.class); // for disabling the status bar private int mDisabled1 = 0; @@ -443,7 +445,7 @@ public class StatusBar extends SystemUI implements DemoMode, private final Rect mLastFullscreenStackBounds = new Rect(); private final Rect mLastDockedStackBounds = new Rect(); - @Inject DisplayMetrics mDisplayMetrics; + private final DisplayMetrics mDisplayMetrics = Dependency.get(DisplayMetrics.class); // XXX: gesture research private final GestureRecorder mGestureRec = DEBUG_GESTURES @@ -452,7 +454,7 @@ public class StatusBar extends SystemUI implements DemoMode, private ScreenPinningRequest mScreenPinningRequest; - @Inject MetricsLogger mMetricsLogger; + private final MetricsLogger mMetricsLogger = Dependency.get(MetricsLogger.class); // ensure quick settings is disabled until the current user makes it through the setup wizard @VisibleForTesting @@ -489,14 +491,14 @@ public class StatusBar extends SystemUI implements DemoMode, private ViewMediatorCallback mKeyguardViewMediatorCallback; protected ScrimController mScrimController; protected DozeScrimController mDozeScrimController; - @Inject UiOffloadThread mUiOffloadThread; + private final UiOffloadThread mUiOffloadThread = Dependency.get(UiOffloadThread.class); protected boolean mDozing; private boolean mDozingRequested; - @Inject NotificationMediaManager mMediaManager; - @Inject NotificationLockscreenUserManager mLockscreenUserManager; - @Inject NotificationRemoteInputManager mRemoteInputManager; + private NotificationMediaManager mMediaManager; + protected NotificationLockscreenUserManager mLockscreenUserManager; + protected NotificationRemoteInputManager mRemoteInputManager; private boolean mWallpaperSupported; private final BroadcastReceiver mWallpaperChangedReceiver = new BroadcastReceiver() { @@ -567,18 +569,18 @@ public class StatusBar extends SystemUI implements DemoMode, }; private KeyguardUserSwitcher mKeyguardUserSwitcher; - @Inject UserSwitcherController mUserSwitcherController; - @Inject NetworkController mNetworkController; - @Inject BatteryController mBatteryController; + protected UserSwitcherController mUserSwitcherController; + private NetworkController mNetworkController; + private BatteryController mBatteryController; protected boolean mPanelExpanded; private UiModeManager mUiModeManager; protected boolean mIsKeyguard; private LogMaker mStatusBarStateLog; protected NotificationIconAreaController mNotificationIconAreaController; @Nullable private View mAmbientIndicationContainer; - @Inject SysuiColorExtractor mColorExtractor; - @Inject ScreenLifecycle mScreenLifecycle; - @Inject @VisibleForTesting WakefulnessLifecycle mWakefulnessLifecycle; + private SysuiColorExtractor mColorExtractor; + private ScreenLifecycle mScreenLifecycle; + @VisibleForTesting WakefulnessLifecycle mWakefulnessLifecycle; private final View.OnClickListener mGoToLockedShadeListener = v -> { if (mState == StatusBarState.KEYGUARD) { @@ -587,7 +589,8 @@ public class StatusBar extends SystemUI implements DemoMode, } }; private boolean mNoAnimationOnNextBarModeChange; - @Inject SysuiStatusBarStateController mStatusBarStateController; + private final SysuiStatusBarStateController mStatusBarStateController = + (SysuiStatusBarStateController) Dependency.get(StatusBarStateController.class); private final KeyguardUpdateMonitorCallback mUpdateCallback = new KeyguardUpdateMonitorCallback() { @@ -608,18 +611,19 @@ public class StatusBar extends SystemUI implements DemoMode, private HeadsUpAppearanceController mHeadsUpAppearanceController; private boolean mVibrateOnOpening; - @Inject VibratorHelper mVibratorHelper; + private VibratorHelper mVibratorHelper; private ActivityLaunchAnimator mActivityLaunchAnimator; protected StatusBarNotificationPresenter mPresenter; private NotificationActivityStarter mNotificationActivityStarter; private boolean mPulsing; - @Inject BubbleController mBubbleController; + protected BubbleController mBubbleController; private final BubbleController.BubbleExpandListener mBubbleExpandListener = (isExpanding, key) -> { mEntryManager.updateNotifications(); updateScrimController(); }; private ActivityIntentHelper mActivityIntentHelper; + private ShadeController mShadeController; @Override public void onActiveStateChanged(int code, int uid, String packageName, boolean active) { @@ -637,13 +641,41 @@ public class StatusBar extends SystemUI implements DemoMode, @Override public void start() { + mGroupManager = Dependency.get(NotificationGroupManager.class); + mGroupAlertTransferHelper = Dependency.get(NotificationGroupAlertTransferHelper.class); + mVisualStabilityManager = Dependency.get(VisualStabilityManager.class); + mNotificationLogger = Dependency.get(NotificationLogger.class); + mRemoteInputManager = Dependency.get(NotificationRemoteInputManager.class); + mNotificationListener = Dependency.get(NotificationListener.class); mNotificationListener.registerAsSystemService(); + mNetworkController = Dependency.get(NetworkController.class); + mUserSwitcherController = Dependency.get(UserSwitcherController.class); + mScreenLifecycle = Dependency.get(ScreenLifecycle.class); mScreenLifecycle.addObserver(mScreenObserver); + mWakefulnessLifecycle = Dependency.get(WakefulnessLifecycle.class); mWakefulnessLifecycle.addObserver(mWakefulnessObserver); + mBatteryController = Dependency.get(BatteryController.class); + mAssistManager = Dependency.get(AssistManager.class); mUiModeManager = mContext.getSystemService(UiModeManager.class); + mLockscreenUserManager = Dependency.get(NotificationLockscreenUserManager.class); + mGutsManager = Dependency.get(NotificationGutsManager.class); + mMediaManager = Dependency.get(NotificationMediaManager.class); + mEntryManager = Dependency.get(NotificationEntryManager.class); mBypassHeadsUpNotifier.setUp(mEntryManager); + mNotificationInterruptionStateProvider = + Dependency.get(NotificationInterruptionStateProvider.class); + mViewHierarchyManager = Dependency.get(NotificationViewHierarchyManager.class); + mForegroundServiceController = Dependency.get(ForegroundServiceController.class); + mAppOpsController = Dependency.get(AppOpsController.class); + mZenController = Dependency.get(ZenModeController.class); + mKeyguardViewMediator = getComponent(KeyguardViewMediator.class); + mColorExtractor = Dependency.get(SysuiColorExtractor.class); + mDeviceProvisionedController = Dependency.get(DeviceProvisionedController.class); + mNavigationBarController = Dependency.get(NavigationBarController.class); + mBubbleController = Dependency.get(BubbleController.class); mBubbleController.setExpandListener(mBubbleExpandListener); mActivityIntentHelper = new ActivityIntentHelper(mContext); + mBroadcastDispatcher = Dependency.get(BroadcastDispatcher.class); KeyguardSliceProvider sliceProvider = KeyguardSliceProvider.getAttachedInstance(); if (sliceProvider != null) { sliceProvider.initDependencies(mMediaManager, mStatusBarStateController, @@ -666,6 +698,7 @@ public class StatusBar extends SystemUI implements DemoMode, mVibrateOnOpening = mContext.getResources().getBoolean( R.bool.config_vibrateOnIconAnimation); + mVibratorHelper = Dependency.get(VibratorHelper.class); DateTimeView.setReceiverHandler(Dependency.get(Dependency.TIME_TICK_HANDLER)); putComponent(StatusBar.class, this); @@ -679,6 +712,7 @@ public class StatusBar extends SystemUI implements DemoMode, mContext.getSystemService(Context.ACCESSIBILITY_SERVICE); mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); + mKeyguardUpdateMonitor = Dependency.get(KeyguardUpdateMonitor.class); mKeyguardUpdateMonitor.setKeyguardBypassController(mKeyguardBypassController); mBarService = IStatusBarService.Stub.asInterface( ServiceManager.getService(Context.STATUS_BAR_SERVICE)); @@ -867,6 +901,7 @@ public class StatusBar extends SystemUI implements DemoMode, .replace(R.id.status_bar_container, new CollapsedStatusBarFragment(), CollapsedStatusBarFragment.TAG) .commit(); + mIconController = Dependency.get(StatusBarIconController.class); mHeadsUpManager.setUp(mStatusBarWindow, mGroupManager, this, mVisualStabilityManager); Dependency.get(ConfigurationController.class).addCallback(mHeadsUpManager); @@ -912,8 +947,11 @@ public class StatusBar extends SystemUI implements DemoMode, } }); + mAutoHideController = Dependency.get(AutoHideController.class); mAutoHideController.setStatusBar(this); + mLightBarController = Dependency.get(LightBarController.class); + ScrimView scrimBehind = mStatusBarWindow.findViewById(R.id.scrim_behind); ScrimView scrimInFront = mStatusBarWindow.findViewById(R.id.scrim_in_front); ScrimView scrimForBubble = mStatusBarWindow.findViewById(R.id.scrim_for_bubble); @@ -1085,6 +1123,7 @@ public class StatusBar extends SystemUI implements DemoMode, final StatusBarRemoteInputCallback mStatusBarRemoteInputCallback = (StatusBarRemoteInputCallback) Dependency.get( NotificationRemoteInputManager.Callback.class); + mShadeController = Dependency.get(ShadeController.class); final ActivityStarter activityStarter = Dependency.get(ActivityStarter.class); mNotificationActivityStarter = new StatusBarNotificationActivityStarter(mContext, @@ -1092,7 +1131,7 @@ public class StatusBar extends SystemUI implements DemoMode, mHeadsUpManager, activityStarter, mActivityLaunchAnimator, mBarService, mStatusBarStateController, mKeyguardManager, mDreamManager, mRemoteInputManager, mStatusBarRemoteInputCallback, mGroupManager, - mLockscreenUserManager, this, mKeyguardStateController, + mLockscreenUserManager, mShadeController, mKeyguardStateController, mNotificationInterruptionStateProvider, mMetricsLogger, new LockPatternUtils(mContext), Dependency.get(MAIN_HANDLER), Dependency.get(BG_HANDLER), mActivityIntentHelper, mBubbleController); @@ -1101,7 +1140,7 @@ public class StatusBar extends SystemUI implements DemoMode, mEntryManager.setRowBinder(rowBinder); rowBinder.setNotificationClicker(new NotificationClicker( - this, mBubbleController, mNotificationActivityStarter)); + this, Dependency.get(BubbleController.class), mNotificationActivityStarter)); mGroupAlertTransferHelper.bind(mEntryManager, mGroupManager); mNotificationListController.bind(); @@ -4188,11 +4227,12 @@ public class StatusBar extends SystemUI implements DemoMode, // all notifications protected ViewGroup mStackScroller; - @Inject NotificationGroupManager mGroupManager; - @Inject NotificationGroupAlertTransferHelper mGroupAlertTransferHelper; + protected NotificationGroupManager mGroupManager; + + protected NotificationGroupAlertTransferHelper mGroupAlertTransferHelper; // handling reordering - @Inject VisualStabilityManager mVisualStabilityManager; + protected VisualStabilityManager mVisualStabilityManager; protected AccessibilityManager mAccessibilityManager; @@ -4208,9 +4248,10 @@ public class StatusBar extends SystemUI implements DemoMode, protected StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; protected KeyguardManager mKeyguardManager; - @Inject DeviceProvisionedController mDeviceProvisionedController; + private DeviceProvisionedController mDeviceProvisionedController + = Dependency.get(DeviceProvisionedController.class); - @Inject protected NavigationBarController mNavigationBarController; + protected NavigationBarController mNavigationBarController; // UI-specific methods @@ -4226,7 +4267,7 @@ public class StatusBar extends SystemUI implements DemoMode, protected NotificationShelf mNotificationShelf; protected EmptyShadeView mEmptyShadeView; - @Inject AssistManager mAssistManager; + protected AssistManager mAssistManager; public boolean isDeviceInteractive() { return mDeviceInteractive; @@ -4285,7 +4326,7 @@ public class StatusBar extends SystemUI implements DemoMode, } } - @Inject NotificationListener mNotificationListener; + protected NotificationListener mNotificationListener; public void setNotificationSnoozed(StatusBarNotification sbn, SnoozeOption snoozeOption) { if (snoozeOption.getSnoozeCriterion() != null) { @@ -4421,7 +4462,8 @@ public class StatusBar extends SystemUI implements DemoMode, executeActionDismissingKeyguard(() -> { try { intent.send(null, 0, null, null, null, null, getActivityOptions( - mActivityLaunchAnimator.getLaunchAnimation(associatedView, isOccluded()))); + mActivityLaunchAnimator.getLaunchAnimation(associatedView, + mShadeController.isOccluded()))); } catch (PendingIntent.CanceledException e) { // the stack trace isn't very helpful here. // Just log the exception message. diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java index 237f6ac0f420..0bff5aa9e991 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java @@ -80,7 +80,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; @RunWith(AndroidTestingRunner.class) -@RunWithLooper(setAsMainLooper = true) +@RunWithLooper() @SmallTest public class NavigationBarFragmentTest extends SysuiBaseFragmentTest { private static final int EXTERNAL_DISPLAY_ID = 2; @@ -217,7 +217,7 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest { // Set IME window status for default NavBar. mCommandQueue.setImeWindowStatus(DEFAULT_DISPLAY, null, IME_VISIBLE, BACK_DISPOSITION_DEFAULT, true, false); - processAllMessages(); + Handler.getMain().runWithScissors(() -> { }, 500); // Verify IME window state will be updated in default NavBar & external NavBar state reset. assertEquals(NAVIGATION_HINT_BACK_ALT | NAVIGATION_HINT_IME_SHOWN, @@ -228,7 +228,7 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest { // Set IME window status for external NavBar. mCommandQueue.setImeWindowStatus(EXTERNAL_DISPLAY_ID, null, IME_VISIBLE, BACK_DISPOSITION_DEFAULT, true, false); - processAllMessages(); + Handler.getMain().runWithScissors(() -> { }, 500); // Verify IME window state will be updated in external NavBar & default NavBar state reset. assertEquals(NAVIGATION_HINT_BACK_ALT | NAVIGATION_HINT_IME_SHOWN, diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java index f163886193b4..7de7f9e23813 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java @@ -59,7 +59,6 @@ import android.support.test.metricshelper.MetricsAsserts; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; -import android.util.DisplayMetrics; import android.util.SparseArray; import android.view.ViewGroup.LayoutParams; @@ -74,19 +73,16 @@ import com.android.systemui.Dependency; import com.android.systemui.ForegroundServiceController; import com.android.systemui.InitController; import com.android.systemui.R; +import com.android.systemui.SystemUIFactory; import com.android.systemui.SysuiTestCase; import com.android.systemui.UiOffloadThread; import com.android.systemui.appops.AppOpsController; import com.android.systemui.assist.AssistManager; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.bubbles.BubbleController; -import com.android.systemui.classifier.FalsingManagerFake; -import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.doze.DozeEvent; import com.android.systemui.doze.DozeHost; -import com.android.systemui.doze.DozeLog; import com.android.systemui.keyguard.KeyguardViewMediator; -import com.android.systemui.keyguard.ScreenLifecycle; import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.plugins.ActivityStarter.OnDismissAction; import com.android.systemui.plugins.FalsingManager; @@ -102,18 +98,14 @@ import com.android.systemui.statusbar.NotificationPresenter; import com.android.systemui.statusbar.NotificationRemoteInputManager; import com.android.systemui.statusbar.NotificationShelf; import com.android.systemui.statusbar.NotificationViewHierarchyManager; -import com.android.systemui.statusbar.PulseExpansionHandler; import com.android.systemui.statusbar.RemoteInputController; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.StatusBarStateControllerImpl; -import com.android.systemui.statusbar.SysuiStatusBarStateController; -import com.android.systemui.statusbar.notification.BypassHeadsUpNotifier; import com.android.systemui.statusbar.notification.NotificationAlertingManager; import com.android.systemui.statusbar.notification.NotificationEntryListener; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.NotificationFilter; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; -import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; import com.android.systemui.statusbar.notification.VisualStabilityManager; import com.android.systemui.statusbar.notification.collection.NotificationData; import com.android.systemui.statusbar.notification.collection.NotificationEntry; @@ -124,7 +116,6 @@ import com.android.systemui.statusbar.notification.stack.NotificationStackScroll import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.KeyguardStateController; -import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler; import com.android.systemui.statusbar.policy.UserSwitcherController; import org.junit.Before; @@ -157,7 +148,10 @@ public class StatusBarTest extends SysuiTestCase { @Mock private ArrayList<NotificationEntry> mNotificationList; @Mock private BiometricUnlockController mBiometricUnlockController; @Mock private NotificationData mNotificationData; - @Mock private NotificationInterruptionStateProvider.HeadsUpSuppressor mHeadsUpSuppressor; + @Mock + private NotificationInterruptionStateProvider.HeadsUpSuppressor mHeadsUpSuppressor; + + // Mock dependencies: @Mock private NotificationViewHierarchyManager mViewHierarchyManager; @Mock private VisualStabilityManager mVisualStabilityManager; @Mock private NotificationListener mNotificationListener; @@ -169,38 +163,51 @@ public class StatusBarTest extends SysuiTestCase { @Mock private BatteryController mBatteryController; @Mock private DeviceProvisionedController mDeviceProvisionedController; @Mock private StatusBarNotificationPresenter mNotificationPresenter; - @Mock private NotificationEntryListener mEntryListener; - @Mock private NotificationFilter mNotificationFilter; - @Mock private NotificationAlertingManager mNotificationAlertingManager; - @Mock private NotificationLogger.ExpansionStateLogger mExpansionStateLogger; - @Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor; - @Mock private AmbientDisplayConfiguration mAmbientDisplayConfiguration; - @Mock private StatusBarWindowView mStatusBarWindowView; - @Mock private BroadcastDispatcher mBroadcastDispatcher; - @Mock private AssistManager mAssistManager; - @Mock private NotificationGutsManager mNotificationGutsManager; - @Mock private NotificationMediaManager mNotificationMediaManager; - @Mock private ForegroundServiceController mForegroundServiceController; - @Mock private AppOpsController mAppOpsController; - @Mock private NavigationBarController mNavigationBarController; - @Mock private BypassHeadsUpNotifier mBypassHeadsUpNotifier; - @Mock private SysuiColorExtractor mColorExtractor; - @Mock private DozeLog mDozeLog; - @Mock private PulseExpansionHandler mPulseExpansionHandler; - @Mock private RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler; - @Mock private NotificationWakeUpCoordinator mNotificationWakeUpCoordinator; - @Mock private KeyguardBypassController mKeyguardBypassController; + @Mock + private NotificationEntryListener mEntryListener; + @Mock + private NotificationFilter mNotificationFilter; + @Mock + private NotificationAlertingManager mNotificationAlertingManager; + @Mock + private NotificationLogger.ExpansionStateLogger mExpansionStateLogger; + @Mock + private KeyguardUpdateMonitor mKeyguardUpdateMonitor; + @Mock + private AmbientDisplayConfiguration mAmbientDisplayConfiguration; + @Mock + private StatusBarWindowView mStatusBarWindowView; + @Mock + private BroadcastDispatcher mBroadcastDispatcher; private TestableStatusBar mStatusBar; private FakeMetricsLogger mMetricsLogger; private PowerManager mPowerManager; + private TestableNotificationEntryManager mEntryManager; private TestableNotificationInterruptionStateProvider mNotificationInterruptionStateProvider; + private NotificationLogger mNotificationLogger; private CommandQueue mCommandQueue; @Before public void setup() throws Exception { MockitoAnnotations.initMocks(this); + mDependency.injectMockDependency(AssistManager.class); + mDependency.injectMockDependency(NotificationGutsManager.class); + mDependency.injectMockDependency(NotificationMediaManager.class); + mDependency.injectMockDependency(ForegroundServiceController.class); + mDependency.injectTestDependency(NotificationViewHierarchyManager.class, + mViewHierarchyManager); + mDependency.injectTestDependency(VisualStabilityManager.class, mVisualStabilityManager); + mDependency.injectTestDependency(NotificationListener.class, mNotificationListener); + mDependency.injectTestDependency(AppOpsController.class, mock(AppOpsController.class)); + mDependency.injectTestDependency(StatusBarStateController.class, mStatusBarStateController); + mDependency.injectTestDependency(DeviceProvisionedController.class, + mDeviceProvisionedController); + mDependency.injectMockDependency(BubbleController.class); mDependency.injectTestDependency(NotificationFilter.class, mNotificationFilter); + mDependency.injectTestDependency(NotificationAlertingManager.class, + mNotificationAlertingManager); + mDependency.injectTestDependency(BroadcastDispatcher.class, mBroadcastDispatcher); IPowerManager powerManagerService = mock(IPowerManager.class); mPowerManager = new PowerManager(mContext, powerManagerService, @@ -210,17 +217,21 @@ public class StatusBarTest extends SysuiTestCase { new TestableNotificationInterruptionStateProvider(mContext, mPowerManager, mDreamManager, mAmbientDisplayConfiguration, mNotificationFilter, mStatusBarStateController, mBatteryController); + mDependency.injectTestDependency(NotificationInterruptionStateProvider.class, + mNotificationInterruptionStateProvider); + mDependency.injectMockDependency(NavigationBarController.class); mContext.addMockSystemService(TrustManager.class, mock(TrustManager.class)); mContext.addMockSystemService(FingerprintManager.class, mock(FingerprintManager.class)); mMetricsLogger = new FakeMetricsLogger(); - TestableNotificationEntryManager entryManager = new TestableNotificationEntryManager( - mContext); - NotificationLogger notificationLogger = new NotificationLogger(mNotificationListener, - Dependency.get(UiOffloadThread.class), entryManager, mStatusBarStateController, + mDependency.injectTestDependency(MetricsLogger.class, mMetricsLogger); + mEntryManager = new TestableNotificationEntryManager(mContext); + mNotificationLogger = new NotificationLogger(mNotificationListener, + Dependency.get(UiOffloadThread.class), mEntryManager, mStatusBarStateController, mExpansionStateLogger); - notificationLogger.setVisibilityReporter(mock(Runnable.class)); + mNotificationLogger.setVisibilityReporter(mock(Runnable.class)); + mDependency.injectTestDependency(NotificationLogger.class, mNotificationLogger); mCommandQueue = mock(CommandQueue.class); when(mCommandQueue.asBinder()).thenReturn(new Binder()); @@ -249,71 +260,32 @@ public class StatusBarTest extends SysuiTestCase { mHeadsUpManager, mHeadsUpSuppressor); when(mRemoteInputManager.getController()).thenReturn(mRemoteInputController); - mStatusBar = new TestableStatusBar( - mStatusBarKeyguardViewManager, - mKeyguardIndicationController, - mStackScroller, - mPowerManager, - mNotificationPanelView, - mBarService, - mNotificationListener, - notificationLogger, - mVisualStabilityManager, - mViewHierarchyManager, - entryManager, - mScrimController, - mBiometricUnlockController, - mKeyguardViewMediator, - mRemoteInputManager, - mock(NotificationGroupManager.class), - mock(NotificationGroupAlertTransferHelper.class), - new FalsingManagerFake(), - mock(StatusBarWindowController.class), - mock(NotificationIconAreaController.class), - mDozeScrimController, - mock(NotificationShelf.class), - mLockscreenUserManager, - mCommandQueue, - mNotificationPresenter, - mock(BubbleController.class), - mNavigationBarController, - mock(AutoHideController.class), - mKeyguardUpdateMonitor, - mStatusBarWindowView, - mBroadcastDispatcher, - mAssistManager, - mNotificationGutsManager, - mNotificationMediaManager, - mForegroundServiceController, - mAppOpsController, - mStatusBarStateController, - mDeviceProvisionedController, - mNotificationAlertingManager, - mNotificationInterruptionStateProvider, - mMetricsLogger, - mHeadsUpManager, - mKeyguardStateController, - new ScreenLifecycle(), - mBypassHeadsUpNotifier, - mColorExtractor, - new DisplayMetrics(), - Dependency.get(UiOffloadThread.class), - mDozeLog, - mPulseExpansionHandler, - new RemoteInputQuickSettingsDisabler( - mContext, - new ConfigurationControllerImpl(mContext) - ), - mNotificationWakeUpCoordinator, - mKeyguardBypassController); + mStatusBar = new TestableStatusBar(mStatusBarKeyguardViewManager, + mKeyguardIndicationController, mStackScroller, + mPowerManager, mNotificationPanelView, mBarService, mNotificationListener, + mNotificationLogger, mVisualStabilityManager, mViewHierarchyManager, + mEntryManager, mScrimController, mBiometricUnlockController, + mKeyguardViewMediator, mRemoteInputManager, mock(NotificationGroupManager.class), + mock(NotificationGroupAlertTransferHelper.class), mock(FalsingManager.class), + mock(StatusBarWindowController.class), mock(NotificationIconAreaController.class), + mDozeScrimController, mock(NotificationShelf.class), + mLockscreenUserManager, mCommandQueue, mNotificationPresenter, + mock(BubbleController.class), mock(NavigationBarController.class), + mock(AutoHideController.class), mKeyguardUpdateMonitor, mStatusBarWindowView, + mBroadcastDispatcher); mStatusBar.mContext = mContext; mStatusBar.mComponents = mContext.getComponents(); + SystemUIFactory.getInstance().getRootComponent() + .getStatusBarInjector() + .createStatusBar(mStatusBar); + mStatusBar.mKeyguardStateController = mKeyguardStateController; + mStatusBar.setHeadsUpManager(mHeadsUpManager); mStatusBar.putComponent(StatusBar.class, mStatusBar); Dependency.get(InitController.class).executePostInitTasks(); - entryManager.setUpForTest(mock(NotificationPresenter.class), mStackScroller, + mEntryManager.setUpForTest(mock(NotificationPresenter.class), mStackScroller, mHeadsUpManager, mNotificationData); - entryManager.addNotificationEntryListener(mEntryListener); - notificationLogger.setUpWithContainer(mStackScroller); + mEntryManager.addNotificationEntryListener(mEntryListener); + mNotificationLogger.setUpWithContainer(mStackScroller); } @Test @@ -849,28 +821,7 @@ public class StatusBarTest extends SysuiTestCase { AutoHideController autoHideController, KeyguardUpdateMonitor keyguardUpdateMonitor, StatusBarWindowView statusBarWindow, - BroadcastDispatcher broadcastDispatcher, - AssistManager assistManager, - NotificationGutsManager notificationGutsManager, - NotificationMediaManager notificationMediaManager, - ForegroundServiceController foregroundServiceController, - AppOpsController appOpsController, - SysuiStatusBarStateController statusBarStateController, - DeviceProvisionedController deviceProvisionedController, - NotificationAlertingManager notificationAlertingManager, - NotificationInterruptionStateProvider notificationInterruptionStateProvider, - MetricsLogger metricsLogger, - HeadsUpManagerPhone headsUpManager, - KeyguardStateController keyguardStateController, - ScreenLifecycle screenLifecycle, - BypassHeadsUpNotifier bypassHeadsUpNotifier, - SysuiColorExtractor colorExtractor, DisplayMetrics displayMetrics, - UiOffloadThread uiOffloadThread, - DozeLog dozeLog, - PulseExpansionHandler pulseExpansionHandler, - RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler, - NotificationWakeUpCoordinator notificationWakeUpCoordinator, - KeyguardBypassController keyguardBypassController) { + BroadcastDispatcher broadcastDispatcher) { mStatusBarKeyguardViewManager = man; mKeyguardIndicationController = key; mStackScroller = stack; @@ -905,28 +856,6 @@ public class StatusBarTest extends SysuiTestCase { mStatusBarWindow = statusBarWindow; mDozeServiceHost.mWakeLockScreenPerformsAuth = false; mBroadcastDispatcher = broadcastDispatcher; - mAssistManager = assistManager; - mGutsManager = notificationGutsManager; - mMediaManager = notificationMediaManager; - mForegroundServiceController = foregroundServiceController; - mAppOpsController = appOpsController; - mStatusBarStateController = statusBarStateController; - mDeviceProvisionedController = deviceProvisionedController; - mNotificationAlertingManager = notificationAlertingManager; - mNotificationInterruptionStateProvider = notificationInterruptionStateProvider; - mMetricsLogger = metricsLogger; - mHeadsUpManager = headsUpManager; - mKeyguardStateController = keyguardStateController; - mScreenLifecycle = screenLifecycle; - mBypassHeadsUpNotifier = bypassHeadsUpNotifier; - mColorExtractor = colorExtractor; - mDisplayMetrics = displayMetrics; - mUiOffloadThread = uiOffloadThread; - mDozeLog = dozeLog; - mPulseExpansionHandler = pulseExpansionHandler; - mRemoteInputQuickSettingsDisabler = remoteInputQuickSettingsDisabler; - mWakeUpCoordinator = notificationWakeUpCoordinator; - mKeyguardBypassController = keyguardBypassController; } private WakefulnessLifecycle createAwakeWakefulnessLifecycle() { @@ -945,6 +874,10 @@ public class StatusBarTest extends SysuiTestCase { mState = state; } + void setHeadsUpManager(HeadsUpManagerPhone headsUpManager) { + mHeadsUpManager = headsUpManager; + } + public void setUserSetupForTest(boolean userSetup) { mUserSetup = userSetup; } |