diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/Dimmer.java | 8 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/DimmerTests.java | 5 |
2 files changed, 10 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/Dimmer.java b/services/core/java/com/android/server/wm/Dimmer.java index a7a793fa8d34..767327a278bd 100644 --- a/services/core/java/com/android/server/wm/Dimmer.java +++ b/services/core/java/com/android/server/wm/Dimmer.java @@ -102,7 +102,9 @@ class Dimmer { } void removeSurface() { - getPendingTransaction().remove(mDimLayer); + if (mDimLayer != null && mDimLayer.isValid()) { + getPendingTransaction().remove(mDimLayer); + } mDimLayer = null; } } @@ -305,7 +307,9 @@ class Dimmer { if (!mDimState.mDimming) { if (!mDimState.mAnimateExit) { - t.remove(mDimState.mDimLayer); + if (mDimState.mDimLayer.isValid()) { + t.remove(mDimState.mDimLayer); + } } else { startDimExit(mLastRequestedDimContainer, mDimState.mSurfaceAnimator, t); } diff --git a/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java b/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java index 5b32fe68feae..292a05bd966a 100644 --- a/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java @@ -27,6 +27,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.Mockito.when; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; @@ -78,7 +79,9 @@ public class DimmerTests extends WindowTestsBase { @Override public SurfaceControl build() { - return mock(SurfaceControl.class); + SurfaceControl mSc = mock(SurfaceControl.class); + when(mSc.isValid()).thenReturn(true); + return mSc; } } |