Merge "Update virtual display size before turning it on." into rvc-dev am: 16868fbef0
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11931082 Change-Id: Idc8047b94dfdd52bd719a2a4b711b2d654fd1a56
This commit is contained in:
@@ -33,7 +33,10 @@ import android.hardware.display.VirtualDisplay;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
import android.util.DisplayMetrics;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.Display;
|
||||||
|
import android.view.DisplayInfo;
|
||||||
import android.view.IWindow;
|
import android.view.IWindow;
|
||||||
import android.view.IWindowManager;
|
import android.view.IWindowManager;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
@@ -407,6 +410,9 @@ public class ActivityView extends ViewGroup implements android.window.TaskEmbedd
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class SurfaceCallback implements SurfaceHolder.Callback {
|
private class SurfaceCallback implements SurfaceHolder.Callback {
|
||||||
|
private final DisplayInfo mTempDisplayInfo = new DisplayInfo();
|
||||||
|
private final DisplayMetrics mTempMetrics = new DisplayMetrics();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void surfaceCreated(SurfaceHolder surfaceHolder) {
|
public void surfaceCreated(SurfaceHolder surfaceHolder) {
|
||||||
if (!mTaskEmbedder.isInitialized()) {
|
if (!mTaskEmbedder.isInitialized()) {
|
||||||
@@ -415,14 +421,22 @@ public class ActivityView extends ViewGroup implements android.window.TaskEmbedd
|
|||||||
mTmpTransaction.reparent(mTaskEmbedder.getSurfaceControl(),
|
mTmpTransaction.reparent(mTaskEmbedder.getSurfaceControl(),
|
||||||
mSurfaceView.getSurfaceControl()).apply();
|
mSurfaceView.getSurfaceControl()).apply();
|
||||||
}
|
}
|
||||||
|
mTaskEmbedder.resizeTask(getWidth(), getHeight());
|
||||||
mTaskEmbedder.start();
|
mTaskEmbedder.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int width, int height) {
|
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.resizeTask(width, height);
|
||||||
mTaskEmbedder.notifyBoundsChanged();
|
mTaskEmbedder.notifyBoundsChanged();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
|
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
|
||||||
|
|||||||
Reference in New Issue
Block a user