Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d7282448 authored by Salini Venate's avatar Salini Venate Committed by Karthik Ramakrishnan
Browse files

[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: default avatarSalini Venate <salini.venate@intel.com>
Signed-off-by: default avatarSwee Yee Fonn <swee.yee.fonn@intel.com>
Change-Id: Ic0dffb059f1a430ae5b08d91f1fa0d7b585c25ef
Test: android.server.cts.ActivityManagerPinnedStackTests
Test: #testPinnedStackInBoundsAfterRotation
parent 67b816de
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -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,10 +364,18 @@ public class PipBoundsHandler {
    private void updateDisplayInfoIfNeeded() {
        final boolean updateNeeded;
        if ((mDisplayInfo.rotation == ROTATION_0) || (mDisplayInfo.rotation == ROTATION_180)) {
            if (!mDefaultLandscape) {
                updateNeeded = (mDisplayInfo.logicalWidth > mDisplayInfo.logicalHeight);
            } else {
                updateNeeded = (mDisplayInfo.logicalWidth < mDisplayInfo.logicalHeight);
            }
        } else {
            if (!mDefaultLandscape) {
                updateNeeded = (mDisplayInfo.logicalWidth < mDisplayInfo.logicalHeight);
            } else {
                updateNeeded = (mDisplayInfo.logicalWidth > mDisplayInfo.logicalHeight);
            }
        }
        if (updateNeeded) {
            final int newLogicalHeight = mDisplayInfo.logicalWidth;
            mDisplayInfo.logicalWidth = mDisplayInfo.logicalHeight;