summaryrefslogtreecommitdiff
path: root/core/java/android/view/SurfaceControlViewHost.java
diff options
context:
space:
mode:
authorRobert Carr <racarr@google.com>2020-03-17 11:31:55 -0700
committerRobert Carr <racarr@google.com>2020-03-17 14:12:53 -0700
commitd9c9c0cc75cbb71492af72a80772de9b900d628a (patch)
treeb20d9f349fc7404966f9c855382ffb14cbbc6935 /core/java/android/view/SurfaceControlViewHost.java
parent59624b219f1961114526b91ae253966f26b10d89 (diff)
SurfacePackage: Add release method
Oversight, the SurfacePackage holds a reference to the SurfaceControl which is protected by a close-guard. We need a way to close it explicitly. Going to follow up with a patch to have SurfaceView manage the lifetime when the SurfacePackage is consumed, but want to make sure this explicit release gets in ASAP. Bug: 149591513 Test: Existing tests pass Change-Id: I7276a2440c38cc6d859b79b4c3ee57bc122ce2a6
Diffstat (limited to 'core/java/android/view/SurfaceControlViewHost.java')
-rw-r--r--core/java/android/view/SurfaceControlViewHost.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/core/java/android/view/SurfaceControlViewHost.java b/core/java/android/view/SurfaceControlViewHost.java
index 41a384797521..b587fbe24767 100644
--- a/core/java/android/view/SurfaceControlViewHost.java
+++ b/core/java/android/view/SurfaceControlViewHost.java
@@ -52,7 +52,7 @@ public class SurfaceControlViewHost {
* a SurfaceView by calling {@link SurfaceView#setChildSurfacePackage}.
*/
public static final class SurfacePackage implements Parcelable {
- private final SurfaceControl mSurfaceControl;
+ private SurfaceControl mSurfaceControl;
private final IAccessibilityEmbeddedConnection mAccessibilityEmbeddedConnection;
SurfacePackage(SurfaceControl sc, IAccessibilityEmbeddedConnection connection) {
@@ -97,6 +97,16 @@ public class SurfaceControlViewHost {
out.writeStrongBinder(mAccessibilityEmbeddedConnection.asBinder());
}
+ /**
+ * Release the SurfaceControl associated with the SurfacePackage.
+ */
+ public void release() {
+ if (mSurfaceControl != null) {
+ mSurfaceControl.release();
+ }
+ mSurfaceControl = null;
+ }
+
public static final @NonNull Creator<SurfacePackage> CREATOR
= new Creator<SurfacePackage>() {
public SurfacePackage createFromParcel(Parcel in) {