private void notifyConfigureChanged(DanmakuConfigTag tag, Object... values) { if (mCallbackList != null) { for (WeakReference<ConfigChangedCallback> configReferer : mCallbackList) { ConfigChangedCallback cb = configReferer.get(); if (cb != null) { cb.onDanmakuConfigChanged(this, tag, values); } } } }
public void unregisterConfigChangedCallback(ConfigChangedCallback listener) { if (listener == null || mCallbackList == null) return; for (WeakReference<ConfigChangedCallback> configReferer : mCallbackList) { if (listener.equals(configReferer.get())) { mCallbackList.remove(listener); return; } } }
public void registerConfigChangedCallback(ConfigChangedCallback listener) { if (listener == null || mCallbackList == null) { mCallbackList = Collections.synchronizedList(new ArrayList<WeakReference<ConfigChangedCallback>>()); } for (WeakReference<ConfigChangedCallback> configReferer : mCallbackList) { if (listener.equals(configReferer.get())) { return; } } mCallbackList.add(new WeakReference<ConfigChangedCallback>(listener)); }