diff --git a/packages/SystemUI/src/com/android/systemui/util/condition/Monitor.java b/packages/SystemUI/src/com/android/systemui/util/condition/Monitor.java index 287afa2d782f1..a7e9cdbf1a180 100644 --- a/packages/SystemUI/src/com/android/systemui/util/condition/Monitor.java +++ b/packages/SystemUI/src/com/android/systemui/util/condition/Monitor.java @@ -81,6 +81,12 @@ public class Monitor implements CallbackController { public Monitor(Set conditions) { mConditions = conditions; + // If there is no condition, give green pass. + if (mConditions.isEmpty()) { + mAllConditionsMet = true; + return; + } + // Initializes the conditions map and registers a callback for each condition. mConditions.forEach((condition -> mConditionsMap.put(condition, false))); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/condition/ConditionMonitorTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/condition/ConditionMonitorTest.java index f08ee73ae9b69..878bdeac43c98 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/condition/ConditionMonitorTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/condition/ConditionMonitorTest.java @@ -96,6 +96,16 @@ public class ConditionMonitorTest extends SysuiTestCase { verify(callback2).onConditionsChanged(true); } + @Test + public void addCallback_noConditions_reportAllConditionsMet() { + final Monitor monitor = new Monitor(new HashSet<>()); + final Monitor.Callback callback = mock(Monitor.Callback.class); + + monitor.addCallback(callback); + + verify(callback).onConditionsChanged(true); + } + @Test public void removeCallback_shouldNoLongerReceiveUpdate() { final Monitor.Callback callback =