Merge "Remove CommandQueueCallbacks interface from StatusBar." into sc-v2-dev
This commit is contained in:
@@ -1462,6 +1462,11 @@ public class NotificationStackScrollLayoutController {
|
|||||||
mView.setExtraTopInsetForFullShadeTransition(extraTopInset);
|
mView.setExtraTopInsetForFullShadeTransition(extraTopInset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
|
public void setWillExpand(boolean willExpand) {
|
||||||
|
mView.setWillExpand(willExpand);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a listener to when scrolling changes.
|
* Set a listener to when scrolling changes.
|
||||||
*/
|
*/
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,690 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.systemui.statusbar.phone;
|
||||||
|
|
||||||
|
import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;
|
||||||
|
import static android.app.StatusBarManager.windowStateToString;
|
||||||
|
import static android.view.InsetsState.ITYPE_STATUS_BAR;
|
||||||
|
import static android.view.InsetsState.containsType;
|
||||||
|
|
||||||
|
import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_AWAKE;
|
||||||
|
import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_WAKING;
|
||||||
|
|
||||||
|
import android.annotation.Nullable;
|
||||||
|
import android.app.StatusBarManager;
|
||||||
|
import android.content.ComponentName;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
import android.media.AudioAttributes;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.os.PowerManager;
|
||||||
|
import android.os.SystemClock;
|
||||||
|
import android.os.UserHandle;
|
||||||
|
import android.os.VibrationEffect;
|
||||||
|
import android.os.Vibrator;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.util.Slog;
|
||||||
|
import android.view.InsetsState.InternalInsetsType;
|
||||||
|
import android.view.InsetsVisibilities;
|
||||||
|
import android.view.KeyEvent;
|
||||||
|
import android.view.WindowInsetsController.Appearance;
|
||||||
|
import android.view.WindowInsetsController.Behavior;
|
||||||
|
|
||||||
|
import com.android.internal.logging.MetricsLogger;
|
||||||
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
|
import com.android.internal.view.AppearanceRegion;
|
||||||
|
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||||
|
import com.android.systemui.R;
|
||||||
|
import com.android.systemui.assist.AssistManager;
|
||||||
|
import com.android.systemui.camera.CameraIntents;
|
||||||
|
import com.android.systemui.dagger.qualifiers.DisplayId;
|
||||||
|
import com.android.systemui.dagger.qualifiers.Main;
|
||||||
|
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||||
|
import com.android.systemui.qs.QSPanelController;
|
||||||
|
import com.android.systemui.statusbar.CommandQueue;
|
||||||
|
import com.android.systemui.statusbar.StatusBarState;
|
||||||
|
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||||
|
import com.android.systemui.statusbar.VibratorHelper;
|
||||||
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
|
||||||
|
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
|
||||||
|
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
||||||
|
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||||
|
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||||
|
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
|
||||||
|
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
/** */
|
||||||
|
@StatusBarComponent.StatusBarScope
|
||||||
|
public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
|
||||||
|
private final StatusBar mStatusBar;
|
||||||
|
private final Context mContext;
|
||||||
|
private final ShadeController mShadeController;
|
||||||
|
private final CommandQueue mCommandQueue;
|
||||||
|
private final NotificationPanelViewController mNotificationPanelViewController;
|
||||||
|
private final Optional<LegacySplitScreen> mSplitScreenOptional;
|
||||||
|
private final RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler;
|
||||||
|
private final MetricsLogger mMetricsLogger;
|
||||||
|
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||||
|
private final KeyguardStateController mKeyguardStateController;
|
||||||
|
private final HeadsUpManager mHeadsUpManager;
|
||||||
|
private final WakefulnessLifecycle mWakefulnessLifecycle;
|
||||||
|
private final DeviceProvisionedController mDeviceProvisionedController;
|
||||||
|
private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
||||||
|
private final AssistManager mAssistManager;
|
||||||
|
private final DozeServiceHost mDozeServiceHost;
|
||||||
|
private final SysuiStatusBarStateController mStatusBarStateController;
|
||||||
|
private final NotificationShadeWindowView mNotificationShadeWindowView;
|
||||||
|
private final NotificationStackScrollLayoutController mNotificationStackScrollLayoutController;
|
||||||
|
private final PowerManager mPowerManager;
|
||||||
|
private final VibratorHelper mVibratorHelper;
|
||||||
|
private final Optional<Vibrator> mVibratorOptional;
|
||||||
|
private final LightBarController mLightBarController;
|
||||||
|
private final int mDisplayId;
|
||||||
|
private final boolean mVibrateOnOpening;
|
||||||
|
private final VibrationEffect mCameraLaunchGestureVibrationEffect;
|
||||||
|
|
||||||
|
|
||||||
|
private static final AudioAttributes VIBRATION_ATTRIBUTES = new AudioAttributes.Builder()
|
||||||
|
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
|
||||||
|
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
StatusBarCommandQueueCallbacks(
|
||||||
|
StatusBar statusBar,
|
||||||
|
Context context,
|
||||||
|
@Main Resources resources,
|
||||||
|
ShadeController shadeController,
|
||||||
|
CommandQueue commandQueue,
|
||||||
|
NotificationPanelViewController notificationPanelViewController,
|
||||||
|
Optional<LegacySplitScreen> splitScreenOptional,
|
||||||
|
RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler,
|
||||||
|
MetricsLogger metricsLogger,
|
||||||
|
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||||
|
KeyguardStateController keyguardStateController,
|
||||||
|
HeadsUpManager headsUpManager,
|
||||||
|
WakefulnessLifecycle wakefulnessLifecycle,
|
||||||
|
DeviceProvisionedController deviceProvisionedController,
|
||||||
|
StatusBarKeyguardViewManager statusBarKeyguardViewManager,
|
||||||
|
AssistManager assistManager,
|
||||||
|
DozeServiceHost dozeServiceHost,
|
||||||
|
SysuiStatusBarStateController statusBarStateController,
|
||||||
|
NotificationShadeWindowView notificationShadeWindowView,
|
||||||
|
NotificationStackScrollLayoutController notificationStackScrollLayoutController,
|
||||||
|
PowerManager powerManager,
|
||||||
|
VibratorHelper vibratorHelper,
|
||||||
|
Optional<Vibrator> vibratorOptional,
|
||||||
|
LightBarController lightBarController,
|
||||||
|
@DisplayId int displayId) {
|
||||||
|
|
||||||
|
mStatusBar = statusBar;
|
||||||
|
mContext = context;
|
||||||
|
mShadeController = shadeController;
|
||||||
|
mCommandQueue = commandQueue;
|
||||||
|
mNotificationPanelViewController = notificationPanelViewController;
|
||||||
|
mSplitScreenOptional = splitScreenOptional;
|
||||||
|
mRemoteInputQuickSettingsDisabler = remoteInputQuickSettingsDisabler;
|
||||||
|
mMetricsLogger = metricsLogger;
|
||||||
|
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||||
|
mKeyguardStateController = keyguardStateController;
|
||||||
|
mHeadsUpManager = headsUpManager;
|
||||||
|
mWakefulnessLifecycle = wakefulnessLifecycle;
|
||||||
|
mDeviceProvisionedController = deviceProvisionedController;
|
||||||
|
mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
|
||||||
|
mAssistManager = assistManager;
|
||||||
|
mDozeServiceHost = dozeServiceHost;
|
||||||
|
mStatusBarStateController = statusBarStateController;
|
||||||
|
mNotificationShadeWindowView = notificationShadeWindowView;
|
||||||
|
mNotificationStackScrollLayoutController = notificationStackScrollLayoutController;
|
||||||
|
mPowerManager = powerManager;
|
||||||
|
mVibratorHelper = vibratorHelper;
|
||||||
|
mVibratorOptional = vibratorOptional;
|
||||||
|
mLightBarController = lightBarController;
|
||||||
|
mDisplayId = displayId;
|
||||||
|
|
||||||
|
mVibrateOnOpening = resources.getBoolean(R.bool.config_vibrateOnIconAnimation);
|
||||||
|
mCameraLaunchGestureVibrationEffect = getCameraGestureVibrationEffect(
|
||||||
|
mVibratorOptional, resources);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void abortTransient(int displayId, @InternalInsetsType int[] types) {
|
||||||
|
if (displayId != mDisplayId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!containsType(types, ITYPE_STATUS_BAR)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mStatusBar.clearTransient();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addQsTile(ComponentName tile) {
|
||||||
|
QSPanelController qsPanelController = mStatusBar.getQSPanelController();
|
||||||
|
if (qsPanelController != null && qsPanelController.getHost() != null) {
|
||||||
|
qsPanelController.getHost().addTile(tile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void remQsTile(ComponentName tile) {
|
||||||
|
QSPanelController qsPanelController = mStatusBar.getQSPanelController();
|
||||||
|
if (qsPanelController != null && qsPanelController.getHost() != null) {
|
||||||
|
qsPanelController.getHost().removeTile(tile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clickTile(ComponentName tile) {
|
||||||
|
QSPanelController qsPanelController = mStatusBar.getQSPanelController();
|
||||||
|
if (qsPanelController != null) {
|
||||||
|
qsPanelController.clickTile(tile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void animateCollapsePanels(int flags, boolean force) {
|
||||||
|
mShadeController.animateCollapsePanels(flags, force, false /* delayed */,
|
||||||
|
1.0f /* speedUpFactor */);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void animateExpandNotificationsPanel() {
|
||||||
|
if (StatusBar.SPEW) {
|
||||||
|
Log.d(StatusBar.TAG,
|
||||||
|
"animateExpand: mExpandedVisible=" + mStatusBar.isExpandedVisible());
|
||||||
|
}
|
||||||
|
if (!mCommandQueue.panelsEnabled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mNotificationPanelViewController.expandWithoutQs();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void animateExpandSettingsPanel(@Nullable String subPanel) {
|
||||||
|
if (StatusBar.SPEW) {
|
||||||
|
Log.d(StatusBar.TAG,
|
||||||
|
"animateExpand: mExpandedVisible=" + mStatusBar.isExpandedVisible());
|
||||||
|
}
|
||||||
|
if (!mCommandQueue.panelsEnabled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Settings are not available in setup
|
||||||
|
if (!mDeviceProvisionedController.isCurrentUserSetup()) return;
|
||||||
|
|
||||||
|
|
||||||
|
QSPanelController qsPanelController = mStatusBar.getQSPanelController();
|
||||||
|
if (subPanel != null && qsPanelController != null) {
|
||||||
|
qsPanelController.openDetails(subPanel);
|
||||||
|
}
|
||||||
|
mNotificationPanelViewController.expandWithQs();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void appTransitionCancelled(int displayId) {
|
||||||
|
if (displayId == mDisplayId) {
|
||||||
|
mSplitScreenOptional.ifPresent(LegacySplitScreen::onAppTransitionFinished);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void appTransitionFinished(int displayId) {
|
||||||
|
if (displayId == mDisplayId) {
|
||||||
|
mSplitScreenOptional.ifPresent(LegacySplitScreen::onAppTransitionFinished);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void preloadRecentApps() {
|
||||||
|
mStatusBar.resetHandlerMsg(StatusBar.MSG_PRELOAD_RECENT_APPS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancelPreloadRecentApps() {
|
||||||
|
mStatusBar.resetHandlerMsg(StatusBar.MSG_CANCEL_PRELOAD_RECENT_APPS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dismissKeyboardShortcutsMenu() {
|
||||||
|
mStatusBar.resetHandlerMsg(StatusBar.MSG_DISMISS_KEYBOARD_SHORTCUTS_MENU);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* State is one or more of the DISABLE constants from StatusBarManager.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void disable(int displayId, int state1, int state2, boolean animate) {
|
||||||
|
if (displayId != mDisplayId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
state2 = mRemoteInputQuickSettingsDisabler.adjustDisableFlags(state2);
|
||||||
|
|
||||||
|
final int old1 = mStatusBar.getDisabled1();
|
||||||
|
final int diff1 = state1 ^ old1;
|
||||||
|
mStatusBar.setDisabled1(state1);
|
||||||
|
|
||||||
|
final int old2 = mStatusBar.getDisabled2();
|
||||||
|
final int diff2 = state2 ^ old2;
|
||||||
|
mStatusBar.setDisabled2(state2);
|
||||||
|
|
||||||
|
if (StatusBar.DEBUG) {
|
||||||
|
Log.d(StatusBar.TAG, String.format("disable1: 0x%08x -> 0x%08x (diff1: 0x%08x)",
|
||||||
|
old1, state1, diff1));
|
||||||
|
Log.d(StatusBar.TAG, String.format("disable2: 0x%08x -> 0x%08x (diff2: 0x%08x)",
|
||||||
|
old2, state2, diff2));
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder flagdbg = new StringBuilder();
|
||||||
|
flagdbg.append("disable<");
|
||||||
|
flagdbg.append(0 != ((state1 & StatusBarManager.DISABLE_EXPAND)) ? 'E' : 'e');
|
||||||
|
flagdbg.append(0 != ((diff1 & StatusBarManager.DISABLE_EXPAND)) ? '!' : ' ');
|
||||||
|
flagdbg.append(0 != ((state1 & StatusBarManager.DISABLE_NOTIFICATION_ICONS)) ? 'I' : 'i');
|
||||||
|
flagdbg.append(0 != ((diff1 & StatusBarManager.DISABLE_NOTIFICATION_ICONS)) ? '!' : ' ');
|
||||||
|
flagdbg.append(0 != ((state1 & StatusBarManager.DISABLE_NOTIFICATION_ALERTS)) ? 'A' : 'a');
|
||||||
|
flagdbg.append(0 != ((diff1 & StatusBarManager.DISABLE_NOTIFICATION_ALERTS)) ? '!' : ' ');
|
||||||
|
flagdbg.append(0 != ((state1 & StatusBarManager.DISABLE_SYSTEM_INFO)) ? 'S' : 's');
|
||||||
|
flagdbg.append(0 != ((diff1 & StatusBarManager.DISABLE_SYSTEM_INFO)) ? '!' : ' ');
|
||||||
|
flagdbg.append(0 != ((state1 & StatusBarManager.DISABLE_BACK)) ? 'B' : 'b');
|
||||||
|
flagdbg.append(0 != ((diff1 & StatusBarManager.DISABLE_BACK)) ? '!' : ' ');
|
||||||
|
flagdbg.append(0 != ((state1 & StatusBarManager.DISABLE_HOME)) ? 'H' : 'h');
|
||||||
|
flagdbg.append(0 != ((diff1 & StatusBarManager.DISABLE_HOME)) ? '!' : ' ');
|
||||||
|
flagdbg.append(0 != ((state1 & StatusBarManager.DISABLE_RECENT)) ? 'R' : 'r');
|
||||||
|
flagdbg.append(0 != ((diff1 & StatusBarManager.DISABLE_RECENT)) ? '!' : ' ');
|
||||||
|
flagdbg.append(0 != ((state1 & StatusBarManager.DISABLE_CLOCK)) ? 'C' : 'c');
|
||||||
|
flagdbg.append(0 != ((diff1 & StatusBarManager.DISABLE_CLOCK)) ? '!' : ' ');
|
||||||
|
flagdbg.append(0 != ((state1 & StatusBarManager.DISABLE_SEARCH)) ? 'S' : 's');
|
||||||
|
flagdbg.append(0 != ((diff1 & StatusBarManager.DISABLE_SEARCH)) ? '!' : ' ');
|
||||||
|
flagdbg.append("> disable2<");
|
||||||
|
flagdbg.append(0 != ((state2 & StatusBarManager.DISABLE2_QUICK_SETTINGS)) ? 'Q' : 'q');
|
||||||
|
flagdbg.append(0 != ((diff2 & StatusBarManager.DISABLE2_QUICK_SETTINGS)) ? '!' : ' ');
|
||||||
|
flagdbg.append(0 != ((state2 & StatusBarManager.DISABLE2_SYSTEM_ICONS)) ? 'I' : 'i');
|
||||||
|
flagdbg.append(0 != ((diff2 & StatusBarManager.DISABLE2_SYSTEM_ICONS)) ? '!' : ' ');
|
||||||
|
flagdbg.append(0 != ((state2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE)) ? 'N' : 'n');
|
||||||
|
flagdbg.append(0 != ((diff2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE)) ? '!' : ' ');
|
||||||
|
flagdbg.append('>');
|
||||||
|
Log.d(StatusBar.TAG, flagdbg.toString());
|
||||||
|
|
||||||
|
if ((diff1 & StatusBarManager.DISABLE_EXPAND) != 0) {
|
||||||
|
if ((state1 & StatusBarManager.DISABLE_EXPAND) != 0) {
|
||||||
|
mShadeController.animateCollapsePanels();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((diff1 & StatusBarManager.DISABLE_RECENT) != 0) {
|
||||||
|
if ((state1 & StatusBarManager.DISABLE_RECENT) != 0) {
|
||||||
|
// close recents if it's visible
|
||||||
|
mStatusBar.resetHandlerMsg(StatusBar.MSG_HIDE_RECENT_APPS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((diff1 & StatusBarManager.DISABLE_NOTIFICATION_ALERTS) != 0) {
|
||||||
|
if (mStatusBar.areNotificationAlertsDisabled()) {
|
||||||
|
mHeadsUpManager.releaseAllImmediately();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((diff2 & StatusBarManager.DISABLE2_QUICK_SETTINGS) != 0) {
|
||||||
|
mStatusBar.updateQsExpansionEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((diff2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) != 0) {
|
||||||
|
mStatusBar.updateQsExpansionEnabled();
|
||||||
|
if ((state2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) != 0) {
|
||||||
|
mShadeController.animateCollapsePanels();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called for system navigation gestures. First action opens the panel, second opens
|
||||||
|
* settings. Down action closes the entire panel.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void handleSystemKey(int key) {
|
||||||
|
if (StatusBar.SPEW) {
|
||||||
|
Log.d(StatusBar.TAG, "handleNavigationKey: " + key);
|
||||||
|
}
|
||||||
|
if (!mCommandQueue.panelsEnabled() || !mKeyguardUpdateMonitor.isDeviceInteractive()
|
||||||
|
|| mKeyguardStateController.isShowing() && !mKeyguardStateController.isOccluded()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Panels are not available in setup
|
||||||
|
if (!mDeviceProvisionedController.isCurrentUserSetup()) return;
|
||||||
|
|
||||||
|
if (KeyEvent.KEYCODE_SYSTEM_NAVIGATION_UP == key) {
|
||||||
|
mMetricsLogger.action(MetricsEvent.ACTION_SYSTEM_NAVIGATION_KEY_UP);
|
||||||
|
mNotificationPanelViewController.collapse(
|
||||||
|
false /* delayed */, 1.0f /* speedUpFactor */);
|
||||||
|
} else if (KeyEvent.KEYCODE_SYSTEM_NAVIGATION_DOWN == key) {
|
||||||
|
mMetricsLogger.action(MetricsEvent.ACTION_SYSTEM_NAVIGATION_KEY_DOWN);
|
||||||
|
if (mNotificationPanelViewController.isFullyCollapsed()) {
|
||||||
|
if (mVibrateOnOpening) {
|
||||||
|
mVibratorHelper.vibrate(VibrationEffect.EFFECT_TICK);
|
||||||
|
}
|
||||||
|
mNotificationPanelViewController.expand(true /* animate */);
|
||||||
|
mNotificationStackScrollLayoutController.setWillExpand(true);
|
||||||
|
mHeadsUpManager.unpinAll(true /* userUnpinned */);
|
||||||
|
mMetricsLogger.count(NotificationPanelView.COUNTER_PANEL_OPEN, 1);
|
||||||
|
} else if (!mNotificationPanelViewController.isInSettings()
|
||||||
|
&& !mNotificationPanelViewController.isExpanding()) {
|
||||||
|
mNotificationPanelViewController.flingSettings(0 /* velocity */,
|
||||||
|
NotificationPanelView.FLING_EXPAND);
|
||||||
|
mMetricsLogger.count(NotificationPanelView.COUNTER_PANEL_OPEN_QS, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCameraLaunchGestureDetected(int source) {
|
||||||
|
mStatusBar.setLastCameraLaunchSource(source);
|
||||||
|
if (mStatusBar.isGoingToSleep()) {
|
||||||
|
if (StatusBar.DEBUG_CAMERA_LIFT) {
|
||||||
|
Slog.d(StatusBar.TAG, "Finish going to sleep before launching camera");
|
||||||
|
}
|
||||||
|
mStatusBar.setLaunchCameraOnFinishedGoingToSleep(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!mNotificationPanelViewController.canCameraGestureBeLaunched()) {
|
||||||
|
if (StatusBar.DEBUG_CAMERA_LIFT) {
|
||||||
|
Slog.d(StatusBar.TAG, "Can't launch camera right now");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!mStatusBar.isDeviceInteractive()) {
|
||||||
|
mPowerManager.wakeUp(SystemClock.uptimeMillis(), PowerManager.WAKE_REASON_CAMERA_LAUNCH,
|
||||||
|
"com.android.systemui:CAMERA_GESTURE");
|
||||||
|
}
|
||||||
|
vibrateForCameraGesture();
|
||||||
|
|
||||||
|
if (source == StatusBarManager.CAMERA_LAUNCH_SOURCE_POWER_DOUBLE_TAP) {
|
||||||
|
Log.v(StatusBar.TAG, "Camera launch");
|
||||||
|
mKeyguardUpdateMonitor.onCameraLaunched();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mStatusBarKeyguardViewManager.isShowing()) {
|
||||||
|
final Intent cameraIntent = CameraIntents.getInsecureCameraIntent(mContext);
|
||||||
|
mStatusBar.startActivityDismissingKeyguard(cameraIntent,
|
||||||
|
false /* onlyProvisioned */, true /* dismissShade */,
|
||||||
|
true /* disallowEnterPictureInPictureWhileLaunching */, null /* callback */, 0,
|
||||||
|
null /* animationController */);
|
||||||
|
} else {
|
||||||
|
if (!mStatusBar.isDeviceInteractive()) {
|
||||||
|
// Avoid flickering of the scrim when we instant launch the camera and the bouncer
|
||||||
|
// comes on.
|
||||||
|
mStatusBar.acquireGestureWakeLock(StatusBar.LAUNCH_TRANSITION_TIMEOUT_MS + 1000L);
|
||||||
|
}
|
||||||
|
if (isWakingUpOrAwake()) {
|
||||||
|
if (StatusBar.DEBUG_CAMERA_LIFT) {
|
||||||
|
Slog.d(StatusBar.TAG, "Launching camera");
|
||||||
|
}
|
||||||
|
if (mStatusBarKeyguardViewManager.isBouncerShowing()) {
|
||||||
|
mStatusBarKeyguardViewManager.reset(true /* hide */);
|
||||||
|
}
|
||||||
|
mNotificationPanelViewController.launchCamera(
|
||||||
|
mStatusBar.isDeviceInteractive() /* animate */, source);
|
||||||
|
mStatusBar.updateScrimController();
|
||||||
|
} else {
|
||||||
|
// We need to defer the camera launch until the screen comes on, since otherwise
|
||||||
|
// we will dismiss us too early since we are waiting on an activity to be drawn and
|
||||||
|
// incorrectly get notified because of the screen on event (which resumes and pauses
|
||||||
|
// some activities)
|
||||||
|
if (StatusBar.DEBUG_CAMERA_LIFT) {
|
||||||
|
Slog.d(StatusBar.TAG, "Deferring until screen turns on");
|
||||||
|
}
|
||||||
|
mStatusBar.setLaunchCameraOnFinishedWaking(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEmergencyActionLaunchGestureDetected() {
|
||||||
|
Intent emergencyIntent = mStatusBar.getEmergencyActionIntent();
|
||||||
|
|
||||||
|
if (emergencyIntent == null) {
|
||||||
|
Log.wtf(StatusBar.TAG, "Couldn't find an app to process the emergency intent.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isGoingToSleep()) {
|
||||||
|
mStatusBar.setLaunchEmergencyActionOnFinishedGoingToSleep(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mStatusBar.isDeviceInteractive()) {
|
||||||
|
mPowerManager.wakeUp(SystemClock.uptimeMillis(),
|
||||||
|
PowerManager.WAKE_REASON_GESTURE,
|
||||||
|
"com.android.systemui:EMERGENCY_GESTURE");
|
||||||
|
}
|
||||||
|
// TODO(b/169087248) Possibly add haptics here for emergency action. Currently disabled for
|
||||||
|
// app-side haptic experimentation.
|
||||||
|
|
||||||
|
if (!mStatusBarKeyguardViewManager.isShowing()) {
|
||||||
|
mStatusBar.startActivityDismissingKeyguard(emergencyIntent,
|
||||||
|
false /* onlyProvisioned */, true /* dismissShade */,
|
||||||
|
true /* disallowEnterPictureInPictureWhileLaunching */, null /* callback */, 0,
|
||||||
|
null /* animationController */);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mStatusBar.isDeviceInteractive()) {
|
||||||
|
// Avoid flickering of the scrim when we instant launch the camera and the bouncer
|
||||||
|
// comes on.
|
||||||
|
mStatusBar.acquireGestureWakeLock(StatusBar.LAUNCH_TRANSITION_TIMEOUT_MS + 1000L);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isWakingUpOrAwake()) {
|
||||||
|
if (mStatusBarKeyguardViewManager.isBouncerShowing()) {
|
||||||
|
mStatusBarKeyguardViewManager.reset(true /* hide */);
|
||||||
|
}
|
||||||
|
mContext.startActivityAsUser(emergencyIntent, UserHandle.CURRENT);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// We need to defer the emergency action launch until the screen comes on, since otherwise
|
||||||
|
// we will dismiss us too early since we are waiting on an activity to be drawn and
|
||||||
|
// incorrectly get notified because of the screen on event (which resumes and pauses
|
||||||
|
// some activities)
|
||||||
|
mStatusBar.setLaunchEmergencyActionOnFinishedWaking(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRecentsAnimationStateChanged(boolean running) {
|
||||||
|
mStatusBar.setInteracting(StatusBarManager.WINDOW_NAVIGATION_BAR, running);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSystemBarAttributesChanged(int displayId, @Appearance int appearance,
|
||||||
|
AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme,
|
||||||
|
@Behavior int behavior, InsetsVisibilities requestedVisibilities, String packageName) {
|
||||||
|
if (displayId != mDisplayId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
boolean barModeChanged = mStatusBar.setAppearance(appearance);
|
||||||
|
|
||||||
|
mLightBarController.onStatusBarAppearanceChanged(appearanceRegions, barModeChanged,
|
||||||
|
mStatusBar.getBarMode(), navbarColorManagedByIme);
|
||||||
|
|
||||||
|
mStatusBar.updateBubblesVisibility();
|
||||||
|
mStatusBarStateController.setSystemBarAttributes(
|
||||||
|
appearance, behavior, requestedVisibilities, packageName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showTransient(int displayId, @InternalInsetsType int[] types) {
|
||||||
|
if (displayId != mDisplayId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!containsType(types, ITYPE_STATUS_BAR)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mStatusBar.showTransientUnchecked();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void toggleKeyboardShortcutsMenu(int deviceId) {
|
||||||
|
int msg = StatusBar.MSG_TOGGLE_KEYBOARD_SHORTCUTS_MENU;
|
||||||
|
mStatusBar.getHandler().removeMessages(msg);
|
||||||
|
mStatusBar.getHandler().obtainMessage(msg, deviceId, 0).sendToTarget();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTopAppHidesStatusBar(boolean topAppHidesStatusBar) {
|
||||||
|
mStatusBar.setTopHidesStatusBar(topAppHidesStatusBar);
|
||||||
|
if (!topAppHidesStatusBar && mStatusBar.getWereIconsJustHidden()) {
|
||||||
|
// Immediately update the icon hidden state, since that should only apply if we're
|
||||||
|
// staying fullscreen.
|
||||||
|
mStatusBar.setWereIconsJustHidden(false);
|
||||||
|
mCommandQueue.recomputeDisableFlags(mDisplayId, true);
|
||||||
|
}
|
||||||
|
mStatusBar.updateHideIconsForBouncer(true /* animate */);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setWindowState(
|
||||||
|
int displayId, @StatusBarManager.WindowType int window,
|
||||||
|
@StatusBarManager.WindowVisibleState int state) {
|
||||||
|
if (displayId != mDisplayId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
boolean showing = state == WINDOW_STATE_SHOWING;
|
||||||
|
if (mNotificationShadeWindowView != null
|
||||||
|
&& window == StatusBarManager.WINDOW_STATUS_BAR
|
||||||
|
&& !mStatusBar.isSameStatusBarState(state)) {
|
||||||
|
mStatusBar.setWindowState(state);
|
||||||
|
if (StatusBar.DEBUG_WINDOW_STATE) {
|
||||||
|
Log.d(StatusBar.TAG, "Status bar " + windowStateToString(state));
|
||||||
|
}
|
||||||
|
if (mStatusBar.getStatusBarView() != null) {
|
||||||
|
if (!showing && mStatusBarStateController.getState() == StatusBarState.SHADE) {
|
||||||
|
mStatusBar.getStatusBarView().collapsePanel(
|
||||||
|
false /* animate */, false /* delayed */, 1.0f /* speedUpFactor */);
|
||||||
|
}
|
||||||
|
|
||||||
|
mStatusBar.updateHideIconsForBouncer(false /* animate */);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mStatusBar.updateBubblesVisibility();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showAssistDisclosure() {
|
||||||
|
mAssistManager.showDisclosure();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showPinningEnterExitToast(boolean entering) {
|
||||||
|
if (mStatusBar.getNavigationBarView() != null) {
|
||||||
|
mStatusBar.getNavigationBarView().showPinningEnterExitToast(entering);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showPinningEscapeToast() {
|
||||||
|
if (mStatusBar.getNavigationBarView() != null) {
|
||||||
|
mStatusBar.getNavigationBarView().showPinningEscapeToast();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showScreenPinningRequest(int taskId) {
|
||||||
|
if (mKeyguardStateController.isShowing()) {
|
||||||
|
// Don't allow apps to trigger this from keyguard.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Show screen pinning request, since this comes from an app, show 'no thanks', button.
|
||||||
|
mStatusBar.showScreenPinningRequest(taskId, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showWirelessChargingAnimation(int batteryLevel) {
|
||||||
|
mStatusBar.showWirelessChargingAnimation(batteryLevel);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void startAssist(Bundle args) {
|
||||||
|
mAssistManager.startAssist(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void suppressAmbientDisplay(boolean suppressed) {
|
||||||
|
mDozeServiceHost.setDozeSuppressed(suppressed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void togglePanel() {
|
||||||
|
if (mStatusBar.isPanelExpanded()) {
|
||||||
|
mShadeController.animateCollapsePanels();
|
||||||
|
} else {
|
||||||
|
animateExpandNotificationsPanel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void toggleSplitScreen() {
|
||||||
|
mStatusBar.toggleSplitScreenMode(-1 /* metricsDockAction */, -1 /* metricsUndockAction */);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isGoingToSleep() {
|
||||||
|
return mWakefulnessLifecycle.getWakefulness()
|
||||||
|
== WakefulnessLifecycle.WAKEFULNESS_GOING_TO_SLEEP;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isWakingUpOrAwake() {
|
||||||
|
return mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_AWAKE
|
||||||
|
|| mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_WAKING;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void vibrateForCameraGesture() {
|
||||||
|
// Make sure to pass -1 for repeat so VibratorService doesn't stop us when going to sleep.
|
||||||
|
mVibratorOptional.ifPresent(
|
||||||
|
v -> v.vibrate(mCameraLaunchGestureVibrationEffect, VIBRATION_ATTRIBUTES));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static VibrationEffect getCameraGestureVibrationEffect(
|
||||||
|
Optional<Vibrator> vibratorOptional, Resources resources) {
|
||||||
|
if (vibratorOptional.isPresent() && vibratorOptional.get().areAllPrimitivesSupported(
|
||||||
|
VibrationEffect.Composition.PRIMITIVE_QUICK_RISE,
|
||||||
|
VibrationEffect.Composition.PRIMITIVE_CLICK)) {
|
||||||
|
return VibrationEffect.startComposition()
|
||||||
|
.addPrimitive(VibrationEffect.Composition.PRIMITIVE_QUICK_RISE)
|
||||||
|
.addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1, 50)
|
||||||
|
.compose();
|
||||||
|
}
|
||||||
|
if (vibratorOptional.isPresent() && vibratorOptional.get().hasAmplitudeControl()) {
|
||||||
|
return VibrationEffect.createWaveform(
|
||||||
|
StatusBar.CAMERA_LAUNCH_GESTURE_VIBRATION_TIMINGS,
|
||||||
|
StatusBar.CAMERA_LAUNCH_GESTURE_VIBRATION_AMPLITUDES,
|
||||||
|
/* repeat= */ -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int[] pattern = resources.getIntArray(R.array.config_cameraLaunchGestureVibePattern);
|
||||||
|
long[] timings = new long[pattern.length];
|
||||||
|
for (int i = 0; i < pattern.length; i++) {
|
||||||
|
timings[i] = pattern[i];
|
||||||
|
}
|
||||||
|
return VibrationEffect.createWaveform(timings, /* repeat= */ -1);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -24,6 +24,7 @@ import com.android.systemui.statusbar.phone.NotificationPanelViewController;
|
|||||||
import com.android.systemui.statusbar.phone.NotificationShadeWindowView;
|
import com.android.systemui.statusbar.phone.NotificationShadeWindowView;
|
||||||
import com.android.systemui.statusbar.phone.NotificationShadeWindowViewController;
|
import com.android.systemui.statusbar.phone.NotificationShadeWindowViewController;
|
||||||
import com.android.systemui.statusbar.phone.SplitShadeHeaderController;
|
import com.android.systemui.statusbar.phone.SplitShadeHeaderController;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarCommandQueueCallbacks;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarDemoMode;
|
import com.android.systemui.statusbar.phone.StatusBarDemoMode;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarHeadsUpChangeListener;
|
import com.android.systemui.statusbar.phone.StatusBarHeadsUpChangeListener;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarWindowController;
|
import com.android.systemui.statusbar.phone.StatusBarWindowController;
|
||||||
@@ -102,6 +103,12 @@ public interface StatusBarComponent {
|
|||||||
@StatusBarScope
|
@StatusBarScope
|
||||||
StatusBarHeadsUpChangeListener getStatusBarHeadsUpChangeListener();
|
StatusBarHeadsUpChangeListener getStatusBarHeadsUpChangeListener();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a StatusBarCommandQueueCallbacks.
|
||||||
|
*/
|
||||||
|
@StatusBarScope
|
||||||
|
StatusBarCommandQueueCallbacks getStatusBarCommandQueueCallbacks();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a SplitShadeHeaderController.
|
* Creates a SplitShadeHeaderController.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -18,18 +18,16 @@ package com.android.systemui.statusbar.phone.dagger;
|
|||||||
|
|
||||||
import static com.android.systemui.Dependency.TIME_TICK_HANDLER_NAME;
|
import static com.android.systemui.Dependency.TIME_TICK_HANDLER_NAME;
|
||||||
|
|
||||||
|
import android.app.WallpaperManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
|
|
||||||
import com.android.internal.logging.MetricsLogger;
|
import com.android.internal.logging.MetricsLogger;
|
||||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||||
import com.android.keyguard.ViewMediatorCallback;
|
import com.android.keyguard.ViewMediatorCallback;
|
||||||
import com.android.systemui.InitController;
|
import com.android.systemui.InitController;
|
||||||
import com.android.systemui.accessibility.floatingmenu.AccessibilityFloatingMenuController;
|
|
||||||
import com.android.systemui.assist.AssistManager;
|
import com.android.systemui.assist.AssistManager;
|
||||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||||
import com.android.systemui.classifier.FalsingCollector;
|
import com.android.systemui.classifier.FalsingCollector;
|
||||||
@@ -37,7 +35,6 @@ import com.android.systemui.colorextraction.SysuiColorExtractor;
|
|||||||
import com.android.systemui.dagger.SysUISingleton;
|
import com.android.systemui.dagger.SysUISingleton;
|
||||||
import com.android.systemui.dagger.qualifiers.UiBackground;
|
import com.android.systemui.dagger.qualifiers.UiBackground;
|
||||||
import com.android.systemui.demomode.DemoModeController;
|
import com.android.systemui.demomode.DemoModeController;
|
||||||
import com.android.systemui.keyguard.DismissCallbackRegistry;
|
|
||||||
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
|
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
|
||||||
import com.android.systemui.keyguard.KeyguardViewMediator;
|
import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||||
import com.android.systemui.keyguard.ScreenLifecycle;
|
import com.android.systemui.keyguard.ScreenLifecycle;
|
||||||
@@ -48,7 +45,6 @@ import com.android.systemui.plugins.PluginDependencyProvider;
|
|||||||
import com.android.systemui.recents.ScreenPinningRequest;
|
import com.android.systemui.recents.ScreenPinningRequest;
|
||||||
import com.android.systemui.settings.brightness.BrightnessSlider;
|
import com.android.systemui.settings.brightness.BrightnessSlider;
|
||||||
import com.android.systemui.shared.plugins.PluginManager;
|
import com.android.systemui.shared.plugins.PluginManager;
|
||||||
import com.android.unfold.config.UnfoldTransitionConfig;
|
|
||||||
import com.android.systemui.statusbar.CommandQueue;
|
import com.android.systemui.statusbar.CommandQueue;
|
||||||
import com.android.systemui.statusbar.FeatureFlags;
|
import com.android.systemui.statusbar.FeatureFlags;
|
||||||
import com.android.systemui.statusbar.KeyguardIndicationController;
|
import com.android.systemui.statusbar.KeyguardIndicationController;
|
||||||
@@ -62,8 +58,6 @@ import com.android.systemui.statusbar.NotificationViewHierarchyManager;
|
|||||||
import com.android.systemui.statusbar.PulseExpansionHandler;
|
import com.android.systemui.statusbar.PulseExpansionHandler;
|
||||||
import com.android.systemui.statusbar.SuperStatusBarViewFactory;
|
import com.android.systemui.statusbar.SuperStatusBarViewFactory;
|
||||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||||
import com.android.systemui.statusbar.VibratorHelper;
|
|
||||||
import com.android.systemui.statusbar.charging.WiredChargingRippleController;
|
|
||||||
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
|
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
|
||||||
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
|
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
|
||||||
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
|
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
|
||||||
@@ -81,7 +75,6 @@ import com.android.systemui.statusbar.phone.DozeServiceHost;
|
|||||||
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
|
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
|
||||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||||
import com.android.systemui.statusbar.phone.KeyguardDismissUtil;
|
import com.android.systemui.statusbar.phone.KeyguardDismissUtil;
|
||||||
import com.android.systemui.statusbar.phone.KeyguardLiftController;
|
|
||||||
import com.android.systemui.statusbar.phone.LightBarController;
|
import com.android.systemui.statusbar.phone.LightBarController;
|
||||||
import com.android.systemui.statusbar.phone.LightsOutNotifController;
|
import com.android.systemui.statusbar.phone.LightsOutNotifController;
|
||||||
import com.android.systemui.statusbar.phone.LockscreenWallpaper;
|
import com.android.systemui.statusbar.phone.LockscreenWallpaper;
|
||||||
@@ -94,7 +87,6 @@ import com.android.systemui.statusbar.phone.StatusBarIconController;
|
|||||||
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarLocationPublisher;
|
import com.android.systemui.statusbar.phone.StatusBarLocationPublisher;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter;
|
import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy;
|
|
||||||
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
|
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
|
||||||
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
|
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
|
||||||
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
||||||
@@ -104,12 +96,12 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
|||||||
import com.android.systemui.statusbar.policy.ExtensionController;
|
import com.android.systemui.statusbar.policy.ExtensionController;
|
||||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||||
import com.android.systemui.statusbar.policy.NetworkController;
|
import com.android.systemui.statusbar.policy.NetworkController;
|
||||||
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
|
|
||||||
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.unfold.UnfoldLightRevealOverlayAnimation;
|
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||||
import com.android.systemui.volume.VolumeComponent;
|
import com.android.systemui.volume.VolumeComponent;
|
||||||
import com.android.systemui.wmshell.BubblesManager;
|
import com.android.systemui.wmshell.BubblesManager;
|
||||||
|
import com.android.unfold.config.UnfoldTransitionConfig;
|
||||||
import com.android.wm.shell.bubbles.Bubbles;
|
import com.android.wm.shell.bubbles.Bubbles;
|
||||||
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
|
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
|
||||||
import com.android.wm.shell.startingsurface.StartingSurface;
|
import com.android.wm.shell.startingsurface.StartingSurface;
|
||||||
@@ -140,7 +132,6 @@ public interface StatusBarPhoneModule {
|
|||||||
LightBarController lightBarController,
|
LightBarController lightBarController,
|
||||||
AutoHideController autoHideController,
|
AutoHideController autoHideController,
|
||||||
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||||
StatusBarSignalPolicy signalPolicy,
|
|
||||||
PulseExpansionHandler pulseExpansionHandler,
|
PulseExpansionHandler pulseExpansionHandler,
|
||||||
NotificationWakeUpCoordinator notificationWakeUpCoordinator,
|
NotificationWakeUpCoordinator notificationWakeUpCoordinator,
|
||||||
KeyguardBypassController keyguardBypassController,
|
KeyguardBypassController keyguardBypassController,
|
||||||
@@ -151,7 +142,6 @@ public interface StatusBarPhoneModule {
|
|||||||
FalsingManager falsingManager,
|
FalsingManager falsingManager,
|
||||||
FalsingCollector falsingCollector,
|
FalsingCollector falsingCollector,
|
||||||
BroadcastDispatcher broadcastDispatcher,
|
BroadcastDispatcher broadcastDispatcher,
|
||||||
RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler,
|
|
||||||
NotificationGutsManager notificationGutsManager,
|
NotificationGutsManager notificationGutsManager,
|
||||||
NotificationLogger notificationLogger,
|
NotificationLogger notificationLogger,
|
||||||
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
||||||
@@ -170,19 +160,16 @@ public interface StatusBarPhoneModule {
|
|||||||
ScreenLifecycle screenLifecycle,
|
ScreenLifecycle screenLifecycle,
|
||||||
WakefulnessLifecycle wakefulnessLifecycle,
|
WakefulnessLifecycle wakefulnessLifecycle,
|
||||||
SysuiStatusBarStateController statusBarStateController,
|
SysuiStatusBarStateController statusBarStateController,
|
||||||
VibratorHelper vibratorHelper,
|
|
||||||
Optional<BubblesManager> bubblesManagerOptional,
|
Optional<BubblesManager> bubblesManagerOptional,
|
||||||
Optional<Bubbles> bubblesOptional,
|
Optional<Bubbles> bubblesOptional,
|
||||||
VisualStabilityManager visualStabilityManager,
|
VisualStabilityManager visualStabilityManager,
|
||||||
DeviceProvisionedController deviceProvisionedController,
|
DeviceProvisionedController deviceProvisionedController,
|
||||||
NavigationBarController navigationBarController,
|
NavigationBarController navigationBarController,
|
||||||
AccessibilityFloatingMenuController accessibilityFloatingMenuController,
|
|
||||||
Lazy<AssistManager> assistManagerLazy,
|
Lazy<AssistManager> assistManagerLazy,
|
||||||
ConfigurationController configurationController,
|
ConfigurationController configurationController,
|
||||||
NotificationShadeWindowController notificationShadeWindowController,
|
NotificationShadeWindowController notificationShadeWindowController,
|
||||||
DozeParameters dozeParameters,
|
DozeParameters dozeParameters,
|
||||||
ScrimController scrimController,
|
ScrimController scrimController,
|
||||||
@Nullable KeyguardLiftController keyguardLiftController,
|
|
||||||
Lazy<LockscreenWallpaper> lockscreenWallpaperLazy,
|
Lazy<LockscreenWallpaper> lockscreenWallpaperLazy,
|
||||||
Lazy<BiometricUnlockController> biometricUnlockControllerLazy,
|
Lazy<BiometricUnlockController> biometricUnlockControllerLazy,
|
||||||
DozeServiceHost dozeServiceHost,
|
DozeServiceHost dozeServiceHost,
|
||||||
@@ -211,11 +198,9 @@ public interface StatusBarPhoneModule {
|
|||||||
KeyguardIndicationController keyguardIndicationController,
|
KeyguardIndicationController keyguardIndicationController,
|
||||||
DemoModeController demoModeController,
|
DemoModeController demoModeController,
|
||||||
Lazy<NotificationShadeDepthController> notificationShadeDepthController,
|
Lazy<NotificationShadeDepthController> notificationShadeDepthController,
|
||||||
DismissCallbackRegistry dismissCallbackRegistry,
|
|
||||||
StatusBarTouchableRegionManager statusBarTouchableRegionManager,
|
StatusBarTouchableRegionManager statusBarTouchableRegionManager,
|
||||||
NotificationIconAreaController notificationIconAreaController,
|
NotificationIconAreaController notificationIconAreaController,
|
||||||
BrightnessSlider.Factory brightnessSliderFactory,
|
BrightnessSlider.Factory brightnessSliderFactory,
|
||||||
WiredChargingRippleController chargingRippleAnimationController,
|
|
||||||
UnfoldTransitionConfig unfoldTransitionConfig,
|
UnfoldTransitionConfig unfoldTransitionConfig,
|
||||||
Lazy<UnfoldLightRevealOverlayAnimation> unfoldLightRevealOverlayAnimation,
|
Lazy<UnfoldLightRevealOverlayAnimation> unfoldLightRevealOverlayAnimation,
|
||||||
OngoingCallController ongoingCallController,
|
OngoingCallController ongoingCallController,
|
||||||
@@ -225,6 +210,7 @@ public interface StatusBarPhoneModule {
|
|||||||
LockscreenShadeTransitionController transitionController,
|
LockscreenShadeTransitionController transitionController,
|
||||||
FeatureFlags featureFlags,
|
FeatureFlags featureFlags,
|
||||||
KeyguardUnlockAnimationController keyguardUnlockAnimationController,
|
KeyguardUnlockAnimationController keyguardUnlockAnimationController,
|
||||||
|
WallpaperManager wallpaperManager,
|
||||||
UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
|
UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
|
||||||
Optional<StartingSurface> startingSurfaceOptional) {
|
Optional<StartingSurface> startingSurfaceOptional) {
|
||||||
return new StatusBar(
|
return new StatusBar(
|
||||||
@@ -233,7 +219,6 @@ public interface StatusBarPhoneModule {
|
|||||||
lightBarController,
|
lightBarController,
|
||||||
autoHideController,
|
autoHideController,
|
||||||
keyguardUpdateMonitor,
|
keyguardUpdateMonitor,
|
||||||
signalPolicy,
|
|
||||||
pulseExpansionHandler,
|
pulseExpansionHandler,
|
||||||
notificationWakeUpCoordinator,
|
notificationWakeUpCoordinator,
|
||||||
keyguardBypassController,
|
keyguardBypassController,
|
||||||
@@ -244,7 +229,6 @@ public interface StatusBarPhoneModule {
|
|||||||
falsingManager,
|
falsingManager,
|
||||||
falsingCollector,
|
falsingCollector,
|
||||||
broadcastDispatcher,
|
broadcastDispatcher,
|
||||||
remoteInputQuickSettingsDisabler,
|
|
||||||
notificationGutsManager,
|
notificationGutsManager,
|
||||||
notificationLogger,
|
notificationLogger,
|
||||||
notificationInterruptStateProvider,
|
notificationInterruptStateProvider,
|
||||||
@@ -263,19 +247,16 @@ public interface StatusBarPhoneModule {
|
|||||||
screenLifecycle,
|
screenLifecycle,
|
||||||
wakefulnessLifecycle,
|
wakefulnessLifecycle,
|
||||||
statusBarStateController,
|
statusBarStateController,
|
||||||
vibratorHelper,
|
|
||||||
bubblesManagerOptional,
|
bubblesManagerOptional,
|
||||||
bubblesOptional,
|
bubblesOptional,
|
||||||
visualStabilityManager,
|
visualStabilityManager,
|
||||||
deviceProvisionedController,
|
deviceProvisionedController,
|
||||||
navigationBarController,
|
navigationBarController,
|
||||||
accessibilityFloatingMenuController,
|
|
||||||
assistManagerLazy,
|
assistManagerLazy,
|
||||||
configurationController,
|
configurationController,
|
||||||
notificationShadeWindowController,
|
notificationShadeWindowController,
|
||||||
dozeParameters,
|
dozeParameters,
|
||||||
scrimController,
|
scrimController,
|
||||||
keyguardLiftController,
|
|
||||||
lockscreenWallpaperLazy,
|
lockscreenWallpaperLazy,
|
||||||
biometricUnlockControllerLazy,
|
biometricUnlockControllerLazy,
|
||||||
dozeServiceHost,
|
dozeServiceHost,
|
||||||
@@ -301,13 +282,11 @@ public interface StatusBarPhoneModule {
|
|||||||
userInfoControllerImpl,
|
userInfoControllerImpl,
|
||||||
phoneStatusBarPolicy,
|
phoneStatusBarPolicy,
|
||||||
keyguardIndicationController,
|
keyguardIndicationController,
|
||||||
dismissCallbackRegistry,
|
|
||||||
demoModeController,
|
demoModeController,
|
||||||
notificationShadeDepthController,
|
notificationShadeDepthController,
|
||||||
statusBarTouchableRegionManager,
|
statusBarTouchableRegionManager,
|
||||||
notificationIconAreaController,
|
notificationIconAreaController,
|
||||||
brightnessSliderFactory,
|
brightnessSliderFactory,
|
||||||
chargingRippleAnimationController,
|
|
||||||
unfoldTransitionConfig,
|
unfoldTransitionConfig,
|
||||||
unfoldLightRevealOverlayAnimation,
|
unfoldLightRevealOverlayAnimation,
|
||||||
ongoingCallController,
|
ongoingCallController,
|
||||||
@@ -317,6 +296,7 @@ public interface StatusBarPhoneModule {
|
|||||||
transitionController,
|
transitionController,
|
||||||
featureFlags,
|
featureFlags,
|
||||||
keyguardUnlockAnimationController,
|
keyguardUnlockAnimationController,
|
||||||
|
wallpaperManager,
|
||||||
unlockedScreenOffAnimationController,
|
unlockedScreenOffAnimationController,
|
||||||
startingSurfaceOptional);
|
startingSurfaceOptional);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,170 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.systemui.statusbar.phone;
|
||||||
|
|
||||||
|
import static android.view.Display.DEFAULT_DISPLAY;
|
||||||
|
|
||||||
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
|
import static org.mockito.Mockito.never;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.app.StatusBarManager;
|
||||||
|
import android.os.PowerManager;
|
||||||
|
import android.os.Vibrator;
|
||||||
|
import android.testing.AndroidTestingRunner;
|
||||||
|
|
||||||
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
|
import com.android.internal.logging.MetricsLogger;
|
||||||
|
import com.android.internal.logging.testing.FakeMetricsLogger;
|
||||||
|
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||||
|
import com.android.systemui.SysuiTestCase;
|
||||||
|
import com.android.systemui.assist.AssistManager;
|
||||||
|
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||||
|
import com.android.systemui.statusbar.CommandQueue;
|
||||||
|
import com.android.systemui.statusbar.StatusBarStateControllerImpl;
|
||||||
|
import com.android.systemui.statusbar.VibratorHelper;
|
||||||
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
|
||||||
|
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
||||||
|
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||||
|
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
|
||||||
|
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.MockitoAnnotations;
|
||||||
|
import org.mockito.stubbing.Answer;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@SmallTest
|
||||||
|
@RunWith(AndroidTestingRunner.class)
|
||||||
|
public class StatusBarCommandQueueCallbacksTest extends SysuiTestCase {
|
||||||
|
@Mock private StatusBar mStatusBar;
|
||||||
|
@Mock private ShadeController mShadeController;
|
||||||
|
@Mock private CommandQueue mCommandQueue;
|
||||||
|
@Mock private NotificationPanelViewController mNotificationPanelViewController;
|
||||||
|
@Mock private LegacySplitScreen mLegacySplitScreen;
|
||||||
|
@Mock private RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler;
|
||||||
|
private final MetricsLogger mMetricsLogger = new FakeMetricsLogger();
|
||||||
|
@Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||||
|
@Mock private KeyguardStateController mKeyguardStateController;
|
||||||
|
@Mock private HeadsUpManagerPhone mHeadsUpManager;
|
||||||
|
@Mock private WakefulnessLifecycle mWakefulnessLifecycle;
|
||||||
|
@Mock private DeviceProvisionedController mDeviceProvisionedController;
|
||||||
|
@Mock private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
||||||
|
@Mock private AssistManager mAssistManager;
|
||||||
|
@Mock private DozeServiceHost mDozeServiceHost;
|
||||||
|
@Mock private StatusBarStateControllerImpl mStatusBarStateController;
|
||||||
|
@Mock private NotificationShadeWindowView mNotificationShadeWindowView;
|
||||||
|
@Mock private NotificationStackScrollLayoutController mNotificationStackScrollLayoutController;
|
||||||
|
@Mock private PowerManager mPowerManager;
|
||||||
|
@Mock private VibratorHelper mVibratorHelper;
|
||||||
|
@Mock private Vibrator mVibrator;
|
||||||
|
@Mock private LightBarController mLightBarController;
|
||||||
|
|
||||||
|
StatusBarCommandQueueCallbacks mSbcqCallbacks;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
MockitoAnnotations.initMocks(this);
|
||||||
|
|
||||||
|
mSbcqCallbacks = new StatusBarCommandQueueCallbacks(
|
||||||
|
mStatusBar,
|
||||||
|
mContext,
|
||||||
|
mContext.getResources(),
|
||||||
|
mShadeController,
|
||||||
|
mCommandQueue,
|
||||||
|
mNotificationPanelViewController,
|
||||||
|
Optional.of(mLegacySplitScreen),
|
||||||
|
mRemoteInputQuickSettingsDisabler,
|
||||||
|
mMetricsLogger,
|
||||||
|
mKeyguardUpdateMonitor,
|
||||||
|
mKeyguardStateController,
|
||||||
|
mHeadsUpManager,
|
||||||
|
mWakefulnessLifecycle,
|
||||||
|
mDeviceProvisionedController,
|
||||||
|
mStatusBarKeyguardViewManager,
|
||||||
|
mAssistManager,
|
||||||
|
mDozeServiceHost,
|
||||||
|
mStatusBarStateController,
|
||||||
|
mNotificationShadeWindowView,
|
||||||
|
mNotificationStackScrollLayoutController,
|
||||||
|
mPowerManager,
|
||||||
|
mVibratorHelper,
|
||||||
|
Optional.of(mVibrator),
|
||||||
|
mLightBarController,
|
||||||
|
DEFAULT_DISPLAY);
|
||||||
|
|
||||||
|
when(mDeviceProvisionedController.isCurrentUserSetup()).thenReturn(true);
|
||||||
|
when(mRemoteInputQuickSettingsDisabler.adjustDisableFlags(anyInt()))
|
||||||
|
.thenAnswer((Answer<Integer>) invocation -> invocation.getArgument(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDisableNotificationShade() {
|
||||||
|
when(mStatusBar.getDisabled1()).thenReturn(StatusBarManager.DISABLE_NONE);
|
||||||
|
when(mStatusBar.getDisabled2()).thenReturn(StatusBarManager.DISABLE_NONE);
|
||||||
|
when(mCommandQueue.panelsEnabled()).thenReturn(false);
|
||||||
|
mSbcqCallbacks.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_NONE,
|
||||||
|
StatusBarManager.DISABLE2_NOTIFICATION_SHADE, false);
|
||||||
|
|
||||||
|
verify(mStatusBar).updateQsExpansionEnabled();
|
||||||
|
verify(mShadeController).animateCollapsePanels();
|
||||||
|
|
||||||
|
// Trying to open it does nothing.
|
||||||
|
mSbcqCallbacks.animateExpandNotificationsPanel();
|
||||||
|
verify(mNotificationPanelViewController, never()).expandWithoutQs();
|
||||||
|
mSbcqCallbacks.animateExpandSettingsPanel(null);
|
||||||
|
verify(mNotificationPanelViewController, never()).expand(anyBoolean());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEnableNotificationShade() {
|
||||||
|
when(mStatusBar.getDisabled1()).thenReturn(StatusBarManager.DISABLE_NONE);
|
||||||
|
when(mStatusBar.getDisabled2()).thenReturn(StatusBarManager.DISABLE2_NOTIFICATION_SHADE);
|
||||||
|
when(mCommandQueue.panelsEnabled()).thenReturn(true);
|
||||||
|
mSbcqCallbacks.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_NONE,
|
||||||
|
StatusBarManager.DISABLE2_NONE, false);
|
||||||
|
verify(mStatusBar).updateQsExpansionEnabled();
|
||||||
|
verify(mShadeController, never()).animateCollapsePanels();
|
||||||
|
|
||||||
|
// Can now be opened.
|
||||||
|
mSbcqCallbacks.animateExpandNotificationsPanel();
|
||||||
|
verify(mNotificationPanelViewController).expandWithoutQs();
|
||||||
|
mSbcqCallbacks.animateExpandSettingsPanel(null);
|
||||||
|
verify(mNotificationPanelViewController).expandWithQs();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuppressAmbientDisplay_suppress() {
|
||||||
|
mSbcqCallbacks.suppressAmbientDisplay(true);
|
||||||
|
verify(mDozeServiceHost).setDozeSuppressed(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuppressAmbientDisplay_unsuppress() {
|
||||||
|
mSbcqCallbacks.suppressAmbientDisplay(false);
|
||||||
|
verify(mDozeServiceHost).setDozeSuppressed(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -18,7 +18,6 @@ package com.android.systemui.statusbar.phone;
|
|||||||
|
|
||||||
import static android.app.NotificationManager.IMPORTANCE_HIGH;
|
import static android.app.NotificationManager.IMPORTANCE_HIGH;
|
||||||
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK;
|
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK;
|
||||||
import static android.view.Display.DEFAULT_DISPLAY;
|
|
||||||
|
|
||||||
import static junit.framework.Assert.assertFalse;
|
import static junit.framework.Assert.assertFalse;
|
||||||
import static junit.framework.Assert.assertTrue;
|
import static junit.framework.Assert.assertTrue;
|
||||||
@@ -40,7 +39,7 @@ import static org.mockito.Mockito.when;
|
|||||||
|
|
||||||
import android.app.IWallpaperManager;
|
import android.app.IWallpaperManager;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.app.StatusBarManager;
|
import android.app.WallpaperManager;
|
||||||
import android.app.trust.TrustManager;
|
import android.app.trust.TrustManager;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
@@ -78,27 +77,23 @@ import com.android.keyguard.ViewMediatorCallback;
|
|||||||
import com.android.systemui.InitController;
|
import com.android.systemui.InitController;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
import com.android.systemui.accessibility.floatingmenu.AccessibilityFloatingMenuController;
|
|
||||||
import com.android.systemui.assist.AssistManager;
|
import com.android.systemui.assist.AssistManager;
|
||||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||||
import com.android.systemui.classifier.FalsingCollectorFake;
|
import com.android.systemui.classifier.FalsingCollectorFake;
|
||||||
import com.android.systemui.classifier.FalsingManagerFake;
|
import com.android.systemui.classifier.FalsingManagerFake;
|
||||||
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
||||||
import com.android.systemui.demomode.DemoModeController;
|
import com.android.systemui.demomode.DemoModeController;
|
||||||
import com.android.systemui.keyguard.DismissCallbackRegistry;
|
|
||||||
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
|
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
|
||||||
import com.android.systemui.keyguard.KeyguardViewMediator;
|
import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||||
import com.android.systemui.keyguard.ScreenLifecycle;
|
import com.android.systemui.keyguard.ScreenLifecycle;
|
||||||
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||||
import com.android.systemui.navigationbar.NavigationBarController;
|
import com.android.systemui.navigationbar.NavigationBarController;
|
||||||
import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
|
import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
|
||||||
import com.android.systemui.plugins.DarkIconDispatcher;
|
|
||||||
import com.android.systemui.plugins.PluginDependencyProvider;
|
import com.android.systemui.plugins.PluginDependencyProvider;
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||||
import com.android.systemui.recents.ScreenPinningRequest;
|
import com.android.systemui.recents.ScreenPinningRequest;
|
||||||
import com.android.systemui.settings.brightness.BrightnessSlider;
|
import com.android.systemui.settings.brightness.BrightnessSlider;
|
||||||
import com.android.systemui.shared.plugins.PluginManager;
|
import com.android.systemui.shared.plugins.PluginManager;
|
||||||
import com.android.unfold.config.UnfoldTransitionConfig;
|
|
||||||
import com.android.systemui.statusbar.CommandQueue;
|
import com.android.systemui.statusbar.CommandQueue;
|
||||||
import com.android.systemui.statusbar.FeatureFlags;
|
import com.android.systemui.statusbar.FeatureFlags;
|
||||||
import com.android.systemui.statusbar.KeyguardIndicationController;
|
import com.android.systemui.statusbar.KeyguardIndicationController;
|
||||||
@@ -114,11 +109,8 @@ import com.android.systemui.statusbar.PulseExpansionHandler;
|
|||||||
import com.android.systemui.statusbar.StatusBarState;
|
import com.android.systemui.statusbar.StatusBarState;
|
||||||
import com.android.systemui.statusbar.StatusBarStateControllerImpl;
|
import com.android.systemui.statusbar.StatusBarStateControllerImpl;
|
||||||
import com.android.systemui.statusbar.SuperStatusBarViewFactory;
|
import com.android.systemui.statusbar.SuperStatusBarViewFactory;
|
||||||
import com.android.systemui.statusbar.VibratorHelper;
|
|
||||||
import com.android.systemui.statusbar.charging.WiredChargingRippleController;
|
|
||||||
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
|
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
|
||||||
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
|
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
|
||||||
import com.android.systemui.statusbar.notification.NotificationEntryListener;
|
|
||||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||||
import com.android.systemui.statusbar.notification.NotificationFilter;
|
import com.android.systemui.statusbar.notification.NotificationFilter;
|
||||||
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
|
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
|
||||||
@@ -143,7 +135,6 @@ import com.android.systemui.statusbar.policy.ExtensionController;
|
|||||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||||
import com.android.systemui.statusbar.policy.NetworkController;
|
import com.android.systemui.statusbar.policy.NetworkController;
|
||||||
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
|
|
||||||
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.unfold.UnfoldLightRevealOverlayAnimation;
|
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||||
@@ -151,6 +142,7 @@ import com.android.systemui.util.concurrency.FakeExecutor;
|
|||||||
import com.android.systemui.util.time.FakeSystemClock;
|
import com.android.systemui.util.time.FakeSystemClock;
|
||||||
import com.android.systemui.volume.VolumeComponent;
|
import com.android.systemui.volume.VolumeComponent;
|
||||||
import com.android.systemui.wmshell.BubblesManager;
|
import com.android.systemui.wmshell.BubblesManager;
|
||||||
|
import com.android.unfold.config.UnfoldTransitionConfig;
|
||||||
import com.android.wm.shell.bubbles.Bubbles;
|
import com.android.wm.shell.bubbles.Bubbles;
|
||||||
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
|
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
|
||||||
import com.android.wm.shell.startingsurface.StartingSurface;
|
import com.android.wm.shell.startingsurface.StartingSurface;
|
||||||
@@ -181,7 +173,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
|
|
||||||
@Mock private NotificationsController mNotificationsController;
|
@Mock private NotificationsController mNotificationsController;
|
||||||
@Mock private LightBarController mLightBarController;
|
@Mock private LightBarController mLightBarController;
|
||||||
@Mock private StatusBarSignalPolicy mStatusBarSignalPolicy;
|
|
||||||
@Mock private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
@Mock private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
||||||
@Mock private KeyguardStateController mKeyguardStateController;
|
@Mock private KeyguardStateController mKeyguardStateController;
|
||||||
@Mock private KeyguardIndicationController mKeyguardIndicationController;
|
@Mock private KeyguardIndicationController mKeyguardIndicationController;
|
||||||
@@ -206,7 +197,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
@Mock private BatteryController mBatteryController;
|
@Mock private BatteryController mBatteryController;
|
||||||
@Mock private DeviceProvisionedController mDeviceProvisionedController;
|
@Mock private DeviceProvisionedController mDeviceProvisionedController;
|
||||||
@Mock private StatusBarNotificationPresenter mNotificationPresenter;
|
@Mock private StatusBarNotificationPresenter mNotificationPresenter;
|
||||||
@Mock private NotificationEntryListener mEntryListener;
|
|
||||||
@Mock private NotificationFilter mNotificationFilter;
|
@Mock private NotificationFilter mNotificationFilter;
|
||||||
@Mock private AmbientDisplayConfiguration mAmbientDisplayConfiguration;
|
@Mock private AmbientDisplayConfiguration mAmbientDisplayConfiguration;
|
||||||
@Mock private NotificationLogger.ExpansionStateLogger mExpansionStateLogger;
|
@Mock private NotificationLogger.ExpansionStateLogger mExpansionStateLogger;
|
||||||
@@ -217,7 +207,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
@Mock private NotificationGutsManager mNotificationGutsManager;
|
@Mock private NotificationGutsManager mNotificationGutsManager;
|
||||||
@Mock private NotificationMediaManager mNotificationMediaManager;
|
@Mock private NotificationMediaManager mNotificationMediaManager;
|
||||||
@Mock private NavigationBarController mNavigationBarController;
|
@Mock private NavigationBarController mNavigationBarController;
|
||||||
@Mock private AccessibilityFloatingMenuController mAccessibilityFloatingMenuController;
|
|
||||||
@Mock private BypassHeadsUpNotifier mBypassHeadsUpNotifier;
|
@Mock private BypassHeadsUpNotifier mBypassHeadsUpNotifier;
|
||||||
@Mock private SysuiColorExtractor mColorExtractor;
|
@Mock private SysuiColorExtractor mColorExtractor;
|
||||||
@Mock private ColorExtractor.GradientColors mGradientColors;
|
@Mock private ColorExtractor.GradientColors mGradientColors;
|
||||||
@@ -229,7 +218,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
@Mock private NotificationViewHierarchyManager mNotificationViewHierarchyManager;
|
@Mock private NotificationViewHierarchyManager mNotificationViewHierarchyManager;
|
||||||
@Mock private UserSwitcherController mUserSwitcherController;
|
@Mock private UserSwitcherController mUserSwitcherController;
|
||||||
@Mock private NetworkController mNetworkController;
|
@Mock private NetworkController mNetworkController;
|
||||||
@Mock private VibratorHelper mVibratorHelper;
|
|
||||||
@Mock private BubblesManager mBubblesManager;
|
@Mock private BubblesManager mBubblesManager;
|
||||||
@Mock private Bubbles mBubbles;
|
@Mock private Bubbles mBubbles;
|
||||||
@Mock private NotificationShadeWindowController mNotificationShadeWindowController;
|
@Mock private NotificationShadeWindowController mNotificationShadeWindowController;
|
||||||
@@ -240,7 +228,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
@Mock private LockscreenWallpaper mLockscreenWallpaper;
|
@Mock private LockscreenWallpaper mLockscreenWallpaper;
|
||||||
@Mock private DozeServiceHost mDozeServiceHost;
|
@Mock private DozeServiceHost mDozeServiceHost;
|
||||||
@Mock private ViewMediatorCallback mKeyguardVieMediatorCallback;
|
@Mock private ViewMediatorCallback mKeyguardVieMediatorCallback;
|
||||||
@Mock private KeyguardLiftController mKeyguardLiftController;
|
|
||||||
@Mock private VolumeComponent mVolumeComponent;
|
@Mock private VolumeComponent mVolumeComponent;
|
||||||
@Mock private CommandQueue mCommandQueue;
|
@Mock private CommandQueue mCommandQueue;
|
||||||
@Mock private Provider<StatusBarComponent.Builder> mStatusBarComponentBuilderProvider;
|
@Mock private Provider<StatusBarComponent.Builder> mStatusBarComponentBuilderProvider;
|
||||||
@@ -251,12 +238,10 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
@Mock private SuperStatusBarViewFactory mSuperStatusBarViewFactory;
|
@Mock private SuperStatusBarViewFactory mSuperStatusBarViewFactory;
|
||||||
@Mock private LightsOutNotifController mLightsOutNotifController;
|
@Mock private LightsOutNotifController mLightsOutNotifController;
|
||||||
@Mock private ViewMediatorCallback mViewMediatorCallback;
|
@Mock private ViewMediatorCallback mViewMediatorCallback;
|
||||||
@Mock private DismissCallbackRegistry mDismissCallbackRegistry;
|
|
||||||
@Mock private StatusBarTouchableRegionManager mStatusBarTouchableRegionManager;
|
@Mock private StatusBarTouchableRegionManager mStatusBarTouchableRegionManager;
|
||||||
@Mock private ScreenPinningRequest mScreenPinningRequest;
|
@Mock private ScreenPinningRequest mScreenPinningRequest;
|
||||||
@Mock private StatusBarNotificationActivityStarter.Builder
|
@Mock private StatusBarNotificationActivityStarter.Builder
|
||||||
mStatusBarNotificationActivityStarterBuilder;
|
mStatusBarNotificationActivityStarterBuilder;
|
||||||
@Mock private DarkIconDispatcher mDarkIconDispatcher;
|
|
||||||
@Mock private PluginDependencyProvider mPluginDependencyProvider;
|
@Mock private PluginDependencyProvider mPluginDependencyProvider;
|
||||||
@Mock private KeyguardDismissUtil mKeyguardDismissUtil;
|
@Mock private KeyguardDismissUtil mKeyguardDismissUtil;
|
||||||
@Mock private ExtensionController mExtensionController;
|
@Mock private ExtensionController mExtensionController;
|
||||||
@@ -265,7 +250,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
@Mock private DemoModeController mDemoModeController;
|
@Mock private DemoModeController mDemoModeController;
|
||||||
@Mock private Lazy<NotificationShadeDepthController> mNotificationShadeDepthControllerLazy;
|
@Mock private Lazy<NotificationShadeDepthController> mNotificationShadeDepthControllerLazy;
|
||||||
@Mock private BrightnessSlider.Factory mBrightnessSliderFactory;
|
@Mock private BrightnessSlider.Factory mBrightnessSliderFactory;
|
||||||
@Mock private WiredChargingRippleController mWiredChargingRippleController;
|
|
||||||
@Mock private UnfoldTransitionConfig mUnfoldTransitionConfig;
|
@Mock private UnfoldTransitionConfig mUnfoldTransitionConfig;
|
||||||
@Mock private Lazy<UnfoldLightRevealOverlayAnimation> mUnfoldLightRevealOverlayAnimationLazy;
|
@Mock private Lazy<UnfoldLightRevealOverlayAnimation> mUnfoldLightRevealOverlayAnimationLazy;
|
||||||
@Mock private OngoingCallController mOngoingCallController;
|
@Mock private OngoingCallController mOngoingCallController;
|
||||||
@@ -274,7 +258,8 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
@Mock private StatusBarIconController mIconController;
|
@Mock private StatusBarIconController mIconController;
|
||||||
@Mock private LockscreenShadeTransitionController mLockscreenTransitionController;
|
@Mock private LockscreenShadeTransitionController mLockscreenTransitionController;
|
||||||
@Mock private FeatureFlags mFeatureFlags;
|
@Mock private FeatureFlags mFeatureFlags;
|
||||||
@Mock private IWallpaperManager mWallpaperManager;
|
@Mock private WallpaperManager mWallpaperManager;
|
||||||
|
@Mock private IWallpaperManager mIWallpaperManager;
|
||||||
@Mock private KeyguardUnlockAnimationController mKeyguardUnlockAnimationController;
|
@Mock private KeyguardUnlockAnimationController mKeyguardUnlockAnimationController;
|
||||||
@Mock private UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
|
@Mock private UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
|
||||||
@Mock private StartingSurface mStartingSurface;
|
@Mock private StartingSurface mStartingSurface;
|
||||||
@@ -335,7 +320,7 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
}).when(mStatusBarKeyguardViewManager).addAfterKeyguardGoneRunnable(any());
|
}).when(mStatusBarKeyguardViewManager).addAfterKeyguardGoneRunnable(any());
|
||||||
|
|
||||||
WakefulnessLifecycle wakefulnessLifecycle =
|
WakefulnessLifecycle wakefulnessLifecycle =
|
||||||
new WakefulnessLifecycle(mContext, mWallpaperManager);
|
new WakefulnessLifecycle(mContext, mIWallpaperManager);
|
||||||
wakefulnessLifecycle.dispatchStartedWakingUp(PowerManager.WAKE_REASON_UNKNOWN);
|
wakefulnessLifecycle.dispatchStartedWakingUp(PowerManager.WAKE_REASON_UNKNOWN);
|
||||||
wakefulnessLifecycle.dispatchFinishedWakingUp();
|
wakefulnessLifecycle.dispatchFinishedWakingUp();
|
||||||
|
|
||||||
@@ -362,7 +347,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
mLightBarController,
|
mLightBarController,
|
||||||
mAutoHideController,
|
mAutoHideController,
|
||||||
mKeyguardUpdateMonitor,
|
mKeyguardUpdateMonitor,
|
||||||
mStatusBarSignalPolicy,
|
|
||||||
mPulseExpansionHandler,
|
mPulseExpansionHandler,
|
||||||
mNotificationWakeUpCoordinator,
|
mNotificationWakeUpCoordinator,
|
||||||
mKeyguardBypassController,
|
mKeyguardBypassController,
|
||||||
@@ -373,11 +357,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
new FalsingManagerFake(),
|
new FalsingManagerFake(),
|
||||||
new FalsingCollectorFake(),
|
new FalsingCollectorFake(),
|
||||||
mBroadcastDispatcher,
|
mBroadcastDispatcher,
|
||||||
new RemoteInputQuickSettingsDisabler(
|
|
||||||
mContext,
|
|
||||||
configurationController,
|
|
||||||
mCommandQueue
|
|
||||||
),
|
|
||||||
mNotificationGutsManager,
|
mNotificationGutsManager,
|
||||||
notificationLogger,
|
notificationLogger,
|
||||||
mNotificationInterruptStateProvider,
|
mNotificationInterruptStateProvider,
|
||||||
@@ -396,19 +375,16 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
new ScreenLifecycle(),
|
new ScreenLifecycle(),
|
||||||
wakefulnessLifecycle,
|
wakefulnessLifecycle,
|
||||||
mStatusBarStateController,
|
mStatusBarStateController,
|
||||||
mVibratorHelper,
|
|
||||||
Optional.of(mBubblesManager),
|
Optional.of(mBubblesManager),
|
||||||
Optional.of(mBubbles),
|
Optional.of(mBubbles),
|
||||||
mVisualStabilityManager,
|
mVisualStabilityManager,
|
||||||
mDeviceProvisionedController,
|
mDeviceProvisionedController,
|
||||||
mNavigationBarController,
|
mNavigationBarController,
|
||||||
mAccessibilityFloatingMenuController,
|
|
||||||
() -> mAssistManager,
|
() -> mAssistManager,
|
||||||
configurationController,
|
configurationController,
|
||||||
mNotificationShadeWindowController,
|
mNotificationShadeWindowController,
|
||||||
mDozeParameters,
|
mDozeParameters,
|
||||||
mScrimController,
|
mScrimController,
|
||||||
mKeyguardLiftController,
|
|
||||||
mLockscreenWallpaperLazy,
|
mLockscreenWallpaperLazy,
|
||||||
mBiometricUnlockControllerLazy,
|
mBiometricUnlockControllerLazy,
|
||||||
mDozeServiceHost,
|
mDozeServiceHost,
|
||||||
@@ -433,13 +409,11 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
mUserInfoControllerImpl,
|
mUserInfoControllerImpl,
|
||||||
mPhoneStatusBarPolicy,
|
mPhoneStatusBarPolicy,
|
||||||
mKeyguardIndicationController,
|
mKeyguardIndicationController,
|
||||||
mDismissCallbackRegistry,
|
|
||||||
mDemoModeController,
|
mDemoModeController,
|
||||||
mNotificationShadeDepthControllerLazy,
|
mNotificationShadeDepthControllerLazy,
|
||||||
mStatusBarTouchableRegionManager,
|
mStatusBarTouchableRegionManager,
|
||||||
mNotificationIconAreaController,
|
mNotificationIconAreaController,
|
||||||
mBrightnessSliderFactory,
|
mBrightnessSliderFactory,
|
||||||
mWiredChargingRippleController,
|
|
||||||
mUnfoldTransitionConfig,
|
mUnfoldTransitionConfig,
|
||||||
mUnfoldLightRevealOverlayAnimationLazy,
|
mUnfoldLightRevealOverlayAnimationLazy,
|
||||||
mOngoingCallController,
|
mOngoingCallController,
|
||||||
@@ -449,6 +423,7 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
mLockscreenTransitionController,
|
mLockscreenTransitionController,
|
||||||
mFeatureFlags,
|
mFeatureFlags,
|
||||||
mKeyguardUnlockAnimationController,
|
mKeyguardUnlockAnimationController,
|
||||||
|
mWallpaperManager,
|
||||||
mUnlockedScreenOffAnimationController,
|
mUnlockedScreenOffAnimationController,
|
||||||
Optional.of(mStartingSurface));
|
Optional.of(mStartingSurface));
|
||||||
when(mKeyguardViewMediator.registerStatusBar(any(StatusBar.class), any(ViewGroup.class),
|
when(mKeyguardViewMediator.registerStatusBar(any(StatusBar.class), any(ViewGroup.class),
|
||||||
@@ -753,31 +728,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
TestableLooper.get(this).processAllMessages();
|
TestableLooper.get(this).processAllMessages();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testDisableExpandStatusBar() {
|
|
||||||
mStatusBar.setBarStateForTest(StatusBarState.SHADE);
|
|
||||||
mStatusBar.setUserSetupForTest(true);
|
|
||||||
when(mDeviceProvisionedController.isDeviceProvisioned()).thenReturn(true);
|
|
||||||
|
|
||||||
when(mCommandQueue.panelsEnabled()).thenReturn(false);
|
|
||||||
mStatusBar.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_NONE,
|
|
||||||
StatusBarManager.DISABLE2_NOTIFICATION_SHADE, false);
|
|
||||||
verify(mNotificationPanelViewController).setQsExpansionEnabledPolicy(false);
|
|
||||||
mStatusBar.animateExpandNotificationsPanel();
|
|
||||||
verify(mNotificationPanelViewController, never()).expand(anyBoolean());
|
|
||||||
mStatusBar.animateExpandSettingsPanel(null);
|
|
||||||
verify(mNotificationPanelViewController, never()).expand(anyBoolean());
|
|
||||||
|
|
||||||
when(mCommandQueue.panelsEnabled()).thenReturn(true);
|
|
||||||
mStatusBar.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_NONE,
|
|
||||||
StatusBarManager.DISABLE2_NONE, false);
|
|
||||||
verify(mNotificationPanelViewController).setQsExpansionEnabledPolicy(true);
|
|
||||||
mStatusBar.animateExpandNotificationsPanel();
|
|
||||||
verify(mNotificationPanelViewController).expandWithoutQs();
|
|
||||||
mStatusBar.animateExpandSettingsPanel(null);
|
|
||||||
verify(mNotificationPanelViewController).expandWithQs();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDump_DoesNotCrash() {
|
public void testDump_DoesNotCrash() {
|
||||||
mStatusBar.dump(null, new PrintWriter(new ByteArrayOutputStream()), null);
|
mStatusBar.dump(null, new PrintWriter(new ByteArrayOutputStream()), null);
|
||||||
@@ -904,18 +854,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
any(UserHandle.class));
|
any(UserHandle.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testSuppressAmbientDisplay_suppress() {
|
|
||||||
mStatusBar.suppressAmbientDisplay(true);
|
|
||||||
verify(mDozeServiceHost).setDozeSuppressed(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testSuppressAmbientDisplay_unsuppress() {
|
|
||||||
mStatusBar.suppressAmbientDisplay(false);
|
|
||||||
verify(mDozeServiceHost).setDozeSuppressed(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateResources_updatesBouncer() {
|
public void testUpdateResources_updatesBouncer() {
|
||||||
mStatusBar.updateResources();
|
mStatusBar.updateResources();
|
||||||
|
|||||||
Reference in New Issue
Block a user