summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/Dimmer.java1
-rw-r--r--services/core/java/com/android/server/wm/SurfaceAnimator.java2
-rw-r--r--services/core/java/com/android/server/wm/TaskScreenshotAnimatable.java1
-rw-r--r--services/core/java/com/android/server/wm/WindowContainer.java9
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;