Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 610243e7 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Prevent double updateLogicalDisplaysLocked" into main

parents 401d4245 ab71a6c1
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -136,6 +136,9 @@ class ExternalDisplayPolicy {
                    handleExternalDisplayConnectedLocked(logicalDisplay);
                }
            }
            if (!mDisplayIdsWaitingForBootCompletion.isEmpty()) {
                mLogicalDisplayMapper.updateLogicalDisplaysLocked();
            }
            mDisplayIdsWaitingForBootCompletion.clear();
        }

@@ -222,7 +225,7 @@ class ExternalDisplayPolicy {
        } else {
            // As external display is enabled by default, need to disable it now.
            // TODO(b/292196201) Remove when the display can be disabled before DPC is created.
            mLogicalDisplayMapper.setDisplayEnabledLocked(logicalDisplay, false);
            mLogicalDisplayMapper.setEnabledLocked(logicalDisplay, false);
        }

        if (!isExternalDisplayAllowed()) {
+0 −1
Original line number Diff line number Diff line
@@ -1195,7 +1195,6 @@ class LogicalDisplayMapper implements DisplayDeviceRepository.Listener {
        return display;
    }

    @VisibleForTesting
    void setEnabledLocked(LogicalDisplay display, boolean isEnabled) {
        final int displayId = display.getDisplayIdLocked();
        final DisplayInfo info = display.getDisplayInfoLocked();
+6 −4
Original line number Diff line number Diff line
@@ -2513,9 +2513,8 @@ public class DisplayManagerServiceTest {
        LogicalDisplay display =
                logicalDisplayMapper.getDisplayLocked(displayDevice, /* includeDisabled= */ true);
        assertThat(display.isEnabledLocked()).isFalse();
        // TODO(b/332711269) make sure only one DISPLAY_GROUP_EVENT_ADDED sent.
        assertThat(callback.receivedEvents()).containsExactly(DISPLAY_GROUP_EVENT_ADDED,
                DISPLAY_GROUP_EVENT_ADDED, EVENT_DISPLAY_CONNECTED).inOrder();
                EVENT_DISPLAY_CONNECTED).inOrder();
    }

    @Test
@@ -3359,8 +3358,11 @@ public class DisplayManagerServiceTest {
        }
        displayDeviceInfo.address = new TestUtils.TestDisplayAddress();
        displayDevice.setDisplayDeviceInfo(displayDeviceInfo);

        displayManager.getDisplayHandler().runWithScissors(() -> {
            displayManager.getDisplayDeviceRepository()
                    .onDisplayDeviceEvent(displayDevice, DisplayAdapter.DISPLAY_DEVICE_EVENT_ADDED);
        }, 0 /* now */);
        return displayDevice;
    }

+1 −1
Original line number Diff line number Diff line
@@ -317,7 +317,7 @@ public class ExternalDisplayPolicyTest {
                mDisplayEventCaptor.capture());
        assertThat(mLogicalDisplayCaptor.getValue()).isEqualTo(mMockedLogicalDisplay);
        assertThat(mDisplayEventCaptor.getValue()).isEqualTo(EVENT_DISPLAY_CONNECTED);
        verify(mMockedLogicalDisplayMapper).setDisplayEnabledLocked(eq(mMockedLogicalDisplay),
        verify(mMockedLogicalDisplayMapper).setEnabledLocked(eq(mMockedLogicalDisplay),
                eq(false));
        clearInvocations(mMockedLogicalDisplayMapper);
        clearInvocations(mMockedLogicalDisplay);