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
This commit is contained in:
William Xiao
2023-04-12 10:17:58 -07:00
parent 66266df517
commit f501b295e1
2 changed files with 21 additions and 0 deletions

View File

@@ -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()

View File

@@ -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);