lose embedded source jars from upstream branch
[debian/openrocket] / android / src / net / sf / openrocket / android / PreferencesActivity.java
1 package net.sf.openrocket.android;\r
2 \r
3 import net.sf.openrocket.R;\r
4 import net.sf.openrocket.android.util.AndroidLogWrapper;\r
5 import net.sf.openrocket.unit.UnitGroup;\r
6 import android.content.SharedPreferences;\r
7 import android.os.Bundle;\r
8 import android.preference.Preference;\r
9 import android.preference.PreferenceManager;\r
10 \r
11 public class PreferencesActivity extends android.preference.PreferenceActivity \r
12 {\r
13 \r
14         \r
15         @Override\r
16         protected void onCreate( Bundle savedInstanceState ) {\r
17                 super.onCreate( savedInstanceState );\r
18                 addPreferencesFromResource(R.xml.preferences);\r
19                 \r
20                 PreferenceManager prefManager = getPreferenceManager();\r
21                 {\r
22                         String key = getApplication().getResources().getString(R.string.PreferenceUnitLengthOption);\r
23                         Preference pref = prefManager.findPreference(key);\r
24                         new UnitPreferenceListener(pref, UnitGroup.UNITS_LENGTH, "Current value ");\r
25                         \r
26                 }\r
27                 {\r
28                         String key = getApplication().getResources().getString(R.string.PreferenceUnitMassOption);\r
29                         Preference pref = prefManager.findPreference(key);\r
30                         new UnitPreferenceListener(pref, UnitGroup.UNITS_MASS, "Current value ");\r
31                         \r
32                 }\r
33                 {\r
34                         String key = getApplication().getResources().getString(R.string.PreferenceUnitVelocityOption);\r
35                         Preference pref = prefManager.findPreference(key);\r
36                         new UnitPreferenceListener(pref, UnitGroup.UNITS_VELOCITY, "Current value ");\r
37                         \r
38                 }\r
39                 {\r
40                         String key = getApplication().getResources().getString(R.string.PreferenceUnitDistanceOption);\r
41                         Preference pref = prefManager.findPreference(key);\r
42                         new UnitPreferenceListener(pref, UnitGroup.UNITS_DISTANCE, "Current value ");\r
43                         \r
44                 }\r
45         }\r
46 \r
47         @Override\r
48         protected void onDestroy() {\r
49                 super.onDestroy();\r
50         }\r
51 \r
52         /**\r
53          * This method is to be called from Application setup to pull the saved preference\r
54          * values into the various datastructures used in OpenRocket.\r
55          * This method is located in this class because it is probably best to have as much\r
56          * of the code in the same place as possible.\r
57          * @param sharedPreferences\r
58          */\r
59         public static void initializePreferences( android.app.Application app, SharedPreferences sharedPreferences ) {\r
60                 \r
61                 String unitLength = app.getResources().getString(R.string.PreferenceUnitLengthOption);\r
62                 String len = sharedPreferences.getString(unitLength, "cm");\r
63                 UnitGroup.UNITS_LENGTH.setDefaultUnit( len );\r
64                 \r
65                 AndroidLogWrapper.d(PreferencesActivity.class, "Chaning mass");\r
66                 String unitMass = app.getResources().getString(R.string.PreferenceUnitMassOption);\r
67                 String mass = sharedPreferences.getString(unitMass, "g");\r
68                 UnitGroup.UNITS_MASS.setDefaultUnit( mass );\r
69                 \r
70                 String unitVelocity = app.getResources().getString(R.string.PreferenceUnitVelocityOption);\r
71                 String velocity = sharedPreferences.getString(unitVelocity, "m/s");\r
72                 UnitGroup.UNITS_VELOCITY.setDefaultUnit( velocity );\r
73                 \r
74                 String unitDistance = app.getResources().getString(R.string.PreferenceUnitDistanceOption);\r
75                 String distance = sharedPreferences.getString(unitDistance, "m");\r
76                 UnitGroup.UNITS_DISTANCE.setDefaultUnit( distance );\r
77                 \r
78         }\r
79 \r
80         private class UnitPreferenceListener implements Preference.OnPreferenceChangeListener {\r
81 \r
82                 private UnitGroup matchedGroup;\r
83                 private String message;\r
84                 private Preference pref;\r
85                 \r
86                 private UnitPreferenceListener( Preference pref, UnitGroup unit, String message) {\r
87                         this.pref = pref;\r
88                         this.matchedGroup = unit;\r
89                         this.message = message;\r
90                         pref.setSummary(message + unit.getDefaultUnit().getUnit());\r
91                         // todo figure out how to setSummary - need to get initial value.\r
92                         pref.setOnPreferenceChangeListener(this);\r
93                 }\r
94                 \r
95                 @Override\r
96                 public boolean onPreferenceChange(Preference preference, Object newValue) {\r
97                         matchedGroup.setDefaultUnit((String)newValue);\r
98                         preference.setSummary(message + newValue);\r
99                         return true;\r
100                 }\r
101                 \r
102         }\r
103         \r
104 }\r