package by.istin.android.xcore; import android.content.Context; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import by.istin.android.xcore.plugin.IFragmentPlugin; import by.istin.android.xcore.utils.AppUtils; import by.istin.android.xcore.utils.Log; public class XCoreHelper { public static final String SYSTEM_SERVICE_KEY = "core:xcorehelper"; public static XCoreHelper get(Context context) { return (XCoreHelper) AppUtils.get(context, SYSTEM_SERVICE_KEY); } public static interface IAppServiceKey { String getAppServiceKey(); } private final Map<String, IAppServiceKey> mAppService = new HashMap<String, IAppServiceKey>(); private List<IFragmentPlugin> mListFragmentPlugins; public List<IFragmentPlugin> getListFragmentPlugins() { return mListFragmentPlugins; } public void addPlugin(IFragmentPlugin listFragmentPlugin) { if (mListFragmentPlugins == null) { mListFragmentPlugins = new ArrayList<IFragmentPlugin>(); } mListFragmentPlugins.add(listFragmentPlugin); } public void onCreate(Context ctx) { ContextHolder.getInstance().setContext(ctx); Log.init(ctx); registerAppService(new Core(ctx)); } public void registerAppService(IAppServiceKey appService) { mAppService.put(appService.getAppServiceKey(), appService); } public Object getSystemService(String name) { if (name.equals(SYSTEM_SERVICE_KEY)) { return this; } if (mAppService.containsKey(name)) { return mAppService.get(name); } return null; } }