Change OpenRocketViewer to tab layout with three tabs: overview, components, and...
[debian/openrocket] / src / net / sf / openrocket / android / PreferencesActivity.java
index 4ce05878f7e4abc32bb6e19e9917dfcb067b043a..66f4d7788b01e5606b179f3b14a982a9d30d92f2 100644 (file)
@@ -1,14 +1,48 @@
 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