import net.sf.openrocket.R;\r
import net.sf.openrocket.android.ActivityHelpers;\r
import net.sf.openrocket.android.CurrentRocketHolder;\r
+import net.sf.openrocket.android.events.ChangeEventBroadcastReceiver;\r
import net.sf.openrocket.android.simulation.SimulationChart;\r
import net.sf.openrocket.android.simulation.SimulationViewActivity;\r
import net.sf.openrocket.android.simulation.SimulationViewFragment;\r
private boolean loadAfterSave = false;\r
private String autoSaveEnabledKey;\r
private boolean autoSaveEnabled = false;\r
+ \r
+ private RocketChangedEventHandler handler = new RocketChangedEventHandler();\r
+\r
\r
@Override\r
protected void onCreate(Bundle savedInstanceState) {\r
\r
@Override\r
protected void onPause() {\r
- CurrentRocketHolder.getCurrentRocket().setHandler(null);\r
+ handler.unregister(this);\r
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);\r
pref.unregisterOnSharedPreferenceChangeListener(this);\r
super.onPause();\r
\r
pref.registerOnSharedPreferenceChangeListener(this);\r
\r
- RocketChangedEventHandler handler = new RocketChangedEventHandler();\r
- CurrentRocketHolder.getCurrentRocket().setHandler(handler);\r
+ handler.register(this);\r
super.onResume();\r
}\r
\r
MenuInflater inflater = getSupportMenuInflater();\r
inflater.inflate(R.menu.rocket_viewer_option_menu, menu);\r
MenuItem saveAction = menu.findItem(R.id.menu_save);\r
- if ( CurrentRocketHolder.getCurrentRocket().isModified() ) {\r
+ if ( CurrentRocketHolder.getCurrentRocket().canSave() ) {\r
saveAction.setVisible(true);\r
saveAction.setShowAsAction( MenuItem.SHOW_AS_ACTION_ALWAYS );\r
} else {\r
\r
private void saveRocketDocument() {\r
getSupportFragmentManager().beginTransaction()\r
- .add( OpenRocketSaverFragment.newInstance(false), "saver")\r
+ .add( OpenRocketSaverFragment.newInstance(true), "saver")\r
.commitAllowingStateLoss();\r
}\r
\r
}\r
}\r
\r
- private class RocketChangedEventHandler extends net.sf.openrocket.android.RocketChangedEventHandler {\r
+ private class RocketChangedEventHandler extends ChangeEventBroadcastReceiver {\r
\r
@Override\r
- protected void doSimsChanged() {\r
- if ( autoSaveEnabled ) {\r
+ protected void doSimComplete() {\r
+ if ( autoSaveEnabled && CurrentRocketHolder.getCurrentRocket().canSave() ) {\r
Toast.makeText(OpenRocketViewer.this, R.string.autoSaveMessage, Toast.LENGTH_SHORT).show();\r
OpenRocketViewer.this.saveRocketDocument();\r
}\r
+ doSimsChanged();\r
+ }\r
+\r
+ @Override\r
+ protected void doSimsChanged() {\r
invalidateOptionsMenu();\r
Simulations sims = (Simulations) viewPagerAdapter.getFragmentAtPos(SIMS_POS);\r
if ( sims != null ) {\r