Remove many (most) of the calls to Dependency.get() from StatusBar.
This reverts commit 82679b58c1135f7459aca913f79277ae442053ab.
Reason for revert: Found bug in original code. Updating to fix http://b/141882822.
Bug: 141882822
Test: atest SystemUITests
Change-Id: Iaf2f719512c2bb16f098a99c2d269f2f1a8ea2b3
diff --git a/packages/SystemUI/src/com/android/systemui/DependencyBinder.java b/packages/SystemUI/src/com/android/systemui/DependencyBinder.java
index 818b5e1..c4dce1e 100644
--- a/packages/SystemUI/src/com/android/systemui/DependencyBinder.java
+++ b/packages/SystemUI/src/com/android/systemui/DependencyBinder.java
@@ -30,6 +30,7 @@
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;
@@ -234,4 +235,10 @@
*/
@Binds
public abstract FalsingManager provideFalsingmanager(FalsingManagerProxy falsingManagerImpl);
+
+ /**
+ */
+ @Binds
+ public abstract SysuiStatusBarStateController providesSysuiStatusBarStateController(
+ StatusBarStateControllerImpl statusBarStateControllerImpl);
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index d2a9c75..f159d8c 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -100,6 +100,7 @@
import java.util.ArrayList;
import javax.inject.Inject;
+import javax.inject.Singleton;
/**
* Mediates requests related to the keyguard. This includes queries about the
@@ -142,6 +143,7 @@
* directly to the keyguard UI is posted to a {@link android.os.Handler} to ensure it is taken on the UI
* thread of the keyguard.
*/
+@Singleton
public class KeyguardViewMediator extends SystemUI {
private static final int KEYGUARD_DISPLAY_TIMEOUT_DELAY_DEFAULT = 30000;
private static final long KEYGUARD_DONE_PENDING_TIMEOUT_MS = 3000;
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 5fc2d9b..e79f141 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 @@
private BrightnessMirrorController mBrightnessMirrorController;
private boolean mBrightnessMirrorVisible;
protected BiometricUnlockController mBiometricUnlockController;
- private LightBarController mLightBarController;
+ @Inject LightBarController mLightBarController;
protected LockscreenWallpaper mLockscreenWallpaper;
@VisibleForTesting
- protected AutoHideController mAutoHideController;
+ @Inject AutoHideController mAutoHideController;
private int mNaturalBarHeight = -1;
@@ -361,7 +361,7 @@
private int mStatusBarWindowState = WINDOW_STATE_SHOWING;
protected StatusBarWindowController mStatusBarWindowController;
@VisibleForTesting
- KeyguardUpdateMonitor mKeyguardUpdateMonitor;
+ @Inject KeyguardUpdateMonitor mKeyguardUpdateMonitor;
@VisibleForTesting
DozeServiceHost mDozeServiceHost = new DozeServiceHost();
private boolean mWakeUpComingFromTouch;
@@ -369,7 +369,7 @@
private final Object mQueueLock = new Object();
- protected StatusBarIconController mIconController;
+ @Inject StatusBarIconController mIconController;
@Inject
DozeLog mDozeLog;
@Inject
@@ -400,7 +400,7 @@
protected FalsingManager mFalsingManager;
@VisibleForTesting
- BroadcastDispatcher mBroadcastDispatcher;
+ @Inject BroadcastDispatcher mBroadcastDispatcher;
// expanded notifications
protected NotificationPanelView mNotificationPanel; // the sliding/resizing panel within the notification window
@@ -413,8 +413,7 @@
// RemoteInputView to be activated after unlock
private View mPendingRemoteInputView;
- private RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler =
- Dependency.get(RemoteInputQuickSettingsDisabler.class);
+ @Inject RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler;
private View mReportRejectedTouch;
@@ -423,18 +422,17 @@
private final int[] mAbsPos = new int[2];
private final ArrayList<Runnable> mPostCollapseRunnables = new ArrayList<>();
- private NotificationGutsManager mGutsManager;
- protected NotificationLogger mNotificationLogger;
- protected NotificationEntryManager mEntryManager;
+ @Inject NotificationGutsManager mGutsManager;
+ @Inject NotificationLogger mNotificationLogger;
+ @Inject NotificationEntryManager mEntryManager;
private NotificationListController mNotificationListController;
- 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);
+ @Inject NotificationInterruptionStateProvider mNotificationInterruptionStateProvider;
+ @Inject NotificationViewHierarchyManager mViewHierarchyManager;
+ @Inject ForegroundServiceController mForegroundServiceController;
+ @Inject AppOpsController mAppOpsController;
+ @Inject KeyguardViewMediator mKeyguardViewMediator;
+ @Inject ZenModeController mZenController;
+ @Inject NotificationAlertingManager mNotificationAlertingManager;
// for disabling the status bar
private int mDisabled1 = 0;
@@ -445,7 +443,7 @@
private final Rect mLastFullscreenStackBounds = new Rect();
private final Rect mLastDockedStackBounds = new Rect();
- private final DisplayMetrics mDisplayMetrics = Dependency.get(DisplayMetrics.class);
+ @Inject DisplayMetrics mDisplayMetrics;
// XXX: gesture research
private final GestureRecorder mGestureRec = DEBUG_GESTURES
@@ -454,7 +452,7 @@
private ScreenPinningRequest mScreenPinningRequest;
- private final MetricsLogger mMetricsLogger = Dependency.get(MetricsLogger.class);
+ @Inject MetricsLogger mMetricsLogger;
// ensure quick settings is disabled until the current user makes it through the setup wizard
@VisibleForTesting
@@ -491,14 +489,14 @@
private ViewMediatorCallback mKeyguardViewMediatorCallback;
protected ScrimController mScrimController;
protected DozeScrimController mDozeScrimController;
- private final UiOffloadThread mUiOffloadThread = Dependency.get(UiOffloadThread.class);
+ @Inject UiOffloadThread mUiOffloadThread;
protected boolean mDozing;
private boolean mDozingRequested;
- private NotificationMediaManager mMediaManager;
- protected NotificationLockscreenUserManager mLockscreenUserManager;
- protected NotificationRemoteInputManager mRemoteInputManager;
+ @Inject NotificationMediaManager mMediaManager;
+ @Inject NotificationLockscreenUserManager mLockscreenUserManager;
+ @Inject NotificationRemoteInputManager mRemoteInputManager;
private boolean mWallpaperSupported;
private final BroadcastReceiver mWallpaperChangedReceiver = new BroadcastReceiver() {
@@ -569,18 +567,18 @@
};
private KeyguardUserSwitcher mKeyguardUserSwitcher;
- protected UserSwitcherController mUserSwitcherController;
- private NetworkController mNetworkController;
- private BatteryController mBatteryController;
+ @Inject UserSwitcherController mUserSwitcherController;
+ @Inject NetworkController mNetworkController;
+ @Inject BatteryController mBatteryController;
protected boolean mPanelExpanded;
private UiModeManager mUiModeManager;
protected boolean mIsKeyguard;
private LogMaker mStatusBarStateLog;
protected NotificationIconAreaController mNotificationIconAreaController;
@Nullable private View mAmbientIndicationContainer;
- private SysuiColorExtractor mColorExtractor;
- private ScreenLifecycle mScreenLifecycle;
- @VisibleForTesting WakefulnessLifecycle mWakefulnessLifecycle;
+ @Inject SysuiColorExtractor mColorExtractor;
+ @Inject ScreenLifecycle mScreenLifecycle;
+ @Inject @VisibleForTesting WakefulnessLifecycle mWakefulnessLifecycle;
private final View.OnClickListener mGoToLockedShadeListener = v -> {
if (mState == StatusBarState.KEYGUARD) {
@@ -589,8 +587,7 @@
}
};
private boolean mNoAnimationOnNextBarModeChange;
- private final SysuiStatusBarStateController mStatusBarStateController =
- (SysuiStatusBarStateController) Dependency.get(StatusBarStateController.class);
+ @Inject SysuiStatusBarStateController mStatusBarStateController;
private final KeyguardUpdateMonitorCallback mUpdateCallback =
new KeyguardUpdateMonitorCallback() {
@@ -611,19 +608,18 @@
private HeadsUpAppearanceController mHeadsUpAppearanceController;
private boolean mVibrateOnOpening;
- private VibratorHelper mVibratorHelper;
+ @Inject VibratorHelper mVibratorHelper;
private ActivityLaunchAnimator mActivityLaunchAnimator;
protected StatusBarNotificationPresenter mPresenter;
private NotificationActivityStarter mNotificationActivityStarter;
private boolean mPulsing;
- protected BubbleController mBubbleController;
+ @Inject 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) {
@@ -641,41 +637,13 @@
@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,
@@ -698,7 +666,6 @@
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);
@@ -712,7 +679,6 @@
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));
@@ -901,7 +867,6 @@
.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);
@@ -947,11 +912,8 @@
}
});
- 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);
@@ -1123,7 +1085,6 @@
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,
@@ -1131,7 +1092,7 @@
mHeadsUpManager, activityStarter, mActivityLaunchAnimator,
mBarService, mStatusBarStateController, mKeyguardManager, mDreamManager,
mRemoteInputManager, mStatusBarRemoteInputCallback, mGroupManager,
- mLockscreenUserManager, mShadeController, mKeyguardStateController,
+ mLockscreenUserManager, this, mKeyguardStateController,
mNotificationInterruptionStateProvider, mMetricsLogger,
new LockPatternUtils(mContext), Dependency.get(MAIN_HANDLER),
Dependency.get(BG_HANDLER), mActivityIntentHelper, mBubbleController);
@@ -1140,7 +1101,7 @@
mEntryManager.setRowBinder(rowBinder);
rowBinder.setNotificationClicker(new NotificationClicker(
- this, Dependency.get(BubbleController.class), mNotificationActivityStarter));
+ this, mBubbleController, mNotificationActivityStarter));
mGroupAlertTransferHelper.bind(mEntryManager, mGroupManager);
mNotificationListController.bind();
@@ -4227,12 +4188,11 @@
// all notifications
protected ViewGroup mStackScroller;
- protected NotificationGroupManager mGroupManager;
-
- protected NotificationGroupAlertTransferHelper mGroupAlertTransferHelper;
+ @Inject NotificationGroupManager mGroupManager;
+ @Inject NotificationGroupAlertTransferHelper mGroupAlertTransferHelper;
// handling reordering
- protected VisualStabilityManager mVisualStabilityManager;
+ @Inject VisualStabilityManager mVisualStabilityManager;
protected AccessibilityManager mAccessibilityManager;
@@ -4248,10 +4208,9 @@
protected StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
protected KeyguardManager mKeyguardManager;
- private DeviceProvisionedController mDeviceProvisionedController
- = Dependency.get(DeviceProvisionedController.class);
+ @Inject DeviceProvisionedController mDeviceProvisionedController;
- protected NavigationBarController mNavigationBarController;
+ @Inject protected NavigationBarController mNavigationBarController;
// UI-specific methods
@@ -4267,7 +4226,7 @@
protected NotificationShelf mNotificationShelf;
protected EmptyShadeView mEmptyShadeView;
- protected AssistManager mAssistManager;
+ @Inject AssistManager mAssistManager;
public boolean isDeviceInteractive() {
return mDeviceInteractive;
@@ -4326,7 +4285,7 @@
}
}
- protected NotificationListener mNotificationListener;
+ @Inject NotificationListener mNotificationListener;
public void setNotificationSnoozed(StatusBarNotification sbn, SnoozeOption snoozeOption) {
if (snoozeOption.getSnoozeCriterion() != null) {
@@ -4462,8 +4421,7 @@
executeActionDismissingKeyguard(() -> {
try {
intent.send(null, 0, null, null, null, null, getActivityOptions(
- mActivityLaunchAnimator.getLaunchAnimation(associatedView,
- mShadeController.isOccluded())));
+ mActivityLaunchAnimator.getLaunchAnimation(associatedView, 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 0bff5aa..237f6ac 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.MockitoAnnotations;
@RunWith(AndroidTestingRunner.class)
-@RunWithLooper()
+@RunWithLooper(setAsMainLooper = true)
@SmallTest
public class NavigationBarFragmentTest extends SysuiBaseFragmentTest {
private static final int EXTERNAL_DISPLAY_ID = 2;
@@ -217,7 +217,7 @@
// Set IME window status for default NavBar.
mCommandQueue.setImeWindowStatus(DEFAULT_DISPLAY, null, IME_VISIBLE,
BACK_DISPOSITION_DEFAULT, true, false);
- Handler.getMain().runWithScissors(() -> { }, 500);
+ processAllMessages();
// 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 @@
// Set IME window status for external NavBar.
mCommandQueue.setImeWindowStatus(EXTERNAL_DISPLAY_ID, null,
IME_VISIBLE, BACK_DISPOSITION_DEFAULT, true, false);
- Handler.getMain().runWithScissors(() -> { }, 500);
+ processAllMessages();
// 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 7de7f9e..f163886 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,6 +59,7 @@
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;
@@ -73,16 +74,19 @@
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;
@@ -98,14 +102,18 @@
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;
@@ -116,6 +124,7 @@
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;
@@ -148,10 +157,7 @@
@Mock private ArrayList<NotificationEntry> mNotificationList;
@Mock private BiometricUnlockController mBiometricUnlockController;
@Mock private NotificationData mNotificationData;
- @Mock
- private NotificationInterruptionStateProvider.HeadsUpSuppressor mHeadsUpSuppressor;
-
- // Mock dependencies:
+ @Mock private NotificationInterruptionStateProvider.HeadsUpSuppressor mHeadsUpSuppressor;
@Mock private NotificationViewHierarchyManager mViewHierarchyManager;
@Mock private VisualStabilityManager mVisualStabilityManager;
@Mock private NotificationListener mNotificationListener;
@@ -163,51 +169,38 @@
@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 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;
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,
@@ -217,21 +210,17 @@
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();
- mDependency.injectTestDependency(MetricsLogger.class, mMetricsLogger);
- mEntryManager = new TestableNotificationEntryManager(mContext);
- mNotificationLogger = new NotificationLogger(mNotificationListener,
- Dependency.get(UiOffloadThread.class), mEntryManager, mStatusBarStateController,
+ TestableNotificationEntryManager entryManager = new TestableNotificationEntryManager(
+ mContext);
+ NotificationLogger notificationLogger = new NotificationLogger(mNotificationListener,
+ Dependency.get(UiOffloadThread.class), entryManager, mStatusBarStateController,
mExpansionStateLogger);
- mNotificationLogger.setVisibilityReporter(mock(Runnable.class));
- mDependency.injectTestDependency(NotificationLogger.class, mNotificationLogger);
+ notificationLogger.setVisibilityReporter(mock(Runnable.class));
mCommandQueue = mock(CommandQueue.class);
when(mCommandQueue.asBinder()).thenReturn(new Binder());
@@ -260,32 +249,71 @@
mHeadsUpManager, mHeadsUpSuppressor);
when(mRemoteInputManager.getController()).thenReturn(mRemoteInputController);
- 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 = 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.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();
- mEntryManager.setUpForTest(mock(NotificationPresenter.class), mStackScroller,
+ entryManager.setUpForTest(mock(NotificationPresenter.class), mStackScroller,
mHeadsUpManager, mNotificationData);
- mEntryManager.addNotificationEntryListener(mEntryListener);
- mNotificationLogger.setUpWithContainer(mStackScroller);
+ entryManager.addNotificationEntryListener(mEntryListener);
+ notificationLogger.setUpWithContainer(mStackScroller);
}
@Test
@@ -821,7 +849,28 @@
AutoHideController autoHideController,
KeyguardUpdateMonitor keyguardUpdateMonitor,
StatusBarWindowView statusBarWindow,
- BroadcastDispatcher broadcastDispatcher) {
+ 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) {
mStatusBarKeyguardViewManager = man;
mKeyguardIndicationController = key;
mStackScroller = stack;
@@ -856,6 +905,28 @@
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() {
@@ -874,10 +945,6 @@
mState = state;
}
- void setHeadsUpManager(HeadsUpManagerPhone headsUpManager) {
- mHeadsUpManager = headsUpManager;
- }
-
public void setUserSetupForTest(boolean userSetup) {
mUserSetup = userSetup;
}