Loading packages/SystemUI/src/com/android/systemui/util/condition/Monitor.java +4 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,10 @@ public class Monitor implements CallbackController<Monitor.Callback> { } private void addCallbackLocked(@NotNull Callback callback) { if (mCallbacks.contains(callback)) { return; } if (shouldLog()) Log.d(mTag, "adding callback"); mCallbacks.add(callback); Loading packages/SystemUI/tests/src/com/android/systemui/util/condition/ConditionMonitorTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -194,6 +194,21 @@ public class ConditionMonitorTest extends SysuiTestCase { verify(callback).onConditionsChanged(true); } @Test public void addCallback_withMultipleInstancesOfTheSameCallback_registerOnlyOne() { final Monitor monitor = new Monitor(mExecutor, new HashSet<>(), null /*callbacks*/); final Monitor.Callback callback = mock(Monitor.Callback.class); // Adds the same instance multiple times. monitor.addCallback(callback); monitor.addCallback(callback); monitor.addCallback(callback); mExecutor.runAllReady(); // Callback should only be triggered once. verify(callback, times(1)).onConditionsChanged(true); } @Test public void removeCallback_shouldNoLongerReceiveUpdate() { final Condition condition = mock(Condition.class); Loading Loading
packages/SystemUI/src/com/android/systemui/util/condition/Monitor.java +4 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,10 @@ public class Monitor implements CallbackController<Monitor.Callback> { } private void addCallbackLocked(@NotNull Callback callback) { if (mCallbacks.contains(callback)) { return; } if (shouldLog()) Log.d(mTag, "adding callback"); mCallbacks.add(callback); Loading
packages/SystemUI/tests/src/com/android/systemui/util/condition/ConditionMonitorTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -194,6 +194,21 @@ public class ConditionMonitorTest extends SysuiTestCase { verify(callback).onConditionsChanged(true); } @Test public void addCallback_withMultipleInstancesOfTheSameCallback_registerOnlyOne() { final Monitor monitor = new Monitor(mExecutor, new HashSet<>(), null /*callbacks*/); final Monitor.Callback callback = mock(Monitor.Callback.class); // Adds the same instance multiple times. monitor.addCallback(callback); monitor.addCallback(callback); monitor.addCallback(callback); mExecutor.runAllReady(); // Callback should only be triggered once. verify(callback, times(1)).onConditionsChanged(true); } @Test public void removeCallback_shouldNoLongerReceiveUpdate() { final Condition condition = mock(Condition.class); Loading