From: kruland2607 Date: Sun, 5 Feb 2012 01:53:43 +0000 (+0000) Subject: Fix menus when simulations are displayed and the device is rotated. The preference... X-Git-Tag: upstream/12.03~1^2~78 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=7b1c745e39c00f492d087840d1ed57b4777c47ed;p=debian%2Fopenrocket 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. git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@393 180e2498-e6e9-4542-8430-84ac67f01cd8 --- diff --git a/android/src/net/sf/openrocket/android/simulation/SimulationFragment.java b/android/src/net/sf/openrocket/android/simulation/SimulationFragment.java index dfcd5715..60c86822 100644 --- a/android/src/net/sf/openrocket/android/simulation/SimulationFragment.java +++ b/android/src/net/sf/openrocket/android/simulation/SimulationFragment.java @@ -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); } diff --git a/android/src/net/sf/openrocket/android/simulation/SimulationViewActivity.java b/android/src/net/sf/openrocket/android/simulation/SimulationViewActivity.java index ec0895da..8a478ab4 100644 --- a/android/src/net/sf/openrocket/android/simulation/SimulationViewActivity.java +++ b/android/src/net/sf/openrocket/android/simulation/SimulationViewActivity.java @@ -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; + } + } \ No newline at end of file