Merge "Hide task bar on AOD" into tm-qpr-dev am: 3d3761b3cc

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21459145

Change-Id: Ic49f171c74c7dee78ede3f7a99b9f518a73c9354
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Beverly Tai
2023-02-22 17:12:28 +00:00
committed by Automerger Merge Worker
4 changed files with 38 additions and 5 deletions

View File

@@ -41,7 +41,6 @@ import static com.android.systemui.statusbar.phone.BarTransitions.TransitionMode
import android.app.StatusBarManager; import android.app.StatusBarManager;
import android.app.StatusBarManager.WindowVisibleState; import android.app.StatusBarManager.WindowVisibleState;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.graphics.Rect; import android.graphics.Rect;
@@ -68,7 +67,6 @@ import com.android.systemui.model.SysUiState;
import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler; import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler;
import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.OverviewProxyService;
import com.android.systemui.shared.recents.utilities.Utilities; import com.android.systemui.shared.recents.utilities.Utilities;
import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.QuickStepContract;
import com.android.systemui.shared.system.TaskStackChangeListener; import com.android.systemui.shared.system.TaskStackChangeListener;
import com.android.systemui.shared.system.TaskStackChangeListeners; import com.android.systemui.shared.system.TaskStackChangeListeners;
@@ -78,6 +76,7 @@ import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.BarTransitions; import com.android.systemui.statusbar.phone.BarTransitions;
import com.android.systemui.statusbar.phone.LightBarController; import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.statusbar.phone.LightBarTransitionsController; import com.android.systemui.statusbar.phone.LightBarTransitionsController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.wm.shell.back.BackAnimation; import com.android.wm.shell.back.BackAnimation;
import com.android.wm.shell.pip.Pip; import com.android.wm.shell.pip.Pip;
@@ -169,16 +168,20 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,
private BackAnimation mBackAnimation; private BackAnimation mBackAnimation;
private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
@Inject @Inject
public TaskbarDelegate(Context context, public TaskbarDelegate(Context context,
EdgeBackGestureHandler.Factory edgeBackGestureHandlerFactory, EdgeBackGestureHandler.Factory edgeBackGestureHandlerFactory,
LightBarTransitionsController.Factory lightBarTransitionsControllerFactory) { LightBarTransitionsController.Factory lightBarTransitionsControllerFactory,
StatusBarKeyguardViewManager statusBarKeyguardViewManager) {
mLightBarTransitionsControllerFactory = lightBarTransitionsControllerFactory; mLightBarTransitionsControllerFactory = lightBarTransitionsControllerFactory;
mEdgeBackGestureHandler = edgeBackGestureHandlerFactory.create(context); mEdgeBackGestureHandler = edgeBackGestureHandlerFactory.create(context);
mContext = context; mContext = context;
mDisplayManager = mContext.getSystemService(DisplayManager.class); mDisplayManager = mContext.getSystemService(DisplayManager.class);
mPipListener = mEdgeBackGestureHandler::setPipStashExclusionBounds; mPipListener = mEdgeBackGestureHandler::setPipStashExclusionBounds;
mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
mStatusBarKeyguardViewManager.setTaskbarDelegate(this);
} }
public void setDependencies(CommandQueue commandQueue, public void setDependencies(CommandQueue commandQueue,

View File

@@ -66,6 +66,7 @@ import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerCallbackInt
import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerInteractor; import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerInteractor;
import com.android.systemui.navigationbar.NavigationBarView; import com.android.systemui.navigationbar.NavigationBarView;
import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.navigationbar.NavigationModeController;
import com.android.systemui.navigationbar.TaskbarDelegate;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.shade.NotificationPanelViewController; import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.ShadeController; import com.android.systemui.shade.ShadeController;
@@ -300,6 +301,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
@Nullable private KeyguardBypassController mBypassController; @Nullable private KeyguardBypassController mBypassController;
@Nullable private OccludingAppBiometricUI mOccludingAppBiometricUI; @Nullable private OccludingAppBiometricUI mOccludingAppBiometricUI;
@Nullable private TaskbarDelegate mTaskbarDelegate;
private final KeyguardUpdateMonitorCallback mUpdateMonitorCallback = private final KeyguardUpdateMonitorCallback mUpdateMonitorCallback =
new KeyguardUpdateMonitorCallback() { new KeyguardUpdateMonitorCallback() {
@Override @Override
@@ -564,6 +566,10 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
updateStates(); updateStates();
} }
public void setTaskbarDelegate(TaskbarDelegate taskbarDelegate) {
mTaskbarDelegate = taskbarDelegate;
}
/** /**
* Show the keyguard. Will handle creating and attaching to the view manager * Show the keyguard. Will handle creating and attaching to the view manager
* lazily. * lazily.
@@ -1194,7 +1200,8 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
* Updates the visibility of the nav bar window (which will cause insets changes). * Updates the visibility of the nav bar window (which will cause insets changes).
*/ */
protected void updateNavigationBarVisibility(boolean navBarVisible) { protected void updateNavigationBarVisibility(boolean navBarVisible) {
if (mCentralSurfaces.getNavigationBarView() != null) { if (mCentralSurfaces.getNavigationBarView() != null
|| (mTaskbarDelegate != null && mTaskbarDelegate.isInitialized())) {
if (navBarVisible) { if (navBarVisible) {
long delay = getNavBarShowDelay(); long delay = getNavBarShowDelay();
if (delay == 0) { if (delay == 0) {

View File

@@ -13,6 +13,7 @@ import com.android.systemui.statusbar.CommandQueue
import com.android.systemui.statusbar.phone.AutoHideController import com.android.systemui.statusbar.phone.AutoHideController
import com.android.systemui.statusbar.phone.LightBarController import com.android.systemui.statusbar.phone.LightBarController
import com.android.systemui.statusbar.phone.LightBarTransitionsController import com.android.systemui.statusbar.phone.LightBarTransitionsController
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager
import com.android.wm.shell.back.BackAnimation import com.android.wm.shell.back.BackAnimation
import com.android.wm.shell.pip.Pip import com.android.wm.shell.pip.Pip
import org.junit.Before import org.junit.Before
@@ -66,6 +67,8 @@ class TaskbarDelegateTest : SysuiTestCase() {
lateinit var mBackAnimation: BackAnimation lateinit var mBackAnimation: BackAnimation
@Mock @Mock
lateinit var mCurrentSysUiState: NavBarHelper.CurrentSysuiState lateinit var mCurrentSysUiState: NavBarHelper.CurrentSysuiState
@Mock
lateinit var mStatusBarKeyguardViewManager: StatusBarKeyguardViewManager
@Before @Before
fun setup() { fun setup() {
@@ -76,7 +79,7 @@ class TaskbarDelegateTest : SysuiTestCase() {
`when`(mSysUiState.setFlag(anyInt(), anyBoolean())).thenReturn(mSysUiState) `when`(mSysUiState.setFlag(anyInt(), anyBoolean())).thenReturn(mSysUiState)
mTaskStackChangeListeners = TaskStackChangeListeners.getTestInstance() mTaskStackChangeListeners = TaskStackChangeListeners.getTestInstance()
mTaskbarDelegate = TaskbarDelegate(context, mEdgeBackGestureHandlerFactory, mTaskbarDelegate = TaskbarDelegate(context, mEdgeBackGestureHandlerFactory,
mLightBarControllerFactory) mLightBarControllerFactory, mStatusBarKeyguardViewManager)
mTaskbarDelegate.setDependencies(mCommandQueue, mOverviewProxyService, mNavBarHelper, mTaskbarDelegate.setDependencies(mCommandQueue, mOverviewProxyService, mNavBarHelper,
mNavigationModeController, mSysUiState, mDumpManager, mAutoHideController, mNavigationModeController, mSysUiState, mDumpManager, mAutoHideController,
mLightBarController, mOptionalPip, mBackAnimation, mTaskStackChangeListeners) mLightBarController, mOptionalPip, mBackAnimation, mTaskStackChangeListeners)

View File

@@ -38,6 +38,8 @@ import android.testing.TestableLooper;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.ViewRootImpl; import android.view.ViewRootImpl;
import android.view.WindowInsets;
import android.view.WindowInsetsController;
import android.window.BackEvent; import android.window.BackEvent;
import android.window.OnBackAnimationCallback; import android.window.OnBackAnimationCallback;
import android.window.OnBackInvokedCallback; import android.window.OnBackInvokedCallback;
@@ -65,8 +67,10 @@ import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerCallbackInt
import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerCallbackInteractor.PrimaryBouncerExpansionCallback; import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerCallbackInteractor.PrimaryBouncerExpansionCallback;
import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerInteractor; import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerInteractor;
import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.navigationbar.NavigationModeController;
import com.android.systemui.navigationbar.TaskbarDelegate;
import com.android.systemui.plugins.ActivityStarter.OnDismissAction; import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
import com.android.systemui.shade.NotificationPanelViewController; import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.NotificationShadeWindowView;
import com.android.systemui.shade.ShadeController; import com.android.systemui.shade.ShadeController;
import com.android.systemui.shade.ShadeExpansionChangeEvent; import com.android.systemui.shade.ShadeExpansionChangeEvent;
import com.android.systemui.shade.ShadeExpansionStateManager; import com.android.systemui.shade.ShadeExpansionStateManager;
@@ -123,6 +127,9 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
@Mock private BouncerView mBouncerView; @Mock private BouncerView mBouncerView;
@Mock private BouncerViewDelegate mBouncerViewDelegate; @Mock private BouncerViewDelegate mBouncerViewDelegate;
@Mock private OnBackAnimationCallback mBouncerViewDelegateBackCallback; @Mock private OnBackAnimationCallback mBouncerViewDelegateBackCallback;
@Mock private NotificationShadeWindowView mNotificationShadeWindowView;
@Mock private WindowInsetsController mWindowInsetsController;
@Mock private TaskbarDelegate mTaskbarDelegate;
private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
private PrimaryBouncerCallbackInteractor.PrimaryBouncerExpansionCallback private PrimaryBouncerCallbackInteractor.PrimaryBouncerExpansionCallback
@@ -151,6 +158,11 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
.isEnabled(Flags.WM_ENABLE_PREDICTIVE_BACK_BOUNCER_ANIM)) .isEnabled(Flags.WM_ENABLE_PREDICTIVE_BACK_BOUNCER_ANIM))
.thenReturn(true); .thenReturn(true);
when(mCentralSurfaces.getNotificationShadeWindowView())
.thenReturn(mNotificationShadeWindowView);
when(mNotificationShadeWindowView.getWindowInsetsController())
.thenReturn(mWindowInsetsController);
mStatusBarKeyguardViewManager = mStatusBarKeyguardViewManager =
new StatusBarKeyguardViewManager( new StatusBarKeyguardViewManager(
getContext(), getContext(),
@@ -639,6 +651,14 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
verify(mCentralSurfaces).setBouncerShowingOverDream(false); verify(mCentralSurfaces).setBouncerShowingOverDream(false);
} }
@Test
public void testHideTaskbar() {
when(mTaskbarDelegate.isInitialized()).thenReturn(true);
mStatusBarKeyguardViewManager.setTaskbarDelegate(mTaskbarDelegate);
mStatusBarKeyguardViewManager.updateNavigationBarVisibility(false);
verify(mWindowInsetsController).hide(WindowInsets.Type.navigationBars());
}
@Test @Test
public void hideAlternateBouncer_beforeCentralSurfacesRegistered() { public void hideAlternateBouncer_beforeCentralSurfacesRegistered() {
mStatusBarKeyguardViewManager = mStatusBarKeyguardViewManager =