summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/SurfaceView.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index c098fae11b8c..809a9cfde587 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -1620,9 +1620,14 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall
}
private void updateRelativeZ(Transaction t) {
- SurfaceControl viewRoot = getViewRootImpl().getSurfaceControl();
- t.setRelativeLayer(mBackgroundControl, viewRoot, Integer.MIN_VALUE);
- t.setRelativeLayer(mSurfaceControl, viewRoot, mSubLayer);
+ final ViewRootImpl viewRoot = getViewRootImpl();
+ if (viewRoot == null) {
+ // We were just detached.
+ return;
+ }
+ final SurfaceControl viewRootControl = viewRoot.getSurfaceControl();
+ t.setRelativeLayer(mBackgroundControl, viewRootControl, Integer.MIN_VALUE);
+ t.setRelativeLayer(mSurfaceControl, viewRootControl, mSubLayer);
}
/**