DO NOT MERGE Refactor StatusBar and CarStatusBar to optimize automotive boot time.
Test: Robolectric -- Robolectric results are identical before and after this change. Test: Manual -- Hawk is booting successfully and interacting with different parts of CarStatusBar is not failing. Test: Manual -- Pixel 2 is booting successfully and interacting with different parts of StatusBar is not failing. Bug: 142342652 Bug: 140999054 Change-Id: Idf5e152aa661f06b7a041d39d759595636807dce
This commit is contained in:
@@ -60,26 +60,45 @@ import com.android.keyguard.KeyguardUpdateMonitor;
|
|||||||
import com.android.systemui.BatteryMeterView;
|
import com.android.systemui.BatteryMeterView;
|
||||||
import com.android.systemui.CarSystemUIFactory;
|
import com.android.systemui.CarSystemUIFactory;
|
||||||
import com.android.systemui.Dependency;
|
import com.android.systemui.Dependency;
|
||||||
|
import com.android.systemui.ForegroundServiceController;
|
||||||
import com.android.systemui.Prefs;
|
import com.android.systemui.Prefs;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.SystemUIFactory;
|
import com.android.systemui.SystemUIFactory;
|
||||||
import com.android.systemui.classifier.FalsingLog;
|
import com.android.systemui.classifier.FalsingLog;
|
||||||
|
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
||||||
import com.android.systemui.fragments.FragmentHostManager;
|
import com.android.systemui.fragments.FragmentHostManager;
|
||||||
import com.android.systemui.keyguard.ScreenLifecycle;
|
import com.android.systemui.keyguard.ScreenLifecycle;
|
||||||
|
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||||
import com.android.systemui.plugins.FalsingManager;
|
import com.android.systemui.plugins.FalsingManager;
|
||||||
import com.android.systemui.plugins.qs.QS;
|
import com.android.systemui.plugins.qs.QS;
|
||||||
import com.android.systemui.qs.car.CarQSFragment;
|
import com.android.systemui.qs.car.CarQSFragment;
|
||||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||||
import com.android.systemui.shared.system.TaskStackChangeListener;
|
import com.android.systemui.shared.system.TaskStackChangeListener;
|
||||||
import com.android.systemui.statusbar.FlingAnimationUtils;
|
import com.android.systemui.statusbar.FlingAnimationUtils;
|
||||||
|
import com.android.systemui.statusbar.NavigationBarController;
|
||||||
|
import com.android.systemui.statusbar.NotificationListener;
|
||||||
|
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
|
||||||
|
import com.android.systemui.statusbar.NotificationMediaManager;
|
||||||
|
import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
||||||
|
import com.android.systemui.statusbar.NotificationViewHierarchyManager;
|
||||||
import com.android.systemui.statusbar.StatusBarState;
|
import com.android.systemui.statusbar.StatusBarState;
|
||||||
import com.android.systemui.statusbar.car.hvac.HvacController;
|
import com.android.systemui.statusbar.car.hvac.HvacController;
|
||||||
import com.android.systemui.statusbar.car.hvac.TemperatureView;
|
import com.android.systemui.statusbar.car.hvac.TemperatureView;
|
||||||
|
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||||
|
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
||||||
|
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
||||||
|
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
||||||
import com.android.systemui.statusbar.phone.CollapsedStatusBarFragment;
|
import com.android.systemui.statusbar.phone.CollapsedStatusBarFragment;
|
||||||
|
import com.android.systemui.statusbar.phone.LightBarController;
|
||||||
|
import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper;
|
||||||
|
import com.android.systemui.statusbar.phone.NotificationGroupManager;
|
||||||
import com.android.systemui.statusbar.phone.StatusBar;
|
import com.android.systemui.statusbar.phone.StatusBar;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
||||||
import com.android.systemui.statusbar.policy.BatteryController;
|
import com.android.systemui.statusbar.policy.BatteryController;
|
||||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
||||||
|
import com.android.systemui.statusbar.policy.KeyguardMonitor;
|
||||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||||
|
import com.android.systemui.statusbar.policy.ZenModeController;
|
||||||
|
|
||||||
import java.io.FileDescriptor;
|
import java.io.FileDescriptor;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
@@ -292,6 +311,45 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void getDependencies() {
|
||||||
|
// Keyguard
|
||||||
|
mKeyguardMonitor = Dependency.get(KeyguardMonitor.class);
|
||||||
|
mWakefulnessLifecycle = Dependency.get(WakefulnessLifecycle.class);
|
||||||
|
mScreenLifecycle = Dependency.get(ScreenLifecycle.class);
|
||||||
|
|
||||||
|
// Policy
|
||||||
|
mZenController = Dependency.get(ZenModeController.class);
|
||||||
|
|
||||||
|
// Icon
|
||||||
|
mIconController = Dependency.get(StatusBarIconController.class);
|
||||||
|
mLightBarController = Dependency.get(LightBarController.class);
|
||||||
|
|
||||||
|
// Notifications
|
||||||
|
mEntryManager = Dependency.get(NotificationEntryManager.class);
|
||||||
|
mForegroundServiceController = Dependency.get(ForegroundServiceController.class);
|
||||||
|
mGroupAlertTransferHelper = Dependency.get(NotificationGroupAlertTransferHelper.class);
|
||||||
|
mGroupManager = Dependency.get(NotificationGroupManager.class);
|
||||||
|
mGutsManager = Dependency.get(NotificationGutsManager.class);
|
||||||
|
mLockscreenUserManager = Dependency.get(NotificationLockscreenUserManager.class);
|
||||||
|
mMediaManager = Dependency.get(NotificationMediaManager.class);
|
||||||
|
mNotificationListener = Dependency.get(NotificationListener.class);
|
||||||
|
mNotificationLogger = Dependency.get(NotificationLogger.class);
|
||||||
|
mRemoteInputManager = Dependency.get(NotificationRemoteInputManager.class);
|
||||||
|
mViewHierarchyManager = Dependency.get(NotificationViewHierarchyManager.class);
|
||||||
|
mVisualStabilityManager = Dependency.get(VisualStabilityManager.class);
|
||||||
|
|
||||||
|
// Others
|
||||||
|
mColorExtractor = Dependency.get(SysuiColorExtractor.class);
|
||||||
|
mNavigationBarController = Dependency.get(NavigationBarController.class);
|
||||||
|
mUserSwitcherController = Dependency.get(UserSwitcherController.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setUpQuickSettingsTilePanel() {
|
||||||
|
// ignore.
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove all content from navbars and rebuild them. Used to allow for different nav bars
|
* Remove all content from navbars and rebuild them. Used to allow for different nav bars
|
||||||
* before and after the device is provisioned. . Also for change of density and font size.
|
* before and after the device is provisioned. . Also for change of density and font size.
|
||||||
|
|||||||
@@ -176,9 +176,11 @@ public class SystemUIApplication extends Application implements SysUiServiceProv
|
|||||||
|
|
||||||
Log.v(TAG, "Starting SystemUI services for user " +
|
Log.v(TAG, "Starting SystemUI services for user " +
|
||||||
Process.myUserHandle().getIdentifier() + ".");
|
Process.myUserHandle().getIdentifier() + ".");
|
||||||
|
|
||||||
TimingsTraceLog log = new TimingsTraceLog("SystemUIBootTiming",
|
TimingsTraceLog log = new TimingsTraceLog("SystemUIBootTiming",
|
||||||
Trace.TRACE_TAG_APP);
|
Trace.TRACE_TAG_APP);
|
||||||
log.traceBegin(metricsPrefix);
|
log.traceBegin(metricsPrefix);
|
||||||
|
|
||||||
final int N = services.length;
|
final int N = services.length;
|
||||||
for (int i = 0; i < N; i++) {
|
for (int i = 0; i < N; i++) {
|
||||||
String clsName = services[i];
|
String clsName = services[i];
|
||||||
|
|||||||
@@ -229,7 +229,6 @@ import com.android.systemui.statusbar.policy.UserInfoController;
|
|||||||
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
||||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||||
import com.android.systemui.statusbar.policy.ZenModeController;
|
import com.android.systemui.statusbar.policy.ZenModeController;
|
||||||
import com.android.systemui.tuner.TunerService;
|
|
||||||
import com.android.systemui.util.InjectionInflationController;
|
import com.android.systemui.util.InjectionInflationController;
|
||||||
import com.android.systemui.volume.VolumeComponent;
|
import com.android.systemui.volume.VolumeComponent;
|
||||||
|
|
||||||
@@ -344,7 +343,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
private BrightnessMirrorController mBrightnessMirrorController;
|
private BrightnessMirrorController mBrightnessMirrorController;
|
||||||
private boolean mBrightnessMirrorVisible;
|
private boolean mBrightnessMirrorVisible;
|
||||||
protected BiometricUnlockController mBiometricUnlockController;
|
protected BiometricUnlockController mBiometricUnlockController;
|
||||||
private LightBarController mLightBarController;
|
protected LightBarController mLightBarController;
|
||||||
protected LockscreenWallpaper mLockscreenWallpaper;
|
protected LockscreenWallpaper mLockscreenWallpaper;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
protected AutoHideController mAutoHideController;
|
protected AutoHideController mAutoHideController;
|
||||||
@@ -410,17 +409,17 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
private final int[] mAbsPos = new int[2];
|
private final int[] mAbsPos = new int[2];
|
||||||
private final ArrayList<Runnable> mPostCollapseRunnables = new ArrayList<>();
|
private final ArrayList<Runnable> mPostCollapseRunnables = new ArrayList<>();
|
||||||
|
|
||||||
private NotificationGutsManager mGutsManager;
|
protected NotificationGutsManager mGutsManager;
|
||||||
protected NotificationLogger mNotificationLogger;
|
protected NotificationLogger mNotificationLogger;
|
||||||
protected NotificationEntryManager mEntryManager;
|
protected NotificationEntryManager mEntryManager;
|
||||||
private NotificationListController mNotificationListController;
|
protected NotificationListController mNotificationListController;
|
||||||
private NotificationInterruptionStateProvider mNotificationInterruptionStateProvider;
|
protected NotificationInterruptionStateProvider mNotificationInterruptionStateProvider;
|
||||||
protected NotificationViewHierarchyManager mViewHierarchyManager;
|
protected NotificationViewHierarchyManager mViewHierarchyManager;
|
||||||
protected ForegroundServiceController mForegroundServiceController;
|
protected ForegroundServiceController mForegroundServiceController;
|
||||||
protected AppOpsController mAppOpsController;
|
protected AppOpsController mAppOpsController;
|
||||||
protected KeyguardViewMediator mKeyguardViewMediator;
|
protected KeyguardViewMediator mKeyguardViewMediator;
|
||||||
private ZenModeController mZenController;
|
protected ZenModeController mZenController;
|
||||||
private final NotificationAlertingManager mNotificationAlertingManager =
|
protected final NotificationAlertingManager mNotificationAlertingManager =
|
||||||
Dependency.get(NotificationAlertingManager.class);
|
Dependency.get(NotificationAlertingManager.class);
|
||||||
|
|
||||||
// for disabling the status bar
|
// for disabling the status bar
|
||||||
@@ -483,7 +482,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
protected boolean mDozing;
|
protected boolean mDozing;
|
||||||
private boolean mDozingRequested;
|
private boolean mDozingRequested;
|
||||||
|
|
||||||
private NotificationMediaManager mMediaManager;
|
protected NotificationMediaManager mMediaManager;
|
||||||
protected NotificationLockscreenUserManager mLockscreenUserManager;
|
protected NotificationLockscreenUserManager mLockscreenUserManager;
|
||||||
protected NotificationRemoteInputManager mRemoteInputManager;
|
protected NotificationRemoteInputManager mRemoteInputManager;
|
||||||
|
|
||||||
@@ -555,18 +554,19 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
|
|
||||||
private KeyguardUserSwitcher mKeyguardUserSwitcher;
|
private KeyguardUserSwitcher mKeyguardUserSwitcher;
|
||||||
protected UserSwitcherController mUserSwitcherController;
|
protected UserSwitcherController mUserSwitcherController;
|
||||||
private NetworkController mNetworkController;
|
protected NetworkController mNetworkController;
|
||||||
private KeyguardMonitor mKeyguardMonitor = Dependency.get(KeyguardMonitor.class);
|
protected KeyguardMonitor mKeyguardMonitor;
|
||||||
private BatteryController mBatteryController;
|
protected BatteryController mBatteryController;
|
||||||
protected boolean mPanelExpanded;
|
protected boolean mPanelExpanded;
|
||||||
private UiModeManager mUiModeManager;
|
private UiModeManager mUiModeManager;
|
||||||
protected boolean mIsKeyguard;
|
protected boolean mIsKeyguard;
|
||||||
private LogMaker mStatusBarStateLog;
|
private LogMaker mStatusBarStateLog;
|
||||||
protected NotificationIconAreaController mNotificationIconAreaController;
|
protected NotificationIconAreaController mNotificationIconAreaController;
|
||||||
@Nullable private View mAmbientIndicationContainer;
|
@Nullable private View mAmbientIndicationContainer;
|
||||||
private SysuiColorExtractor mColorExtractor;
|
protected SysuiColorExtractor mColorExtractor;
|
||||||
private ScreenLifecycle mScreenLifecycle;
|
protected ScreenLifecycle mScreenLifecycle;
|
||||||
@VisibleForTesting WakefulnessLifecycle mWakefulnessLifecycle;
|
@VisibleForTesting
|
||||||
|
protected WakefulnessLifecycle mWakefulnessLifecycle;
|
||||||
|
|
||||||
private final View.OnClickListener mGoToLockedShadeListener = v -> {
|
private final View.OnClickListener mGoToLockedShadeListener = v -> {
|
||||||
if (mState == StatusBarState.KEYGUARD) {
|
if (mState == StatusBarState.KEYGUARD) {
|
||||||
@@ -598,7 +598,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
|
|
||||||
private HeadsUpAppearanceController mHeadsUpAppearanceController;
|
private HeadsUpAppearanceController mHeadsUpAppearanceController;
|
||||||
private boolean mVibrateOnOpening;
|
private boolean mVibrateOnOpening;
|
||||||
private VibratorHelper mVibratorHelper;
|
protected VibratorHelper mVibratorHelper;
|
||||||
private ActivityLaunchAnimator mActivityLaunchAnimator;
|
private ActivityLaunchAnimator mActivityLaunchAnimator;
|
||||||
protected StatusBarNotificationPresenter mPresenter;
|
protected StatusBarNotificationPresenter mPresenter;
|
||||||
private NotificationActivityStarter mNotificationActivityStarter;
|
private NotificationActivityStarter mNotificationActivityStarter;
|
||||||
@@ -628,40 +628,24 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void start() {
|
||||||
mGroupManager = Dependency.get(NotificationGroupManager.class);
|
getDependencies();
|
||||||
mGroupAlertTransferHelper = Dependency.get(NotificationGroupAlertTransferHelper.class);
|
if (mScreenLifecycle != null && mScreenObserver != null) {
|
||||||
mVisualStabilityManager = Dependency.get(VisualStabilityManager.class);
|
mScreenLifecycle.addObserver(mScreenObserver);
|
||||||
mNotificationLogger = Dependency.get(NotificationLogger.class);
|
}
|
||||||
mRemoteInputManager = Dependency.get(NotificationRemoteInputManager.class);
|
|
||||||
mNotificationListener = Dependency.get(NotificationListener.class);
|
if (mWakefulnessLifecycle != null && mWakefulnessObserver != null) {
|
||||||
|
mWakefulnessLifecycle.addObserver(mWakefulnessObserver);
|
||||||
|
}
|
||||||
|
|
||||||
mNotificationListener.registerAsSystemService();
|
mNotificationListener.registerAsSystemService();
|
||||||
mNetworkController = Dependency.get(NetworkController.class);
|
if (mBubbleController != null) {
|
||||||
mUserSwitcherController = Dependency.get(UserSwitcherController.class);
|
mBubbleController.setExpandListener(mBubbleExpandListener);
|
||||||
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);
|
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);
|
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);
|
mActivityIntentHelper = new ActivityIntentHelper(mContext);
|
||||||
|
|
||||||
KeyguardSliceProvider sliceProvider = KeyguardSliceProvider.getAttachedInstance();
|
KeyguardSliceProvider sliceProvider = KeyguardSliceProvider.getAttachedInstance();
|
||||||
if (sliceProvider != null) {
|
if (sliceProvider != null) {
|
||||||
sliceProvider.initDependencies(mMediaManager, mStatusBarStateController,
|
sliceProvider.initDependencies(mMediaManager, mStatusBarStateController,
|
||||||
@@ -910,20 +894,22 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
R.id.ambient_indication_container);
|
R.id.ambient_indication_container);
|
||||||
|
|
||||||
// TODO: Find better place for this callback.
|
// TODO: Find better place for this callback.
|
||||||
mBatteryController.addCallback(new BatteryStateChangeCallback() {
|
if (mBatteryController != null) {
|
||||||
@Override
|
mBatteryController.addCallback(new BatteryStateChangeCallback() {
|
||||||
public void onPowerSaveChanged(boolean isPowerSave) {
|
@Override
|
||||||
mHandler.post(mCheckBarModes);
|
public void onPowerSaveChanged(boolean isPowerSave) {
|
||||||
if (mDozeServiceHost != null) {
|
mHandler.post(mCheckBarModes);
|
||||||
mDozeServiceHost.firePowerSaveChanged(isPowerSave);
|
if (mDozeServiceHost != null) {
|
||||||
|
mDozeServiceHost.firePowerSaveChanged(isPowerSave);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) {
|
public void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) {
|
||||||
// noop
|
// noop
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
mAutoHideController = Dependency.get(AutoHideController.class);
|
mAutoHideController = Dependency.get(AutoHideController.class);
|
||||||
mAutoHideController.setStatusBar(this);
|
mAutoHideController.setStatusBar(this);
|
||||||
@@ -965,28 +951,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
mStatusBarWindow::onShowingLaunchAffordanceChanged);
|
mStatusBarWindow::onShowingLaunchAffordanceChanged);
|
||||||
|
|
||||||
// Set up the quick settings tile panel
|
// Set up the quick settings tile panel
|
||||||
View container = mStatusBarWindow.findViewById(R.id.qs_frame);
|
setUpQuickSettingsTilePanel();
|
||||||
if (container != null) {
|
|
||||||
FragmentHostManager fragmentHostManager = FragmentHostManager.get(container);
|
|
||||||
ExtensionFragmentListener.attachExtensonToFragment(container, QS.TAG, R.id.qs_frame,
|
|
||||||
Dependency.get(ExtensionController.class)
|
|
||||||
.newExtension(QS.class)
|
|
||||||
.withPlugin(QS.class)
|
|
||||||
.withDefault(this::createDefaultQSFragment)
|
|
||||||
.build());
|
|
||||||
mBrightnessMirrorController = new BrightnessMirrorController(mStatusBarWindow,
|
|
||||||
(visible) -> {
|
|
||||||
mBrightnessMirrorVisible = visible;
|
|
||||||
updateScrimController();
|
|
||||||
});
|
|
||||||
fragmentHostManager.addTagListener(QS.TAG, (tag, f) -> {
|
|
||||||
QS qs = (QS) f;
|
|
||||||
if (qs instanceof QSFragment) {
|
|
||||||
mQSPanel = ((QSFragment) qs).getQsPanel();
|
|
||||||
mQSPanel.setBrightnessMirror(mBrightnessMirrorController);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
mReportRejectedTouch = mStatusBarWindow.findViewById(R.id.report_rejected_touch);
|
mReportRejectedTouch = mStatusBarWindow.findViewById(R.id.report_rejected_touch);
|
||||||
if (mReportRejectedTouch != null) {
|
if (mReportRejectedTouch != null) {
|
||||||
@@ -1086,7 +1051,9 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
mForegroundServiceController,
|
mForegroundServiceController,
|
||||||
mDeviceProvisionedController);
|
mDeviceProvisionedController);
|
||||||
|
|
||||||
mAppOpsController.addCallback(APP_OPS, this);
|
if (mAppOpsController != null) {
|
||||||
|
mAppOpsController.addCallback(APP_OPS, this);
|
||||||
|
}
|
||||||
mNotificationShelf.setOnActivatedListener(mPresenter);
|
mNotificationShelf.setOnActivatedListener(mPresenter);
|
||||||
mRemoteInputManager.getController().addCallback(mStatusBarWindowController);
|
mRemoteInputManager.getController().addCallback(mStatusBarWindowController);
|
||||||
|
|
||||||
@@ -1116,6 +1083,73 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
mNotificationListController.bind();
|
mNotificationListController.bind();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void getDependencies() {
|
||||||
|
// Icons
|
||||||
|
mIconController = Dependency.get(StatusBarIconController.class);
|
||||||
|
mLightBarController = Dependency.get(LightBarController.class);
|
||||||
|
|
||||||
|
// Keyguard
|
||||||
|
mKeyguardMonitor = Dependency.get(KeyguardMonitor.class);
|
||||||
|
mScreenLifecycle = Dependency.get(ScreenLifecycle.class);
|
||||||
|
mWakefulnessLifecycle = Dependency.get(WakefulnessLifecycle.class);
|
||||||
|
|
||||||
|
// Notifications
|
||||||
|
mEntryManager = Dependency.get(NotificationEntryManager.class);
|
||||||
|
mForegroundServiceController = Dependency.get(ForegroundServiceController.class);
|
||||||
|
mGroupAlertTransferHelper = Dependency.get(NotificationGroupAlertTransferHelper.class);
|
||||||
|
mGroupManager = Dependency.get(NotificationGroupManager.class);
|
||||||
|
mGutsManager = Dependency.get(NotificationGutsManager.class);
|
||||||
|
mLockscreenUserManager = Dependency.get(NotificationLockscreenUserManager.class);
|
||||||
|
mMediaManager = Dependency.get(NotificationMediaManager.class);
|
||||||
|
mNotificationInterruptionStateProvider =
|
||||||
|
Dependency.get(NotificationInterruptionStateProvider.class);
|
||||||
|
mNotificationListener = Dependency.get(NotificationListener.class);
|
||||||
|
mNotificationLogger = Dependency.get(NotificationLogger.class);
|
||||||
|
mRemoteInputManager = Dependency.get(NotificationRemoteInputManager.class);
|
||||||
|
mViewHierarchyManager = Dependency.get(NotificationViewHierarchyManager.class);
|
||||||
|
mVisualStabilityManager = Dependency.get(VisualStabilityManager.class);
|
||||||
|
|
||||||
|
// Policy
|
||||||
|
mBatteryController = Dependency.get(BatteryController.class);
|
||||||
|
mNetworkController = Dependency.get(NetworkController.class);
|
||||||
|
mZenController = Dependency.get(ZenModeController.class);
|
||||||
|
|
||||||
|
// Others
|
||||||
|
mAppOpsController = Dependency.get(AppOpsController.class);
|
||||||
|
mAssistManager = Dependency.get(AssistManager.class);
|
||||||
|
mBubbleController = Dependency.get(BubbleController.class);
|
||||||
|
mColorExtractor = Dependency.get(SysuiColorExtractor.class);
|
||||||
|
mNavigationBarController = Dependency.get(NavigationBarController.class);
|
||||||
|
mUserSwitcherController = Dependency.get(UserSwitcherController.class);
|
||||||
|
mVibratorHelper = Dependency.get(VibratorHelper.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setUpQuickSettingsTilePanel() {
|
||||||
|
View container = mStatusBarWindow.findViewById(R.id.qs_frame);
|
||||||
|
if (container != null) {
|
||||||
|
FragmentHostManager fragmentHostManager = FragmentHostManager.get(container);
|
||||||
|
ExtensionFragmentListener.attachExtensonToFragment(container, QS.TAG, R.id.qs_frame,
|
||||||
|
Dependency.get(ExtensionController.class)
|
||||||
|
.newExtension(QS.class)
|
||||||
|
.withPlugin(QS.class)
|
||||||
|
.withDefault(this::createDefaultQSFragment)
|
||||||
|
.build());
|
||||||
|
mBrightnessMirrorController = new BrightnessMirrorController(mStatusBarWindow,
|
||||||
|
(visible) -> {
|
||||||
|
mBrightnessMirrorVisible = visible;
|
||||||
|
updateScrimController();
|
||||||
|
});
|
||||||
|
fragmentHostManager.addTagListener(QS.TAG, (tag, f) -> {
|
||||||
|
QS qs = (QS) f;
|
||||||
|
if (qs instanceof QSFragment) {
|
||||||
|
mQSPanel = ((QSFragment) qs).getQsPanel();
|
||||||
|
mQSPanel.setBrightnessMirror(mBrightnessMirrorController);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Post-init task of {@link #start()}
|
* Post-init task of {@link #start()}
|
||||||
* @param state1 disable1 flags
|
* @param state1 disable1 flags
|
||||||
@@ -1936,7 +1970,9 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
mStatusBarWindow.cancelExpandHelper();
|
mStatusBarWindow.cancelExpandHelper();
|
||||||
mStatusBarView.collapsePanel(true /* animate */, delayed, speedUpFactor);
|
mStatusBarView.collapsePanel(true /* animate */, delayed, speedUpFactor);
|
||||||
} else {
|
} else {
|
||||||
mBubbleController.collapseStack();
|
if (mBubbleController != null) {
|
||||||
|
mBubbleController.collapseStack();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2984,7 +3020,9 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
mStatusBarStateController.setLeaveOpenOnKeyguardHide(false);
|
mStatusBarStateController.setLeaveOpenOnKeyguardHide(false);
|
||||||
mPendingRemoteInputView = null;
|
mPendingRemoteInputView = null;
|
||||||
updateIsKeyguard();
|
updateIsKeyguard();
|
||||||
mAssistManager.onLockscreenShown();
|
if (mAssistManager != null) {
|
||||||
|
mAssistManager.onLockscreenShown();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hideKeyguard() {
|
public boolean hideKeyguard() {
|
||||||
@@ -3030,7 +3068,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
|
|
||||||
public void showKeyguardImpl() {
|
public void showKeyguardImpl() {
|
||||||
mIsKeyguard = true;
|
mIsKeyguard = true;
|
||||||
if (mKeyguardMonitor.isLaunchTransitionFadingAway()) {
|
if (mKeyguardMonitor != null && mKeyguardMonitor.isLaunchTransitionFadingAway()) {
|
||||||
mNotificationPanel.animate().cancel();
|
mNotificationPanel.animate().cancel();
|
||||||
onLaunchTransitionFadingEnded();
|
onLaunchTransitionFadingEnded();
|
||||||
}
|
}
|
||||||
@@ -3495,9 +3533,11 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateKeyguardState() {
|
private void updateKeyguardState() {
|
||||||
mKeyguardMonitor.notifyKeyguardState(mStatusBarKeyguardViewManager.isShowing(),
|
if (mKeyguardMonitor != null) {
|
||||||
mUnlockMethodCache.isMethodSecure(),
|
mKeyguardMonitor.notifyKeyguardState(mStatusBarKeyguardViewManager.isShowing(),
|
||||||
mStatusBarKeyguardViewManager.isOccluded());
|
mUnlockMethodCache.isMethodSecure(),
|
||||||
|
mStatusBarKeyguardViewManager.isOccluded());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onActivationReset() {
|
public void onActivationReset() {
|
||||||
@@ -3886,7 +3926,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
// We don't want to end up in KEYGUARD state when we're unlocking with
|
// We don't want to end up in KEYGUARD state when we're unlocking with
|
||||||
// fingerprint from doze. We should cross fade directly from black.
|
// fingerprint from doze. We should cross fade directly from black.
|
||||||
boolean unlocking = mBiometricUnlockController.isWakeAndUnlock()
|
boolean unlocking = mBiometricUnlockController.isWakeAndUnlock()
|
||||||
|| mKeyguardMonitor.isKeyguardFadingAway();
|
|| (mKeyguardMonitor != null && mKeyguardMonitor.isKeyguardFadingAway());
|
||||||
|
|
||||||
// Do not animate the scrim expansion when triggered by the fingerprint sensor.
|
// Do not animate the scrim expansion when triggered by the fingerprint sensor.
|
||||||
mScrimController.setExpansionAffectsAlpha(
|
mScrimController.setExpansionAffectsAlpha(
|
||||||
@@ -3915,7 +3955,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
mScrimController.transitionTo(ScrimState.AOD);
|
mScrimController.transitionTo(ScrimState.AOD);
|
||||||
} else if (mIsKeyguard && !unlocking) {
|
} else if (mIsKeyguard && !unlocking) {
|
||||||
mScrimController.transitionTo(ScrimState.KEYGUARD);
|
mScrimController.transitionTo(ScrimState.KEYGUARD);
|
||||||
} else if (mBubbleController.isStackExpanded()) {
|
} else if (mBubbleController != null && mBubbleController.isStackExpanded()) {
|
||||||
mScrimController.transitionTo(ScrimState.BUBBLE_EXPANDED);
|
mScrimController.transitionTo(ScrimState.BUBBLE_EXPANDED);
|
||||||
} else {
|
} else {
|
||||||
mScrimController.transitionTo(ScrimState.UNLOCKED, mUnlockScrimCallback);
|
mScrimController.transitionTo(ScrimState.UNLOCKED, mUnlockScrimCallback);
|
||||||
@@ -4217,8 +4257,8 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
protected StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
protected StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
||||||
|
|
||||||
protected KeyguardManager mKeyguardManager;
|
protected KeyguardManager mKeyguardManager;
|
||||||
private DeviceProvisionedController mDeviceProvisionedController
|
protected DeviceProvisionedController mDeviceProvisionedController =
|
||||||
= Dependency.get(DeviceProvisionedController.class);
|
Dependency.get(DeviceProvisionedController.class);
|
||||||
|
|
||||||
protected NavigationBarController mNavigationBarController;
|
protected NavigationBarController mNavigationBarController;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user