Ensure we account for insets in minimized state.
- When dragging slightly offscreen to minimize the PIP,
ensure that the bounds take the insets into account so
that the user can still interact with the PIP.
Test: Enter PIP in landscape, try to minimize it.
Change-Id: I093a37ba600722d44e50cc68dac77365a2ba062e
diff --git a/services/core/java/com/android/server/wm/PinnedStackController.java b/services/core/java/com/android/server/wm/PinnedStackController.java
index 34633c2..bfb4269 100644
--- a/services/core/java/com/android/server/wm/PinnedStackController.java
+++ b/services/core/java/com/android/server/wm/PinnedStackController.java
@@ -82,6 +82,7 @@
// Used to calculate stack bounds across rotations
private final DisplayInfo mDisplayInfo = new DisplayInfo();
+ private final Rect mStableInsets = new Rect();
// The size and position information that describes where the pinned stack will go by default.
private int mDefaultStackGravity;
@@ -250,10 +251,12 @@
}
/**
- * @return the repositioned PIP bounds given it's pre-change bounds, and the new display info.
+ * @return the repositioned PIP bounds given it's pre-change bounds, and the new display
+ * content.
*/
- Rect onDisplayChanged(Rect preChangeStackBounds, DisplayInfo displayInfo) {
+ Rect onDisplayChanged(Rect preChangeStackBounds, DisplayContent displayContent) {
final Rect postChangeStackBounds = new Rect(preChangeStackBounds);
+ final DisplayInfo displayInfo = displayContent.getDisplayInfo();
if (!mDisplayInfo.equals(displayInfo)) {
// Calculate the snap fraction of the current stack along the old movement bounds, and
// then update the stack bounds to the same fraction along the rotated movement bounds.
@@ -269,8 +272,9 @@
if (mIsMinimized) {
final Point displaySize = new Point(mDisplayInfo.logicalWidth,
mDisplayInfo.logicalHeight);
+ mService.getStableInsetsLocked(displayContent.getDisplayId(), mStableInsets);
mSnapAlgorithm.applyMinimizedOffset(postChangeStackBounds, postChangeMovementBounds,
- displaySize);
+ displaySize, mStableInsets);
}
}
return postChangeStackBounds;