[DO NOT MERGE] Handle landscape and portrait display for PIP rotation
Both landscape or portrait display screen scenarios should be handled when logicalWidth and LogicalHeight are updated during the rotation of a pip activity Bug: 185196174 Signed-off-by: Salini Venate <salini.venate@intel.com> Signed-off-by: Swee Yee Fonn <swee.yee.fonn@intel.com> Change-Id: Ic0dffb059f1a430ae5b08d91f1fa0d7b585c25ef Test: android.server.cts.ActivityManagerPinnedStackTests Test: #testPinnedStackInBoundsAfterRotation
This commit is contained in:
committed by
Karthik Ramakrishnan
parent
67b816def6
commit
d7282448a6
@@ -80,6 +80,7 @@ public class PipBoundsHandler {
|
||||
private int mImeHeight;
|
||||
private boolean mIsShelfShowing;
|
||||
private int mShelfHeight;
|
||||
private boolean mDefaultLandscape;
|
||||
|
||||
private final DisplayController.OnDisplaysChangedListener mDisplaysChangedListener =
|
||||
new DisplayController.OnDisplaysChangedListener() {
|
||||
@@ -87,6 +88,7 @@ public class PipBoundsHandler {
|
||||
public void onDisplayAdded(int displayId) {
|
||||
if (displayId == mContext.getDisplayId()) {
|
||||
mDisplayLayout.set(mDisplayController.getDisplayLayout(displayId));
|
||||
mDefaultLandscape = (mDisplayInfo.logicalWidth > mDisplayInfo.logicalHeight);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -362,9 +364,17 @@ public class PipBoundsHandler {
|
||||
private void updateDisplayInfoIfNeeded() {
|
||||
final boolean updateNeeded;
|
||||
if ((mDisplayInfo.rotation == ROTATION_0) || (mDisplayInfo.rotation == ROTATION_180)) {
|
||||
updateNeeded = (mDisplayInfo.logicalWidth > mDisplayInfo.logicalHeight);
|
||||
if (!mDefaultLandscape) {
|
||||
updateNeeded = (mDisplayInfo.logicalWidth > mDisplayInfo.logicalHeight);
|
||||
} else {
|
||||
updateNeeded = (mDisplayInfo.logicalWidth < mDisplayInfo.logicalHeight);
|
||||
}
|
||||
} else {
|
||||
updateNeeded = (mDisplayInfo.logicalWidth < mDisplayInfo.logicalHeight);
|
||||
if (!mDefaultLandscape) {
|
||||
updateNeeded = (mDisplayInfo.logicalWidth < mDisplayInfo.logicalHeight);
|
||||
} else {
|
||||
updateNeeded = (mDisplayInfo.logicalWidth > mDisplayInfo.logicalHeight);
|
||||
}
|
||||
}
|
||||
if (updateNeeded) {
|
||||
final int newLogicalHeight = mDisplayInfo.logicalWidth;
|
||||
|
||||
Reference in New Issue
Block a user