diff --git a/api/current.txt b/api/current.txt index da9fd09cf1526..007e67d678724 100644 --- a/api/current.txt +++ b/api/current.txt @@ -53616,6 +53616,7 @@ package android.view { public static final class SurfaceControlViewHost.SurfacePackage implements android.os.Parcelable { method public int describeContents(); + method public void release(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } diff --git a/core/java/android/view/SurfaceControlViewHost.java b/core/java/android/view/SurfaceControlViewHost.java index 41a3847975219..b587fbe247672 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 CREATOR = new Creator() { public SurfacePackage createFromParcel(Parcel in) {