X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=android%2Fsrc%2Fnet%2Fsf%2Fopenrocket%2Fandroid%2Frocket%2FOverview.java;fp=android%2Fsrc%2Fnet%2Fsf%2Fopenrocket%2Fandroid%2Frocket%2FOverview.java;h=33cedaeb7b9744995bc802f8934a7fd6551a6769;hb=9349577cdfdff682b2aabd6daa24fdc3a7449b58;hp=8692abf5a84746802ab2c237deee372d4920d88d;hpb=30ba0a882f0c061176ba14dbf86d3d6fad096c02;p=debian%2Fopenrocket diff --git a/android/src/net/sf/openrocket/android/rocket/Overview.java b/android/src/net/sf/openrocket/android/rocket/Overview.java index 8692abf5..33cedaeb 100644 --- a/android/src/net/sf/openrocket/android/rocket/Overview.java +++ b/android/src/net/sf/openrocket/android/rocket/Overview.java @@ -5,7 +5,7 @@ import net.sf.openrocket.aerodynamics.AerodynamicCalculator; import net.sf.openrocket.aerodynamics.BarrowmanCalculator; import net.sf.openrocket.aerodynamics.FlightConditions; import net.sf.openrocket.aerodynamics.WarningSet; -import net.sf.openrocket.android.Application; +import net.sf.openrocket.android.CurrentRocketHolder; import net.sf.openrocket.android.util.AndroidLogWrapper; import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.masscalc.BasicMassCalculator; @@ -25,8 +25,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.Spinner; import android.widget.TextView; public class Overview extends Fragment @@ -37,7 +35,7 @@ implements SharedPreferences.OnSharedPreferenceChangeListener private AerodynamicCalculator aerodynamicCalculator = new BarrowmanCalculator(); private MassCalculator massCalculator = new BasicMassCalculator(); - private Spinner configurationSpinner; + private MotorConfigSpinner configurationSpinner; @Override @@ -45,7 +43,7 @@ implements SharedPreferences.OnSharedPreferenceChangeListener Bundle savedInstanceState) { AndroidLogWrapper.d(Overview.class, "Created View"); View v = inflater.inflate(R.layout.rocket_overview, container, false); - configurationSpinner = (Spinner) v.findViewById(R.id.openrocketviewerConfigurationSpinner); + configurationSpinner = (MotorConfigSpinner) v.findViewById(R.id.openrocketviewerConfigurationSpinner); return v; } @@ -53,10 +51,15 @@ implements SharedPreferences.OnSharedPreferenceChangeListener @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); prefs.registerOnSharedPreferenceChangeListener(this); + } + + @Override + public void onResume() { + super.onResume(); setup(); } @@ -67,7 +70,7 @@ implements SharedPreferences.OnSharedPreferenceChangeListener SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); prefs.unregisterOnSharedPreferenceChangeListener(this); -} + } @Override public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1) { @@ -75,22 +78,19 @@ implements SharedPreferences.OnSharedPreferenceChangeListener setup(); } } - + private void setup() { - final OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument(); - final Configuration rocketConfiguration = rocketDocument.getDefaultConfiguration(); + final OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument(); Rocket rocket = rocketDocument.getRocket(); - String[] motorConfigs = rocket.getMotorConfigurationIDs(); - ArrayAdapter spinnerAdapter = new ArrayAdapter(getActivity(),R.layout.simple_spinner_item); - for( String config: motorConfigs ) { - spinnerAdapter.add(rocket.getMotorConfigurationNameOrDescription(config)); - } - - AndroidLogWrapper.d(Overview.class, "spinnerAdapter = " + spinnerAdapter); + // Find the index of the default configuration so we can preselect it. + Configuration defaultConfiguration = rocketDocument.getDefaultConfiguration(); + configurationSpinner.createAdapter(rocket); AndroidLogWrapper.d(Overview.class, "configurationSpinner = " + configurationSpinner); - configurationSpinner.setAdapter(spinnerAdapter); + if ( defaultConfiguration != null ) { + configurationSpinner.setSelectedConfiguration(defaultConfiguration.getMotorConfigurationID()); + } configurationSpinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { /* (non-Javadoc) @@ -101,16 +101,17 @@ implements SharedPreferences.OnSharedPreferenceChangeListener int arg2, long arg3) { String selectedConfigId = rocketDocument.getRocket().getMotorConfigurationIDs()[arg2]; - rocketConfiguration.setMotorConfigurationID(selectedConfigId); - Coordinate cp = aerodynamicCalculator.getWorstCP(rocketConfiguration, - new FlightConditions(rocketConfiguration), + Configuration config = new Configuration(rocketDocument.getRocket()); + config.setMotorConfigurationID(selectedConfigId); + Coordinate cp = aerodynamicCalculator.getWorstCP(config, + new FlightConditions(config), new WarningSet()); - Coordinate cg = massCalculator.getCG(rocketConfiguration, MassCalcType.LAUNCH_MASS); + Coordinate cg = massCalculator.getCG(config, MassCalcType.LAUNCH_MASS); Unit lengthUnit = UnitGroup.UNITS_LENGTH.getDefaultUnit(); Unit massUnit = UnitGroup.UNITS_MASS.getDefaultUnit(); - Unit stabilityUnit = UnitGroup.stabilityUnits(rocketConfiguration).getDefaultUnit(); + Unit stabilityUnit = UnitGroup.stabilityUnits(config).getDefaultUnit(); ((TextView)getActivity().findViewById(R.id.openrocketviewerCP)).setText(lengthUnit.toStringUnit(cp.x)); ((TextView)getActivity().findViewById(R.id.openrocketviewerCG)).setText(lengthUnit.toStringUnit(cg.x)); @@ -134,7 +135,7 @@ implements SharedPreferences.OnSharedPreferenceChangeListener Unit lengthUnit = UnitGroup.UNITS_LENGTH.getDefaultUnit(); Unit massUnit = UnitGroup.UNITS_MASS.getDefaultUnit(); - + Coordinate cg = RocketUtils.getCG(rocket, MassCalcType.NO_MOTORS); double length = RocketUtils.getLength(rocket); ((TextView)getActivity().findViewById(R.id.openrocketviewerDesigner)).setText(rocket.getDesigner());