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

Commit 89983c49 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 am: e621d1ac

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

Change-Id: If39eac860c4d461660333aa55df3539218fa2564
parents ca5a10cb e621d1ac
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) {