package org.deviceconnect.android.event; import android.content.Intent; import java.util.HashMap; import java.util.Map; public class EventDispatcherManager { private Map<Event, org.deviceconnect.android.event.EventDispatcher> mEventMap = new HashMap<>(); public void addEventDispatcher(final Event event, final org.deviceconnect.android.event.EventDispatcher dispatcher) { if (containsEventDispatcher(event)) { return; } mEventMap.put(event, dispatcher); dispatcher.start(); } public void removeEventDispatcher(final Event event) { org.deviceconnect.android.event.EventDispatcher dispatcher = mEventMap.remove(event); if (dispatcher != null) { dispatcher.stop(); } } public void removeAllEventDispatcher() { for (Map.Entry<Event, org.deviceconnect.android.event.EventDispatcher> e : mEventMap.entrySet()) { e.getValue().stop(); } mEventMap.clear(); } public boolean containsEventDispatcher(final Event event) { return mEventMap.containsKey(event); } public void sendEvent(final Event event, final Intent message) { org.deviceconnect.android.event.EventDispatcher dispatcher = mEventMap.get(event); if (dispatcher != null) { dispatcher.sendEvent(event, message); } } }