Fix menus when simulations are displayed and the device is rotated. The preference menu is controlled in the SimulationViewActivity instead of the Fragment. The activity now replaces the fragment instead of adding it.
This commit is contained in:
parent
ac1b718138
commit
9def115330
@ -39,7 +39,7 @@ public class SimulationFragment extends Fragment implements SimulationSeriesDial
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
setRetainInstance(false);
|
||||
setRetainInstance(true);
|
||||
setHasOptionsMenu(true);
|
||||
OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument();
|
||||
|
||||
@ -54,9 +54,6 @@ public class SimulationFragment extends Fragment implements SimulationSeriesDial
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
// TODO without the clear it seems to create multiple copies
|
||||
// of the menu items on orientation change.
|
||||
menu.clear();
|
||||
inflater.inflate(R.menu.simulation_option_menu, menu);
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,8 @@
|
||||
*/
|
||||
package net.sf.openrocket.android.simulation;
|
||||
|
||||
import net.sf.openrocket.R;
|
||||
import net.sf.openrocket.android.ActivityHelpers;
|
||||
import net.sf.openrocket.android.Application;
|
||||
import net.sf.openrocket.document.OpenRocketDocument;
|
||||
import net.sf.openrocket.document.Simulation;
|
||||
@ -22,6 +24,8 @@ import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
/**
|
||||
* An activity that encapsulates a graphical view of the chart.
|
||||
@ -37,7 +41,7 @@ public class SimulationViewActivity extends FragmentActivity {
|
||||
final OpenRocketDocument rocketDocument = ((Application)getApplication()).getRocketDocument();
|
||||
|
||||
Simulation sim = rocketDocument.getSimulation(simulationNumber);
|
||||
|
||||
|
||||
SimulationChart chart = new SimulationChart( simulationNumber);
|
||||
chart.setSeries1(sim.getSimulatedData().getBranch(0).getTypes()[1]);
|
||||
chart.setSeries2(sim.getSimulatedData().getBranch(0).getTypes()[2]);
|
||||
@ -45,8 +49,25 @@ public class SimulationViewActivity extends FragmentActivity {
|
||||
Fragment graph = SimulationFragment.newInstance(chart);
|
||||
|
||||
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
|
||||
ft.add(android.R.id.content, graph);
|
||||
ft.replace(android.R.id.content, graph);
|
||||
ft.commit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(int featureId, MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.preference_menu_option:
|
||||
ActivityHelpers.startPreferences(this);
|
||||
return true;
|
||||
}
|
||||
return super.onMenuItemSelected(featureId, item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
MenuItem prefItem = menu.add(Menu.NONE, R.id.preference_menu_option, Menu.CATEGORY_SYSTEM, R.string.Preferences);
|
||||
prefItem.setIcon(R.drawable.ic_menu_preferences);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user