Loading packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +5 −0 Original line number Diff line number Diff line Loading @@ -1250,6 +1250,11 @@ public class ScreenDecorations implements if (mOverlays == null) { return; } if (mPendingConfigChange) { // Let RestartingPreDrawListener's onPreDraw call updateConfiguration // -> updateOverlayProviderViews to redraw with display change synchronously. return; } ++mProviderRefreshToken; for (final OverlayWindow overlay: mOverlays) { if (overlay == null) { Loading packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doCallRealMethod; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; Loading Loading @@ -1181,6 +1182,24 @@ public class ScreenDecorationsTest extends SysuiTestCase { assertThat(mScreenDecorations.mIsRegistered, is(false)); } @Test public void testUpdateOverlayProviderViews_PendingConfigChange() { final DecorProvider cutout = new CutoutDecorProviderImpl(BOUNDS_POSITION_TOP); spyOn(cutout); doNothing().when(cutout).onReloadResAndMeasure(any(), anyInt(), anyInt(), anyInt(), any()); mMockCutoutList.add(cutout); mScreenDecorations.start(); doCallRealMethod().when(mScreenDecorations).updateOverlayProviderViews(any()); mScreenDecorations.mPendingConfigChange = true; mScreenDecorations.updateOverlayProviderViews(null /* filterIds */); verify(cutout, never()).onReloadResAndMeasure(any(), anyInt(), anyInt(), anyInt(), any()); mScreenDecorations.mPendingConfigChange = false; mScreenDecorations.updateOverlayProviderViews(null /* filterIds */); verify(cutout).onReloadResAndMeasure(any(), anyInt(), anyInt(), anyInt(), any()); } @Test public void testSupportHwcLayer_SwitchFrom_NotSupport() { setupResources(0 /* radius */, 10 /* radiusTop */, 20 /* radiusBottom */, Loading Loading
packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +5 −0 Original line number Diff line number Diff line Loading @@ -1250,6 +1250,11 @@ public class ScreenDecorations implements if (mOverlays == null) { return; } if (mPendingConfigChange) { // Let RestartingPreDrawListener's onPreDraw call updateConfiguration // -> updateOverlayProviderViews to redraw with display change synchronously. return; } ++mProviderRefreshToken; for (final OverlayWindow overlay: mOverlays) { if (overlay == null) { Loading
packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doCallRealMethod; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; Loading Loading @@ -1181,6 +1182,24 @@ public class ScreenDecorationsTest extends SysuiTestCase { assertThat(mScreenDecorations.mIsRegistered, is(false)); } @Test public void testUpdateOverlayProviderViews_PendingConfigChange() { final DecorProvider cutout = new CutoutDecorProviderImpl(BOUNDS_POSITION_TOP); spyOn(cutout); doNothing().when(cutout).onReloadResAndMeasure(any(), anyInt(), anyInt(), anyInt(), any()); mMockCutoutList.add(cutout); mScreenDecorations.start(); doCallRealMethod().when(mScreenDecorations).updateOverlayProviderViews(any()); mScreenDecorations.mPendingConfigChange = true; mScreenDecorations.updateOverlayProviderViews(null /* filterIds */); verify(cutout, never()).onReloadResAndMeasure(any(), anyInt(), anyInt(), anyInt(), any()); mScreenDecorations.mPendingConfigChange = false; mScreenDecorations.updateOverlayProviderViews(null /* filterIds */); verify(cutout).onReloadResAndMeasure(any(), anyInt(), anyInt(), anyInt(), any()); } @Test public void testSupportHwcLayer_SwitchFrom_NotSupport() { setupResources(0 /* radius */, 10 /* radiusTop */, 20 /* radiusBottom */, Loading