<string name="view_events">View Events</string>\r
<string name="simulationPlotDialogTitle">Select Series And Events</string>\r
<string name="plot">Plot</string>\r
- <string name="saving">Saving file...</string>\r
- <string name="loading">Loading file...</string>\r
+ <string name="saving">Saving file…</string>\r
+ <string name="loading">Loading file…</string>\r
+ <string name="loadWarnUnsaved">Would you like to save the changes to the current model?</string>\r
+ <string name="no">No</string>\r
+ <string name="yes">Yes</string>\r
\r
<string-array name="PreferenceMotorBrowserGroupingEntries">\r
<item>Case</item>\r
import net.sf.openrocket.document.OpenRocketDocument;\r
import net.sf.openrocket.document.Simulation;\r
import android.app.AlertDialog;\r
+import android.content.DialogInterface;\r
import android.content.Intent;\r
import android.os.Bundle;\r
import android.support.v4.app.Fragment;\r
private final static int TABSIZE = 4;\r
\r
private OpenRocketViewerPagerAdapter viewPagerAdapter;\r
+ \r
+ private final static String LOAD_AFTER_SAVE = "net.sf.openrocket.android.loadAfterSave";\r
+ private boolean loadAfterSave = false;\r
\r
@Override\r
protected void onCreate(Bundle savedInstanceState) {\r
finish();\r
return;\r
}\r
+ if (savedInstanceState != null ) {\r
+ loadAfterSave = savedInstanceState.getBoolean(LOAD_AFTER_SAVE);\r
+ }\r
setTitle(rocDoc.getRocket().getName());\r
getSupportActionBar().setHomeButtonEnabled(true);\r
\r
super.onResume();\r
}\r
\r
+ @Override\r
+ protected void onSaveInstanceState(Bundle outState) {\r
+ super.onSaveInstanceState(outState);\r
+ outState.putBoolean(LOAD_AFTER_SAVE, loadAfterSave);\r
+ }\r
+\r
@Override\r
public boolean onCreateOptionsMenu(Menu menu) {\r
MenuInflater inflater = getSupportMenuInflater();\r
AndroidLogWrapper.d(OpenRocketViewer.class,"onMenuItemSelected" + item.getItemId());\r
switch(item.getItemId()) {\r
case R.id.menu_load:\r
- // FIXME - Might want to prompt for save here.\r
- pickOrkFiles();\r
+ if ( CurrentRocketHolder.getCurrentRocket().isModified() ) {\r
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);\r
+ builder.setMessage(R.string.loadWarnUnsaved);\r
+ builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {\r
+ @Override\r
+ public void onClick(DialogInterface dialog, int which) {\r
+ pickOrkFiles();\r
+ }\r
+ });\r
+ builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {\r
+ @Override\r
+ public void onClick(DialogInterface dialog, int which) {\r
+ OpenRocketViewer.this.loadAfterSave = true;\r
+ getSupportFragmentManager().beginTransaction()\r
+ .add( OpenRocketSaverFragment.newInstance(), "saver")\r
+ .commitAllowingStateLoss();\r
+ }\r
+ });\r
+ builder.create().show();\r
+ } else {\r
+ pickOrkFiles();\r
+ }\r
return true;\r
case R.id.menu_save:\r
- // FIXME - Probably want to open a dialog here.\r
getSupportFragmentManager().beginTransaction()\r
.add( OpenRocketSaverFragment.newInstance(), "saver")\r
.commitAllowingStateLoss();\r
@Override\r
public void onOpenRocketFileSaved(Boolean result) {\r
invalidateOptionsMenu();\r
+ if ( loadAfterSave ) {\r
+ loadAfterSave = false;\r
+ pickOrkFiles();\r
+ }\r
}\r
\r
private class RocketChangedEventHandler extends net.sf.openrocket.android.RocketChangedEventHandler {\r