From 3f093ba169422c48d2b37a31f153609f5c735af3 Mon Sep 17 00:00:00 2001 From: Darrell Shi Date: Fri, 3 Dec 2021 18:24:26 +0000 Subject: [PATCH] Report all conditions met when no conditions given. Test: atest ConditionMonitorTest#addCallback_noConditions_reportAllConditionsMet Fix: 209015016 Change-Id: Ieb81d659fbaf6123d6a8a8d6f5b3d8b300299c40 --- .../com/android/systemui/util/condition/Monitor.java | 6 ++++++ .../systemui/util/condition/ConditionMonitorTest.java | 10 ++++++++++ 2 files changed, 16 insertions(+) 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 =