Call Surface.destroy when Display is removed.
Prevents leaked Surfaces.
Bug: 7272421.
Change-Id: I6c87eb11bb0bedcf8de451b04477c70c248f905d
diff --git a/services/java/com/android/server/display/OverlayDisplayWindow.java b/services/java/com/android/server/display/OverlayDisplayWindow.java
index d08f65f..a0edced 100644
--- a/services/java/com/android/server/display/OverlayDisplayWindow.java
+++ b/services/java/com/android/server/display/OverlayDisplayWindow.java
@@ -29,7 +29,6 @@
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
-import android.view.Surface;
import android.view.TextureView;
import android.view.View;
import android.view.WindowManager;
@@ -146,6 +145,7 @@
}
}
+ @Override
public void dump(PrintWriter pw) {
pw.println("mWindowVisible=" + mWindowVisible);
pw.println("mWindowX=" + mWindowX);
@@ -291,8 +291,7 @@
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture,
int width, int height) {
- mListener.onWindowCreated(new Surface(surfaceTexture),
- mDefaultDisplayInfo.refreshRate);
+ mListener.onWindowCreated(surfaceTexture, mDefaultDisplayInfo.refreshRate);
}
@Override
@@ -361,7 +360,7 @@
* Watches for significant changes in the overlay display window lifecycle.
*/
public interface Listener {
- public void onWindowCreated(Surface surface, float refreshRate);
+ public void onWindowCreated(SurfaceTexture surfaceTexture, float refreshRate);
public void onWindowDestroyed();
}
}
\ No newline at end of file