Merge "Fixing regression in PiP TV." into oc-dev
diff --git a/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java b/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java
index dd8cd2b..ad290c3 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java
@@ -113,6 +113,7 @@
private IWindowManager mWindowManager;
private MediaSessionManager mMediaSessionManager;
private int mState = STATE_NO_PIP;
+ private int mResumeResizePinnedStackRunnable = STATE_NO_PIP;
private final Handler mHandler = new Handler();
private List<Listener> mListeners = new ArrayList<>();
private List<MediaListener> mMediaListeners = new ArrayList<>();
@@ -133,7 +134,7 @@
private final Runnable mResizePinnedStackRunnable = new Runnable() {
@Override
public void run() {
- resizePinnedStack(mState);
+ resizePinnedStack(mResumeResizePinnedStackRunnable);
}
};
private final Runnable mClosePipRunnable = new Runnable() {
@@ -364,16 +365,17 @@
void resizePinnedStack(int state) {
if (DEBUG) Log.d(TAG, "resizePinnedStack() state=" + state);
boolean wasStateNoPip = (mState == STATE_NO_PIP);
- mState = state;
+ mResumeResizePinnedStackRunnable = state;
for (int i = mListeners.size() - 1; i >= 0; --i) {
mListeners.get(i).onPipResizeAboutToStart();
}
if (mSuspendPipResizingReason != 0) {
- if (DEBUG) Log.d(TAG,
- "resizePinnedStack() deferring mSuspendPipResizingReason=" +
- mSuspendPipResizingReason);
+ if (DEBUG) Log.d(TAG, "resizePinnedStack() deferring"
+ + " mSuspendPipResizingReason=" + mSuspendPipResizingReason
+ + " mResumeResizePinnedStackRunnable=" + mResumeResizePinnedStackRunnable);
return;
}
+ mState = state;
switch (mState) {
case STATE_NO_PIP:
mCurrentPipBounds = null;
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index c65ca79..36cd34d1 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -2506,9 +2506,8 @@
fullscreenStack.getStackVisibilityLocked(null) == STACK_VISIBLE;
for (int i = 0; i < tasks.size(); i++) {
// Insert the task either at the top of the fullscreen stack if it is hidden,
- // or just under the top task if it is currently visible
- final int insertPosition = isFullscreenStackVisible
- ? Math.max(0, fullscreenStack.getChildCount() - 1)
+ // or to the bottom if it is currently visible
+ final int insertPosition = isFullscreenStackVisible ? 0
: fullscreenStack.getChildCount();
final TaskRecord task = tasks.get(i);
// Defer resume until we remove all the tasks