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

Commit c4a202ae 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 adb11edb
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);