Correctly change configurations without changing the default configuration id. Also, select in the spinner the default configuration when constructed.
This commit is contained in:
parent
134031de24
commit
9a54fbdb88
@ -25,7 +25,6 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
@ -67,7 +66,7 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
|
|||||||
|
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||||
prefs.unregisterOnSharedPreferenceChangeListener(this);
|
prefs.unregisterOnSharedPreferenceChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1) {
|
public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1) {
|
||||||
@ -78,16 +77,33 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
|
|||||||
|
|
||||||
private void setup() {
|
private void setup() {
|
||||||
final OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument();
|
final OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument();
|
||||||
// FIXME - here is the reason why the default configuration gets dorked with.
|
|
||||||
final Configuration rocketConfiguration = rocketDocument.getDefaultConfiguration();
|
|
||||||
Rocket rocket = rocketDocument.getRocket();
|
Rocket rocket = rocketDocument.getRocket();
|
||||||
|
|
||||||
|
// Find the index of the default configuration so we can preselect it.
|
||||||
|
Configuration defaultConfiguration = rocketDocument.getDefaultConfiguration();
|
||||||
|
int selectedIndex = 0;
|
||||||
|
if ( defaultConfiguration != null ) {
|
||||||
|
String defaultConfigId = defaultConfiguration.getMotorConfigurationID();
|
||||||
|
if ( defaultConfigId != null ) {
|
||||||
|
for( String s : rocket.getMotorConfigurationIDs() ) {
|
||||||
|
// Note - s may be null since it is a valid id.
|
||||||
|
if ( defaultConfigId.equals(s) ) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
selectedIndex++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( selectedIndex > rocket.getMotorConfigurationIDs().length ) {
|
||||||
|
selectedIndex = 0;
|
||||||
|
}
|
||||||
MotorConfigSpinnerAdapter spinnerAdapter = new MotorConfigSpinnerAdapter(getActivity(),rocket);
|
MotorConfigSpinnerAdapter spinnerAdapter = new MotorConfigSpinnerAdapter(getActivity(),rocket);
|
||||||
|
|
||||||
AndroidLogWrapper.d(Overview.class, "spinnerAdapter = " + spinnerAdapter);
|
AndroidLogWrapper.d(Overview.class, "spinnerAdapter = " + spinnerAdapter);
|
||||||
AndroidLogWrapper.d(Overview.class, "configurationSpinner = " + configurationSpinner);
|
AndroidLogWrapper.d(Overview.class, "configurationSpinner = " + configurationSpinner);
|
||||||
|
|
||||||
configurationSpinner.setAdapter(spinnerAdapter);
|
configurationSpinner.setAdapter(spinnerAdapter);
|
||||||
|
configurationSpinner.setSelection(selectedIndex);
|
||||||
configurationSpinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() {
|
configurationSpinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() {
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
@ -98,16 +114,17 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
|
|||||||
int arg2, long arg3) {
|
int arg2, long arg3) {
|
||||||
|
|
||||||
String selectedConfigId = rocketDocument.getRocket().getMotorConfigurationIDs()[arg2];
|
String selectedConfigId = rocketDocument.getRocket().getMotorConfigurationIDs()[arg2];
|
||||||
rocketConfiguration.setMotorConfigurationID(selectedConfigId);
|
Configuration config = new Configuration(rocketDocument.getRocket());
|
||||||
Coordinate cp = aerodynamicCalculator.getWorstCP(rocketConfiguration,
|
config.setMotorConfigurationID(selectedConfigId);
|
||||||
new FlightConditions(rocketConfiguration),
|
Coordinate cp = aerodynamicCalculator.getWorstCP(config,
|
||||||
|
new FlightConditions(config),
|
||||||
new WarningSet());
|
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 lengthUnit = UnitGroup.UNITS_LENGTH.getDefaultUnit();
|
||||||
Unit massUnit = UnitGroup.UNITS_MASS.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.openrocketviewerCP)).setText(lengthUnit.toStringUnit(cp.x));
|
||||||
((TextView)getActivity().findViewById(R.id.openrocketviewerCG)).setText(lengthUnit.toStringUnit(cg.x));
|
((TextView)getActivity().findViewById(R.id.openrocketviewerCG)).setText(lengthUnit.toStringUnit(cg.x));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user