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

Commit e621d1ac authored by Issei Suzuki's avatar Issei Suzuki Committed by Automerger Merge Worker
Browse files

Merge "Update virtual display size before turning it on." into rvc-dev am:...

Merge "Update virtual display size before turning it on." into rvc-dev am: 16868fbe am: 34e1bd04 am: cec5f1e9

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11931082

Change-Id: I94272091241d7cb6c356c01a3645a27e0726cfc5
parents 74263228 cec5f1e9
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -33,7 +33,10 @@ import android.hardware.display.VirtualDisplay;
import android.os.Bundle;
import android.os.UserHandle;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.DisplayInfo;
import android.view.IWindow;
import android.view.IWindowManager;
import android.view.KeyEvent;
@@ -407,6 +410,9 @@ public class ActivityView extends ViewGroup implements android.window.TaskEmbedd
    }

    private class SurfaceCallback implements SurfaceHolder.Callback {
        private final DisplayInfo mTempDisplayInfo = new DisplayInfo();
        private final DisplayMetrics mTempMetrics = new DisplayMetrics();

        @Override
        public void surfaceCreated(SurfaceHolder surfaceHolder) {
            if (!mTaskEmbedder.isInitialized()) {
@@ -415,14 +421,22 @@ public class ActivityView extends ViewGroup implements android.window.TaskEmbedd
                mTmpTransaction.reparent(mTaskEmbedder.getSurfaceControl(),
                        mSurfaceView.getSurfaceControl()).apply();
            }
            mTaskEmbedder.resizeTask(getWidth(), getHeight());
            mTaskEmbedder.start();
        }

        @Override
        public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int width, int height) {
            final Display display = getVirtualDisplay().getDisplay();
            if (!display.getDisplayInfo(mTempDisplayInfo)) {
                return;
            }
            mTempDisplayInfo.getAppMetrics(mTempMetrics);
            if (width != mTempMetrics.widthPixels || height != mTempMetrics.heightPixels) {
                mTaskEmbedder.resizeTask(width, height);
                mTaskEmbedder.notifyBoundsChanged();
            }
        }

        @Override
        public void surfaceDestroyed(SurfaceHolder surfaceHolder) {