diff options
| author | 2019-04-05 17:50:52 +0000 | |
|---|---|---|
| committer | 2019-04-05 17:50:52 +0000 | |
| commit | ce3cd94e449a85b2547a823642cb692e74bc48dd (patch) | |
| tree | 3513b3e9f9a75a5d15059d2d165abbfa55b8193b | |
| parent | 1bd2e9b5d61c2d8ade67dd944d499b0933030f87 (diff) | |
| parent | dea7bf4c32bac1c643449507be93beafae6920a3 (diff) | |
Merge "Ensure getParentSurfaceControl and getSurfaceControl return valid or null SC" into qt-dev
4 files changed, 12 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/Dimmer.java b/services/core/java/com/android/server/wm/Dimmer.java index ee280846ff40..4bd8cab05700 100644 --- a/services/core/java/com/android/server/wm/Dimmer.java +++ b/services/core/java/com/android/server/wm/Dimmer.java @@ -130,6 +130,7 @@ class Dimmer { mSurfaceAnimator = new SurfaceAnimator(dimAnimatable, () -> { if (!mDimming) { dimAnimatable.getPendingTransaction().remove(mDimLayer); + mDimLayer = null; } }, mHost.mWmService); } diff --git a/services/core/java/com/android/server/wm/SurfaceAnimator.java b/services/core/java/com/android/server/wm/SurfaceAnimator.java index 67686a586a65..33d952e80a6b 100644 --- a/services/core/java/com/android/server/wm/SurfaceAnimator.java +++ b/services/core/java/com/android/server/wm/SurfaceAnimator.java @@ -410,11 +410,13 @@ class SurfaceAnimator { /** * @return The surface of the object to be animated. + * This SurfaceControl must be valid if non-null. */ @Nullable SurfaceControl getSurfaceControl(); /** * @return The parent of the surface object to be animated. + * This SurfaceControl must be valid if non-null. */ @Nullable SurfaceControl getParentSurfaceControl(); diff --git a/services/core/java/com/android/server/wm/TaskScreenshotAnimatable.java b/services/core/java/com/android/server/wm/TaskScreenshotAnimatable.java index 4379b7cdace6..f47e79441881 100644 --- a/services/core/java/com/android/server/wm/TaskScreenshotAnimatable.java +++ b/services/core/java/com/android/server/wm/TaskScreenshotAnimatable.java @@ -93,6 +93,7 @@ class TaskScreenshotAnimatable implements SurfaceAnimator.Animatable { @Override public void onAnimationLeashDestroyed(SurfaceControl.Transaction t) { t.remove(mSurfaceControl); + mSurfaceControl = null; } @Override diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java index 05d47609de4c..f3f6397a62eb 100644 --- a/services/core/java/com/android/server/wm/WindowContainer.java +++ b/services/core/java/com/android/server/wm/WindowContainer.java @@ -1003,7 +1003,10 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< return p.makeChildSurface(child) .setParent(mSurfaceControl); } - + /* + * @return The SurfaceControl parent for this containers SurfaceControl. + * The SurfaceControl must be valid if non-null. + */ @Override public SurfaceControl getParentSurfaceControl() { final WindowContainer parent = getParent(); @@ -1210,6 +1213,10 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< } } + /** + * @return The SurfaceControl for this container. + * The SurfaceControl must be valid if non-null. + */ @Override public SurfaceControl getSurfaceControl() { return mSurfaceControl; |