summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/WindowStateAnimator.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
index 91755ac879b0..491a2ae977ee 100644
--- a/services/core/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
@@ -475,7 +475,9 @@ class WindowStateAnimator {
if (!mLastHidden) {
//dump();
mLastHidden = true;
- mSurfaceController.hideInTransaction(reason);
+ if (mSurfaceController != null) {
+ mSurfaceController.hideInTransaction(reason);
+ }
}
}
@@ -537,7 +539,9 @@ class WindowStateAnimator {
return;
}
if (SHOW_TRANSACTIONS) WindowManagerService.logSurface(mWin, "SET FREEZE LAYER", null);
- mSurfaceController.setLayer(mAnimLayer + 1);
+ if (mSurfaceController != null) {
+ mSurfaceController.setLayer(mAnimLayer + 1);
+ }
mDestroyPreservedSurfaceUponRedraw = true;
mSurfaceDestroyDeferred = true;
destroySurfaceLocked();
@@ -1327,6 +1331,10 @@ class WindowStateAnimator {
}
void setTransparentRegionHintLocked(final Region region) {
+ if (mSurfaceController == null) {
+ Slog.w(TAG, "setTransparentRegionHint: null mSurface after mHasSurface true");
+ return;
+ }
mSurfaceController.setTransparentRegionHint(region);
}
@@ -1373,10 +1381,16 @@ class WindowStateAnimator {
}
void setOpaqueLocked(boolean isOpaque) {
+ if (mSurfaceController == null) {
+ return;
+ }
mSurfaceController.setOpaque(isOpaque);
}
void setSecureLocked(boolean isSecure) {
+ if (mSurfaceController == null) {
+ return;
+ }
mSurfaceController.setSecure(isSecure);
}