diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipManager.java b/packages/SystemUI/src/com/android/systemui/tv/pip/PipManager.java index 3d91d62c459ec..bed1e9e39ccec 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipManager.java +++ b/packages/SystemUI/src/com/android/systemui/tv/pip/PipManager.java @@ -84,9 +84,8 @@ public class PipManager { return; } if (DEBUG) Log.d(TAG, "PINNED_STACK:" + stackInfo); - mState = STATE_PIP_OVERLAY; mPipTaskId = stackInfo.taskIds[stackInfo.taskIds.length - 1]; - launchPipOverlayActivity(); + showPipOverlay(false); } }; private final Runnable mOnTaskStackChanged = new Runnable() { @@ -208,17 +207,17 @@ public class PipManager { * stack to the default PIP bound {@link com.android.internal.R.string * .config_defaultPictureInPictureBounds}. */ - public void showPipOverlay() { + public void showPipOverlay(boolean resizeStack) { if (DEBUG) Log.d(TAG, "showPipOverlay()"); - try { - mActivityManager.resizeStack(PINNED_STACK_ID, mPipBound, false); - } catch (Exception e) { - Log.e(TAG, "resizeStack failed", e); - closePip(); - return; - } mState = STATE_PIP_OVERLAY; - launchPipOverlayActivity(); + Intent intent = new Intent(mContext, PipOverlayActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + final ActivityOptions options = ActivityOptions.makeBasic(); + options.setLaunchStackId(PINNED_STACK_ID); + if (resizeStack) { + options.setLaunchBounds(mPipBound); + } + mContext.startActivity(intent, options.toBundle()); } /** @@ -228,13 +227,6 @@ public class PipManager { */ public void showPipMenu() { if (DEBUG) Log.d(TAG, "showPipMenu()"); - try { - mActivityManager.resizeStack(PINNED_STACK_ID, mMenuModePipBound, false); - } catch (Exception e) { - Log.e(TAG, "resizeStack failed", e); - closePip(); - return; - } mState = STATE_PIP_MENU; for (int i = mListeners.size() - 1; i >= 0; --i) { mListeners.get(i).onShowPipMenu(); @@ -243,6 +235,7 @@ public class PipManager { intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); final ActivityOptions options = ActivityOptions.makeBasic(); options.setLaunchStackId(PINNED_STACK_ID); + options.setLaunchBounds(mMenuModePipBound); mContext.startActivity(intent, options.toBundle()); } @@ -260,14 +253,6 @@ public class PipManager { mListeners.remove(listener); } - private void launchPipOverlayActivity() { - Intent intent = new Intent(mContext, PipOverlayActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - final ActivityOptions options = ActivityOptions.makeBasic(); - options.setLaunchStackId(PINNED_STACK_ID); - mContext.startActivity(intent, options.toBundle()); - } - private boolean hasPipTasks() { try { StackInfo stackInfo = mActivityManager.getStackInfo(PINNED_STACK_ID); diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipMenuActivity.java b/packages/SystemUI/src/com/android/systemui/tv/pip/PipMenuActivity.java index 124832143f62a..97c70ed8997ee 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipMenuActivity.java +++ b/packages/SystemUI/src/com/android/systemui/tv/pip/PipMenuActivity.java @@ -55,7 +55,7 @@ public class PipMenuActivity extends Activity implements PipManager.Listener { findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - mPipManager.showPipOverlay(); + mPipManager.showPipOverlay(true); finish(); } }); @@ -69,7 +69,7 @@ public class PipMenuActivity extends Activity implements PipManager.Listener { @Override public void onBackPressed() { - mPipManager.showPipOverlay(); + mPipManager.showPipOverlay(true); finish(); }