Merge "Update virtual display size before turning it on." into rvc-dev am: 16868fbef0 am: 34e1bd049d am: cec5f1e901

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

Change-Id: I94272091241d7cb6c356c01a3645a27e0726cfc5
This commit is contained in:
Issei Suzuki
2020-06-23 12:29:43 +00:00
committed by Automerger Merge Worker

View File

@@ -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,13 +421,21 @@ 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) {
mTaskEmbedder.resizeTask(width, height);
mTaskEmbedder.notifyBoundsChanged();
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