Merge "Don't show home controls complication if not available." into udc-dev am: 66a64d2303

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22789679

Change-Id: Ia27d2aefff710b31a7a1bfbcbe18c003ada35d7c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Lucas Silva
2023-04-24 15:49:17 +00:00
committed by Automerger Merge Worker
2 changed files with 30 additions and 1 deletions

View File

@@ -199,7 +199,8 @@ public class DreamOverlayStateController implements
if (mShouldShowComplications) {
return (requiredTypes & getAvailableComplicationTypes()) == requiredTypes;
}
return (requiredTypes & mSupportedTypes) == requiredTypes;
final int typesToAlwaysShow = mSupportedTypes & getAvailableComplicationTypes();
return (requiredTypes & typesToAlwaysShow) == requiredTypes;
})
.collect(Collectors.toCollection(HashSet::new))
: mComplications);

View File

@@ -376,6 +376,34 @@ public class DreamOverlayStateControllerTest extends SysuiTestCase {
}
}
@Test
public void testHomeControlsDoNotShowIfNotAvailable_featureEnabled() {
when(mFeatureFlags.isEnabled(Flags.ALWAYS_SHOW_HOME_CONTROLS_ON_DREAMS)).thenReturn(true);
final DreamOverlayStateController stateController = getDreamOverlayStateController(true);
stateController.setShouldShowComplications(true);
final Complication homeControlsComplication = Mockito.mock(Complication.class);
when(homeControlsComplication.getRequiredTypeAvailability())
.thenReturn(Complication.COMPLICATION_TYPE_HOME_CONTROLS);
stateController.addComplication(homeControlsComplication);
final DreamOverlayStateController.Callback callback =
Mockito.mock(DreamOverlayStateController.Callback.class);
stateController.addCallback(callback);
mExecutor.runAllReady();
// No home controls since it is not available.
assertThat(stateController.getComplications()).doesNotContain(homeControlsComplication);
stateController.setAvailableComplicationTypes(Complication.COMPLICATION_TYPE_HOME_CONTROLS
| Complication.COMPLICATION_TYPE_WEATHER);
mExecutor.runAllReady();
assertThat(stateController.getComplications()).contains(homeControlsComplication);
}
private DreamOverlayStateController getDreamOverlayStateController(boolean overlayEnabled) {
return new DreamOverlayStateController(mExecutor, overlayEnabled, mFeatureFlags);
}