Merge "Couple tweaks for surface control registry" into udc-dev am: 2ba4c12b83
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21482745 Change-Id: I85c92beec744ed992d37ab47eedeba3733c8ab97 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -786,7 +786,11 @@ public final class SurfaceControl implements Parcelable {
|
|||||||
mReleaseStack = null;
|
mReleaseStack = null;
|
||||||
}
|
}
|
||||||
setUnreleasedWarningCallSite(callsite);
|
setUnreleasedWarningCallSite(callsite);
|
||||||
addToRegistry();
|
if (nativeObject != 0) {
|
||||||
|
// Only add valid surface controls to the registry. This is called at the end of this
|
||||||
|
// method since its information is dumped if the process threshold is reached.
|
||||||
|
addToRegistry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -893,6 +897,10 @@ public final class SurfaceControl implements Parcelable {
|
|||||||
"Only buffer layers can set a valid buffer size.");
|
"Only buffer layers can set a valid buffer size.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mName == null) {
|
||||||
|
Log.w(TAG, "Missing name for SurfaceControl", new Throwable());
|
||||||
|
}
|
||||||
|
|
||||||
if ((mFlags & FX_SURFACE_MASK) == FX_SURFACE_NORMAL) {
|
if ((mFlags & FX_SURFACE_MASK) == FX_SURFACE_NORMAL) {
|
||||||
setBLASTLayer();
|
setBLASTLayer();
|
||||||
}
|
}
|
||||||
@@ -1254,6 +1262,9 @@ public final class SurfaceControl implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Note: Most callers should use {@link SurfaceControl.Builder} or one of the other constructors
|
||||||
|
* to build an instance of a SurfaceControl. This constructor is mainly used for
|
||||||
|
* unparceling and passing into an AIDL call as an out parameter.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public SurfaceControl() {
|
public SurfaceControl() {
|
||||||
@@ -2495,6 +2506,7 @@ public final class SurfaceControl implements Parcelable {
|
|||||||
public static SurfaceControl mirrorSurface(SurfaceControl mirrorOf) {
|
public static SurfaceControl mirrorSurface(SurfaceControl mirrorOf) {
|
||||||
long nativeObj = nativeMirrorSurface(mirrorOf.mNativeObject);
|
long nativeObj = nativeMirrorSurface(mirrorOf.mNativeObject);
|
||||||
SurfaceControl sc = new SurfaceControl();
|
SurfaceControl sc = new SurfaceControl();
|
||||||
|
sc.mName = mirrorOf.mName + " (mirror)";
|
||||||
sc.assignNativeObject(nativeObj, "mirrorSurface");
|
sc.assignNativeObject(nativeObj, "mirrorSurface");
|
||||||
return sc;
|
return sc;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -171,8 +171,7 @@ public class SurfaceControlViewHost {
|
|||||||
public SurfacePackage(@NonNull SurfacePackage other) {
|
public SurfacePackage(@NonNull SurfacePackage other) {
|
||||||
SurfaceControl otherSurfaceControl = other.mSurfaceControl;
|
SurfaceControl otherSurfaceControl = other.mSurfaceControl;
|
||||||
if (otherSurfaceControl != null && otherSurfaceControl.isValid()) {
|
if (otherSurfaceControl != null && otherSurfaceControl.isValid()) {
|
||||||
mSurfaceControl = new SurfaceControl();
|
mSurfaceControl = new SurfaceControl(otherSurfaceControl, "SurfacePackage");
|
||||||
mSurfaceControl.copyFrom(otherSurfaceControl, "SurfacePackage");
|
|
||||||
}
|
}
|
||||||
mAccessibilityEmbeddedConnection = other.mAccessibilityEmbeddedConnection;
|
mAccessibilityEmbeddedConnection = other.mAccessibilityEmbeddedConnection;
|
||||||
mInputToken = other.mInputToken;
|
mInputToken = other.mInputToken;
|
||||||
|
|||||||
@@ -103,6 +103,18 @@ public class SurfaceControlRegistryTests {
|
|||||||
assertEquals(hash0, SurfaceControlRegistry.getProcessInstance().hashCode());
|
assertEquals(hash0, SurfaceControlRegistry.getProcessInstance().hashCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInvalidSurfaceControlNotAddedToRegistry() {
|
||||||
|
int hash0 = SurfaceControlRegistry.getProcessInstance().hashCode();
|
||||||
|
// Verify no changes to the registry when dealing with invalid surface controls
|
||||||
|
SurfaceControl sc0 = new SurfaceControl();
|
||||||
|
SurfaceControl sc1 = new SurfaceControl(sc0, "test");
|
||||||
|
assertEquals(hash0, SurfaceControlRegistry.getProcessInstance().hashCode());
|
||||||
|
sc0.release();
|
||||||
|
sc1.release();
|
||||||
|
assertEquals(hash0, SurfaceControlRegistry.getProcessInstance().hashCode());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testThresholds() {
|
public void testThresholds() {
|
||||||
SurfaceControlRegistry registry = SurfaceControlRegistry.getProcessInstance();
|
SurfaceControlRegistry registry = SurfaceControlRegistry.getProcessInstance();
|
||||||
|
|||||||
@@ -2249,8 +2249,10 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
|
|||||||
while (leashReference.getParent() != ancestor) {
|
while (leashReference.getParent() != ancestor) {
|
||||||
leashReference = leashReference.getParent();
|
leashReference = leashReference.getParent();
|
||||||
}
|
}
|
||||||
|
|
||||||
final SurfaceControl rootLeash = leashReference.makeAnimationLeash().setName(
|
final SurfaceControl rootLeash = leashReference.makeAnimationLeash().setName(
|
||||||
"Transition Root: " + leashReference.getName()).build();
|
"Transition Root: " + leashReference.getName()).build();
|
||||||
|
rootLeash.setUnreleasedWarningCallSite("Transition.calculateTransitionRoots");
|
||||||
startT.setLayer(rootLeash, leashReference.getLastLayer());
|
startT.setLayer(rootLeash, leashReference.getLastLayer());
|
||||||
outInfo.addRootLeash(endDisplayId, rootLeash,
|
outInfo.addRootLeash(endDisplayId, rootLeash,
|
||||||
ancestor.getBounds().left, ancestor.getBounds().top);
|
ancestor.getBounds().left, ancestor.getBounds().top);
|
||||||
|
|||||||
Reference in New Issue
Block a user