summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas Silva <lusilva@google.com>2023-04-21 14:54:13 -0400
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-04-27 19:15:41 +0000
commit1dd424018a2f72446a405c86f2e39e521572bffe (patch)
tree096fae5acf631703408c88c75cc831161d3e610c
parent5d6d481084c606edf42a02a8d78a37719e34b1a1 (diff)
downloadbase-1dd424018a2f72446a405c86f2e39e521572bffe.tar.gz
Don't show home controls complication if not available.
There is a toggle to disable home controls in Settings, and we need to honor that toggle when determining if the complication should be shown on the dream. Bug: 278964460 Test: atest DreamOverlayStateControllerTest Test: flashed device and disabled toggle in settings, verified home controls does not show on clock dream (cherry picked from commit 2955b163175b3dbdf69df34ea0c6f8c8c40642d3) (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:f7cf03045f46a10d1cdb0f0c0134cb06ad2c44e7) Merged-In: I4e72f4619fd0ebbf5a78620796f0114ceabc9365 Change-Id: I4e72f4619fd0ebbf5a78620796f0114ceabc9365
-rw-r--r--packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayStateController.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayStateControllerTest.java28
2 files changed, 30 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayStateController.java b/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayStateController.java
index b575f9a0ab8b..a2872e3c639b 100644
--- a/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayStateController.java
+++ b/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayStateController.java
@@ -197,7 +197,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);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayStateControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayStateControllerTest.java
index 55f0a8cd3f08..d0c1c4db62d4 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayStateControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayStateControllerTest.java
@@ -353,6 +353,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);
}