Fixing regression when going to fullscreen from PiP.

- Just ensure that we don't resize the stack if it's already not
  visible.

Bug: 35338156
Test: Enter/exit pip on TV
Change-Id: I0bd234dd18ecd3d7d4cb37edad9f1fb3053d96bb
This commit is contained in:
Winson Chung
2017-02-24 16:47:37 -08:00
parent f73da9c7ed
commit f04c1dd047

View File

@@ -337,12 +337,11 @@ public class PipManager implements BasePipManager {
* Moves the PIPed activity to the fullscreen and closes PIP system UI.
*/
void movePipToFullscreen() {
mState = STATE_NO_PIP;
mPipTaskId = TASK_ID_NO_PIP;
for (int i = mListeners.size() - 1; i >= 0; --i) {
mListeners.get(i).onMoveToFullscreen();
}
resizePinnedStack(mState);
resizePinnedStack(STATE_NO_PIP);
updatePipVisibility(false);
}
@@ -388,6 +387,7 @@ public class PipManager implements BasePipManager {
if (DEBUG) Log.d(TAG, "resizePinnedStack() state=" + state);
boolean wasRecentsShown =
(mState == STATE_PIP_RECENTS || mState == STATE_PIP_RECENTS_FOCUSED);
boolean wasStateNoPip = (mState == STATE_NO_PIP);
mState = state;
for (int i = mListeners.size() - 1; i >= 0; --i) {
mListeners.get(i).onPipResizeAboutToStart();
@@ -401,6 +401,11 @@ public class PipManager implements BasePipManager {
switch (mState) {
case STATE_NO_PIP:
mCurrentPipBounds = null;
// If the state was already STATE_NO_PIP, then do not resize the stack below as it
// will not exist
if (wasStateNoPip) {
return;
}
break;
case STATE_PIP_MENU:
mCurrentPipBounds = mMenuModePipBounds;
@@ -418,18 +423,16 @@ public class PipManager implements BasePipManager {
mCurrentPipBounds = mPipBounds;
break;
}
if (mCurrentPipBounds != null) {
try {
int animationDurationMs = -1;
if (wasRecentsShown
&& (mState == STATE_PIP_RECENTS || mState == STATE_PIP_RECENTS_FOCUSED)) {
animationDurationMs = mRecentsFocusChangedAnimationDurationMs;
}
mActivityManager.resizeStack(PINNED_STACK_ID, mCurrentPipBounds,
true, true, true, animationDurationMs);
} catch (RemoteException e) {
Log.e(TAG, "resizeStack failed", e);
try {
int animationDurationMs = -1;
if (wasRecentsShown
&& (mState == STATE_PIP_RECENTS || mState == STATE_PIP_RECENTS_FOCUSED)) {
animationDurationMs = mRecentsFocusChangedAnimationDurationMs;
}
mActivityManager.resizeStack(PINNED_STACK_ID, mCurrentPipBounds,
true, true, true, animationDurationMs);
} catch (RemoteException e) {
Log.e(TAG, "resizeStack failed", e);
}
}