/**
*
*/
package by.istin.android.xcore;
import android.app.Application;
import by.istin.android.xcore.XCoreHelper.IAppServiceKey;
import by.istin.android.xcore.plugin.IFragmentPlugin;
import by.istin.android.xcore.provider.IDBContentProviderSupport;
import by.istin.android.xcore.provider.impl.DBContentProviderFactory;
/**
* @author Uladzimir_Klyshevich
*
*/
public class CoreApplication extends Application {
private XCoreHelper mXCoreHelper;
//KitKat workaround
private final Object mLock = new Object();
@Override
public void onCreate() {
synchronized (mLock) {
mXCoreHelper = new XCoreHelper();
mXCoreHelper.onCreate(this);
super.onCreate();
}
}
public void registerAppService(IAppServiceKey appService) {
mXCoreHelper.registerAppService(appService);
}
public void addPlugin(IFragmentPlugin listFragmentPlugin) {
mXCoreHelper.addPlugin(listFragmentPlugin);
}
public IDBContentProviderSupport getDefaultDBContentProvider(Class<?>[] entities) {
return DBContentProviderFactory.getDefaultDBContentProvider(this, entities);
}
@Override
public Object getSystemService(String name) {
if (mXCoreHelper == null) {
synchronized (mLock) {
if (mXCoreHelper == null) {
onCreate();
}
}
}
Object object = mXCoreHelper.getSystemService(name);
if (object != null) {
return object;
}
return super.getSystemService(name);
}
}