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

Commit f501b295 authored by William Xiao's avatar William Xiao
Browse files

Fix home controls showing on low light dream

Low light should never show complications, so short circuit early and
don't return any in the state controller.

Bug: 277746325
Test: atest DreamOverlayStateControllerTest
Change-Id: Iae6388dafa69098b70e9229bc562172fec1fb149
parent 66266df5
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -182,6 +182,10 @@ public class DreamOverlayStateController implements
     * Returns collection of present {@link Complication}.
     */
    public Collection<Complication> getComplications(boolean filterByAvailability) {
        if (isLowLightActive()) {
            // Don't show complications on low light.
            return Collections.emptyList();
        }
        return Collections.unmodifiableCollection(filterByAvailability
                ? mComplications
                .stream()
+17 −0
Original line number Diff line number Diff line
@@ -234,6 +234,23 @@ public class DreamOverlayStateControllerTest extends SysuiTestCase {
                .isTrue();
    }

    @Test
    public void testComplicationsNotShownForLowLight() {
        final Complication complication = Mockito.mock(Complication.class);
        final DreamOverlayStateController stateController = getDreamOverlayStateController(true);

        // Add a complication and verify it's returned in getComplications.
        stateController.addComplication(complication);
        mExecutor.runAllReady();
        assertThat(stateController.getComplications().contains(complication))
                .isTrue();

        stateController.setLowLightActive(true);
        mExecutor.runAllReady();

        assertThat(stateController.getComplications()).isEmpty();
    }

    @Test
    public void testNotifyLowLightChanged() {
        final DreamOverlayStateController stateController = getDreamOverlayStateController(true);