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

Commit 43da8a4c authored by William Xiao's avatar William Xiao Committed by Android Build Coastguard Worker
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
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:f501b295e11d22455f661707adad9d020b193d25)
Merged-In: Iae6388dafa69098b70e9229bc562172fec1fb149
Change-Id: Iae6388dafa69098b70e9229bc562172fec1fb149
parent 38df2ea2
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);