package net.sf.openrocket.android; import java.util.Locale; import net.sf.openrocket.android.util.AndroidLogWrapper; import net.sf.openrocket.database.ComponentPresetDatabase; import net.sf.openrocket.l10n.DebugTranslator; import net.sf.openrocket.l10n.ResourceBundleTranslator; import net.sf.openrocket.l10n.Translator; import android.content.pm.ApplicationInfo; import android.preference.PreferenceManager; public class Application extends android.app.Application { // Big B boolean so I can synchronize on it. private static Boolean initialized = false; public void initialize() { synchronized (initialized) { if ( initialized == true ) { return; } // Android does not have a default sax parser set. This needs to be defined first. System.setProperty("org.xml.sax.driver","org.xmlpull.v1.sax2.Driver"); net.sf.openrocket.startup.Application.setLogger( new AndroidLogWrapper.LogHelper() ); net.sf.openrocket.startup.Application.setPreferences( new PreferencesAdapter() ); net.sf.openrocket.startup.Application.setComponentPresetDao( new ComponentPresetDatabase(){ @Override protected void load() { // We don't need components } } ); MotorDatabaseAdapter db = new MotorDatabaseAdapter(this); net.sf.openrocket.startup.Application.setMotorSetDatabase(db); Translator t; t = new ResourceBundleTranslator("l10n.messages"); if (Locale.getDefault().getLanguage().equals("xx")) { t = new DebugTranslator(t); } net.sf.openrocket.startup.Application.setBaseTranslator(t); initialized = true; } } public Application() { } /* (non-Javadoc) * @see android.app.Application#onCreate() */ @Override public void onCreate() { super.onCreate(); initialize(); boolean isDebuggable = (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)); AndroidLogWrapper.setLogEnabled(isDebuggable); PreferencesActivity.initializePreferences(this, PreferenceManager.getDefaultSharedPreferences(this)); } }