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

Commit 60965d22 authored by Youngsang Cho's avatar Youngsang Cho Committed by Android (Google) Code Review
Browse files

Merge "Use ActivityOptions.setLaunchBounds to resize PIP"

parents 5fbc632f efbbd496
Loading
Loading
Loading
Loading
+11 −26
Original line number Original line Diff line number Diff line
@@ -84,9 +84,8 @@ public class PipManager {
                return;
                return;
            }
            }
            if (DEBUG) Log.d(TAG, "PINNED_STACK:" + stackInfo);
            if (DEBUG) Log.d(TAG, "PINNED_STACK:" + stackInfo);
            mState = STATE_PIP_OVERLAY;
            mPipTaskId = stackInfo.taskIds[stackInfo.taskIds.length - 1];
            mPipTaskId = stackInfo.taskIds[stackInfo.taskIds.length - 1];
            launchPipOverlayActivity();
            showPipOverlay(false);
        }
        }
    };
    };
    private final Runnable mOnTaskStackChanged = new Runnable() {
    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
     * stack to the default PIP bound {@link com.android.internal.R.string
     * .config_defaultPictureInPictureBounds}.
     * .config_defaultPictureInPictureBounds}.
     */
     */
    public void showPipOverlay() {
    public void showPipOverlay(boolean resizeStack) {
        if (DEBUG) Log.d(TAG, "showPipOverlay()");
        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;
        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() {
    public void showPipMenu() {
        if (DEBUG) Log.d(TAG, "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;
        mState = STATE_PIP_MENU;
        for (int i = mListeners.size() - 1; i >= 0; --i) {
        for (int i = mListeners.size() - 1; i >= 0; --i) {
            mListeners.get(i).onShowPipMenu();
            mListeners.get(i).onShowPipMenu();
@@ -243,6 +235,7 @@ public class PipManager {
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        final ActivityOptions options = ActivityOptions.makeBasic();
        final ActivityOptions options = ActivityOptions.makeBasic();
        options.setLaunchStackId(PINNED_STACK_ID);
        options.setLaunchStackId(PINNED_STACK_ID);
        options.setLaunchBounds(mMenuModePipBound);
        mContext.startActivity(intent, options.toBundle());
        mContext.startActivity(intent, options.toBundle());
    }
    }


@@ -260,14 +253,6 @@ public class PipManager {
        mListeners.remove(listener);
        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() {
    private boolean hasPipTasks() {
        try {
        try {
            StackInfo stackInfo = mActivityManager.getStackInfo(PINNED_STACK_ID);
            StackInfo stackInfo = mActivityManager.getStackInfo(PINNED_STACK_ID);
+2 −2
Original line number Original line Diff line number Diff line
@@ -55,7 +55,7 @@ public class PipMenuActivity extends Activity implements PipManager.Listener {
        findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() {
        findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() {
            @Override
            @Override
            public void onClick(View v) {
            public void onClick(View v) {
                mPipManager.showPipOverlay();
                mPipManager.showPipOverlay(true);
                finish();
                finish();
            }
            }
        });
        });
@@ -69,7 +69,7 @@ public class PipMenuActivity extends Activity implements PipManager.Listener {


    @Override
    @Override
    public void onBackPressed() {
    public void onBackPressed() {
        mPipManager.showPipOverlay();
        mPipManager.showPipOverlay(true);
        finish();
        finish();
    }
    }