Loading services/core/java/com/android/server/display/LocalDisplayAdapter.java +6 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,12 @@ final class LocalDisplayAdapter extends DisplayAdapter { } SurfaceControl.DesiredDisplayModeSpecs modeSpecs = mSurfaceControlProxy.getDesiredDisplayModeSpecs(displayToken); if (modeSpecs == null) { // If mode specs is null, it most probably means that display got // unplugged very rapidly. Slog.w(TAG, "Desired display mode specs from SurfaceFlinger are null"); return; } LocalDisplayDevice device = mDevices.get(physicalDisplayId); if (device == null) { // Display was added. Loading services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -1141,6 +1141,20 @@ public class LocalDisplayAdapterTest { assertThat(info.roundedCorners).isNull(); } @Test public void test_createLocalExternalDisplay_displayManagementEnabled_doesNotCrash() throws Exception { FakeDisplay display = new FakeDisplay(PORT_A); display.info.isInternal = false; setUpDisplay(display); updateAvailableDisplays(); mAdapter.registerLocked(); when(mSurfaceControlProxy.getDesiredDisplayModeSpecs(display.token)).thenReturn(null); mInjector.getTransmitter().sendHotplug(display, /* connected */ true); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); assertThat(mListener.addedDisplays.size()).isEqualTo(1); } @Test public void test_createLocalExternalDisplay_displayManagementEnabled_shouldHaveDefaultGroup() throws Exception { Loading Loading
services/core/java/com/android/server/display/LocalDisplayAdapter.java +6 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,12 @@ final class LocalDisplayAdapter extends DisplayAdapter { } SurfaceControl.DesiredDisplayModeSpecs modeSpecs = mSurfaceControlProxy.getDesiredDisplayModeSpecs(displayToken); if (modeSpecs == null) { // If mode specs is null, it most probably means that display got // unplugged very rapidly. Slog.w(TAG, "Desired display mode specs from SurfaceFlinger are null"); return; } LocalDisplayDevice device = mDevices.get(physicalDisplayId); if (device == null) { // Display was added. Loading
services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -1141,6 +1141,20 @@ public class LocalDisplayAdapterTest { assertThat(info.roundedCorners).isNull(); } @Test public void test_createLocalExternalDisplay_displayManagementEnabled_doesNotCrash() throws Exception { FakeDisplay display = new FakeDisplay(PORT_A); display.info.isInternal = false; setUpDisplay(display); updateAvailableDisplays(); mAdapter.registerLocked(); when(mSurfaceControlProxy.getDesiredDisplayModeSpecs(display.token)).thenReturn(null); mInjector.getTransmitter().sendHotplug(display, /* connected */ true); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); assertThat(mListener.addedDisplays.size()).isEqualTo(1); } @Test public void test_createLocalExternalDisplay_displayManagementEnabled_shouldHaveDefaultGroup() throws Exception { Loading