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

This commit is contained in:
Issei Suzuki
2020-06-23 11:46:16 +00:00
committed by Android (Google) Code Review

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