import android.view.View;\r
import android.view.ViewGroup;\r
import android.widget.AdapterView;\r
-import android.widget.ArrayAdapter;\r
import android.widget.Spinner;\r
import android.widget.TextView;\r
\r
@Override\r
public void onActivityCreated(Bundle savedInstanceState) {\r
super.onActivityCreated(savedInstanceState);\r
- \r
+\r
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());\r
prefs.registerOnSharedPreferenceChangeListener(this);\r
\r
\r
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());\r
prefs.unregisterOnSharedPreferenceChangeListener(this);\r
-}\r
+ }\r
\r
@Override\r
public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1) {\r
setup();\r
}\r
}\r
- \r
+\r
private void setup() {\r
final OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument();\r
- // FIXME - here is the reason why the default configuration gets dorked with.\r
- final Configuration rocketConfiguration = rocketDocument.getDefaultConfiguration();\r
Rocket rocket = rocketDocument.getRocket();\r
\r
+ // Find the index of the default configuration so we can preselect it.\r
+ Configuration defaultConfiguration = rocketDocument.getDefaultConfiguration();\r
+ int selectedIndex = 0;\r
+ if ( defaultConfiguration != null ) {\r
+ String defaultConfigId = defaultConfiguration.getMotorConfigurationID();\r
+ if ( defaultConfigId != null ) {\r
+ for( String s : rocket.getMotorConfigurationIDs() ) {\r
+ // Note - s may be null since it is a valid id.\r
+ if ( defaultConfigId.equals(s) ) {\r
+ break;\r
+ }\r
+ selectedIndex++;\r
+ }\r
+ }\r
+ }\r
+ if( selectedIndex > rocket.getMotorConfigurationIDs().length ) {\r
+ selectedIndex = 0;\r
+ }\r
MotorConfigSpinnerAdapter spinnerAdapter = new MotorConfigSpinnerAdapter(getActivity(),rocket);\r
\r
AndroidLogWrapper.d(Overview.class, "spinnerAdapter = " + spinnerAdapter);\r
AndroidLogWrapper.d(Overview.class, "configurationSpinner = " + configurationSpinner);\r
\r
configurationSpinner.setAdapter(spinnerAdapter);\r
+ configurationSpinner.setSelection(selectedIndex);\r
configurationSpinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() {\r
\r
/* (non-Javadoc)\r
int arg2, long arg3) {\r
\r
String selectedConfigId = rocketDocument.getRocket().getMotorConfigurationIDs()[arg2];\r
- rocketConfiguration.setMotorConfigurationID(selectedConfigId);\r
- Coordinate cp = aerodynamicCalculator.getWorstCP(rocketConfiguration,\r
- new FlightConditions(rocketConfiguration),\r
+ Configuration config = new Configuration(rocketDocument.getRocket());\r
+ config.setMotorConfigurationID(selectedConfigId);\r
+ Coordinate cp = aerodynamicCalculator.getWorstCP(config,\r
+ new FlightConditions(config),\r
new WarningSet());\r
\r
- Coordinate cg = massCalculator.getCG(rocketConfiguration, MassCalcType.LAUNCH_MASS);\r
+ Coordinate cg = massCalculator.getCG(config, MassCalcType.LAUNCH_MASS);\r
\r
Unit lengthUnit = UnitGroup.UNITS_LENGTH.getDefaultUnit();\r
Unit massUnit = UnitGroup.UNITS_MASS.getDefaultUnit();\r
- Unit stabilityUnit = UnitGroup.stabilityUnits(rocketConfiguration).getDefaultUnit();\r
+ Unit stabilityUnit = UnitGroup.stabilityUnits(config).getDefaultUnit();\r
\r
((TextView)getActivity().findViewById(R.id.openrocketviewerCP)).setText(lengthUnit.toStringUnit(cp.x));\r
((TextView)getActivity().findViewById(R.id.openrocketviewerCG)).setText(lengthUnit.toStringUnit(cg.x));\r
\r
Unit lengthUnit = UnitGroup.UNITS_LENGTH.getDefaultUnit();\r
Unit massUnit = UnitGroup.UNITS_MASS.getDefaultUnit();\r
- \r
+\r
Coordinate cg = RocketUtils.getCG(rocket, MassCalcType.NO_MOTORS);\r
double length = RocketUtils.getLength(rocket);\r
((TextView)getActivity().findViewById(R.id.openrocketviewerDesigner)).setText(rocket.getDesigner());\r