Don't move PiP if keyguard is showing or animating.
Without this there will be a PiP window shadow lingering around on the screen, which looks like menu overlay, but it's actually the shadow. Similar precaution is already implemented in the shelf height change callback, so this is further adding the same logic to other places that trigger movement, with or without keep clear areas flag. Bug: 269402344 Test: manually, move PiP to the bottom, enter keyguard - no shadow Change-Id: Id2b69c98c6a9d6afdc10d8f601c3e38a063084d0
This commit is contained in:
@@ -161,6 +161,10 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
||||
this::onKeepClearAreasChangedCallback;
|
||||
|
||||
private void onKeepClearAreasChangedCallback() {
|
||||
if (mIsKeyguardShowingOrAnimating) {
|
||||
// early bail out if the change was caused by keyguard showing up
|
||||
return;
|
||||
}
|
||||
if (!mEnablePipKeepClearAlgorithm) {
|
||||
// early bail out if the keep clear areas feature is disabled
|
||||
return;
|
||||
@@ -186,6 +190,10 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
||||
// early bail out if the keep clear areas feature is disabled
|
||||
return;
|
||||
}
|
||||
if (mIsKeyguardShowingOrAnimating) {
|
||||
// early bail out if the change was caused by keyguard showing up
|
||||
return;
|
||||
}
|
||||
// only move if we're in PiP or transitioning into PiP
|
||||
if (!mPipTransitionState.shouldBlockResizeRequest()) {
|
||||
Rect destBounds = mPipKeepClearAlgorithm.adjust(mPipBoundsState,
|
||||
@@ -635,9 +643,11 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
||||
DisplayLayout pendingLayout =
|
||||
mDisplayController.getDisplayLayout(mPipBoundsState.getDisplayId());
|
||||
if (mIsInFixedRotation
|
||||
|| mIsKeyguardShowingOrAnimating
|
||||
|| pendingLayout.rotation()
|
||||
!= mPipBoundsState.getDisplayLayout().rotation()) {
|
||||
// bail out if there is a pending rotation or fixed rotation change
|
||||
// bail out if there is a pending rotation or fixed rotation change or
|
||||
// there's a keyguard present
|
||||
return;
|
||||
}
|
||||
int oldMaxMovementBound = mPipBoundsState.getMovementBounds().bottom;
|
||||
@@ -931,10 +941,10 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
||||
mPipBoundsState.getDisplayBounds().right,
|
||||
mPipBoundsState.getDisplayBounds().bottom);
|
||||
mPipBoundsState.addNamedUnrestrictedKeepClearArea(LAUNCHER_KEEP_CLEAR_AREA_TAG, rect);
|
||||
updatePipPositionForKeepClearAreas();
|
||||
} else {
|
||||
mPipBoundsState.removeNamedUnrestrictedKeepClearArea(LAUNCHER_KEEP_CLEAR_AREA_TAG);
|
||||
}
|
||||
updatePipPositionForKeepClearAreas();
|
||||
}
|
||||
|
||||
private void setLauncherAppIconSize(int iconSizePx) {
|
||||
|
||||
Reference in New Issue
Block a user