package com.asha.vrlib.plugins;
import android.text.TextUtils;
import com.asha.vrlib.plugins.hotspot.IMDHotspot;
import com.asha.vrlib.plugins.hotspot.MDAbsView;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* Created by hzqiujiadi on 16/7/22.
* hzqiujiadi ashqalcn@gmail.com
*/
public class MDPluginManager {
private static final String TAG = "MDPluginManager";
private List<MDAbsPlugin> mList;
public MDPluginManager() {
mList = new CopyOnWriteArrayList<>();
}
public void add(MDAbsPlugin plugin){
mList.add(plugin);
}
public List<MDAbsPlugin> getPlugins() {
return mList;
}
public void remove(MDAbsPlugin plugin) {
if (plugin != null){
mList.remove(plugin);
}
}
public void removeAll() {
for (MDAbsPlugin plugin : mList) {
if (plugin.removable()) {
mList.remove(plugin);
}
}
}
public IMDHotspot findHotspotByTag(String tag) {
for (MDAbsPlugin plugin : mList) {
if (plugin.removable() && plugin instanceof IMDHotspot) {
IMDHotspot hotspot = (IMDHotspot) plugin;
if (TextUtils.equals(tag, hotspot.getTag())){
return hotspot;
}
}
}
return null;
}
public MDAbsView findViewByTag(String tag) {
for (MDAbsPlugin plugin : mList) {
if (plugin.removable() && plugin instanceof MDAbsView) {
MDAbsView mdView = (MDAbsView) plugin;
if (TextUtils.equals(tag, mdView.getTag())){
return mdView;
}
}
}
return null;
}
}