package net.sf.openrocket.android;\r
\r
import net.sf.openrocket.R;\r
+import net.sf.openrocket.unit.UnitGroup;\r
+import android.content.SharedPreferences;\r
import android.os.Bundle;\r
+import android.preference.PreferenceManager;\r
\r
-public class PreferencesActivity extends android.preference.PreferenceActivity {\r
+public class PreferencesActivity extends android.preference.PreferenceActivity \r
+implements SharedPreferences.OnSharedPreferenceChangeListener {\r
\r
@Override\r
protected void onCreate( Bundle savedInstanceState ) {\r
super.onCreate( savedInstanceState );\r
addPreferencesFromResource(R.xml.preferences);\r
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);\r
+ prefs.registerOnSharedPreferenceChangeListener(this);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see android.content.SharedPreferences.OnSharedPreferenceChangeListener#onSharedPreferenceChanged(android.content.SharedPreferences, java.lang.String)\r
+ */\r
+ @Override\r
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {\r
+\r
+ initializePreferences(getApplication(), PreferenceManager.getDefaultSharedPreferences(this));\r
+ }\r
+\r
+ /**\r
+ * This method is to be called from Application setup to pull the saved preference\r
+ * values into the various datastructures used in OpenRocket.\r
+ * This method is located in this class because it is probably best to have as much\r
+ * of the code in the same place as possible.\r
+ * @param sharedPreferences\r
+ */\r
+ public static void initializePreferences( android.app.Application app, SharedPreferences sharedPreferences ) {\r
+ \r
+ String unitLength = app.getResources().getString(R.string.PreferenceUnitLengthOption);\r
+ String len = sharedPreferences.getString(unitLength, "cm");\r
+ UnitGroup.UNITS_LENGTH.setDefaultUnit( len );\r
+ \r
+ String unitMass = app.getResources().getString(R.string.PreferenceUnitMassOption);\r
+ String mass = sharedPreferences.getString(unitMass, "g");\r
+ UnitGroup.UNITS_MASS.setDefaultUnit( mass );\r
+ \r
}\r
\r
}\r