/**
*
*/
package com.gmail.charleszq.picorner.msg;
import java.util.HashSet;
import java.util.Set;
import android.util.Log;
import com.gmail.charleszq.picorner.BuildConfig;
import com.gmail.charleszq.picorner.ui.SecondaryMenuFragment;
/**
* @author charleszq
*
*/
public final class MessageBus {
private static final String TAG = MessageBus.class.getSimpleName();
private static Set<IMessageConsumer> mConsumers = new HashSet<IMessageConsumer>();
public static void addConsumer(IMessageConsumer consumer) {
mConsumers.add(consumer);
if( BuildConfig.DEBUG )
Log.d(TAG, "message consumer registered: " + consumer.toString()); //$NON-NLS-1$
}
public static void removeConsumer(IMessageConsumer consumer) {
mConsumers.remove(consumer);
if( BuildConfig.DEBUG )
Log.d(TAG, "message consumer removed: " + consumer.toString()); //$NON-NLS-1$
}
/**
* Resets the consumers, only left the 2nd menu fragment.
*/
public static void reset() {
IMessageConsumer consumer = null;
for( IMessageConsumer c : mConsumers ) {
if( SecondaryMenuFragment.class.isInstance(c)) {
consumer = c;
break;
}
}
mConsumers.clear();
if( consumer != null ) {
mConsumers.add(consumer);
}
}
public static void broadcastMessage(Message msg) {
for (IMessageConsumer c : mConsumers) {
boolean ret = c.consumeMessage(msg);
if( ret ) {
break;
}
}
}
/**
*
*/
private MessageBus() {
}
}