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

Commit b2fe67d6 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

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

Change-Id: I1d475b14400f76bc6bdf71c11c2e26f8a51f7b4d
parents 1a850eaa 34e1bd04
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) {