fix [2074427] SurfaceView doesn't disappear on GONE
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index ea879ed9..1426aef 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -124,6 +124,8 @@
};
boolean mRequestedVisible = false;
+ boolean mWindowVisibility = false;
+ boolean mViewVisibility = false;
int mRequestedWidth = -1;
int mRequestedHeight = -1;
int mRequestedFormat = PixelFormat.OPAQUE;
@@ -176,12 +178,22 @@
mSession = getWindowSession();
mLayout.token = getWindowToken();
mLayout.setTitle("SurfaceView");
+ mViewVisibility = getVisibility() == VISIBLE;
}
@Override
protected void onWindowVisibilityChanged(int visibility) {
super.onWindowVisibilityChanged(visibility);
- mRequestedVisible = visibility == VISIBLE;
+ mWindowVisibility = visibility == VISIBLE;
+ mRequestedVisible = mWindowVisibility && mViewVisibility;
+ updateWindow(false);
+ }
+
+ @Override
+ public void setVisibility(int visibility) {
+ super.setVisibility(visibility);
+ mViewVisibility = visibility == VISIBLE;
+ mRequestedVisible = mWindowVisibility && mViewVisibility;
updateWindow(false);
}