package com.nightscout.core.events; import com.squareup.otto.Bus; import java.util.HashSet; import java.util.Set; public class ScopedBus { private final Set<Object> objects = new HashSet<Object>(); private final Bus bus; private boolean active; public ScopedBus(Bus bus) { this.bus = bus; } public void register(Object obj) { objects.add(obj); if (active) { bus.register(obj); } } public void unregister(Object obj) { objects.remove(obj); if (active) { bus.unregister(obj); } } public void post(Object event) { bus.post(event); } void paused() { active = false; for (Object obj : objects) { bus.unregister(obj); } } void resumed() { active = true; for (Object obj : objects) { bus.register(obj); } } }