package gilday.android.powerhour; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import gilday.android.powerhour.service.PowerHourService; import java.util.LinkedList; public class MusicUpdateBroadcastReceiver extends BroadcastReceiver { private LinkedList<IMusicUpdateListener> listeners; public MusicUpdateBroadcastReceiver(IMusicUpdateListener... listener) { listeners = new LinkedList<IMusicUpdateListener>(); for(IMusicUpdateListener l : listener) { listeners.add(l); } } public void unRegisterUpdateListener() { for(IMusicUpdateListener listener : listeners){ if(listener instanceof IDisposable) { ((IDisposable) listener).dispose(); } } listeners = null; } @Override public void onReceive(Context context, Intent intent) { int songId = intent.getExtras().getInt(PowerHourService.SONGID); for(IMusicUpdateListener listener : listeners) { listener.onSongUpdate(songId); } } }