Added dialog to load new file when the current file is modified.
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Mon, 2 Jul 2012 02:15:34 +0000 (02:15 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Mon, 2 Jul 2012 02:15:34 +0000 (02:15 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@846 180e2498-e6e9-4542-8430-84ac67f01cd8

android/res/values/strings.xml
android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java

index eafe701e209727c143acf6bb7ed347a53e056140..074c7a886ac6417c2f95a19afef2d6994e8767b0 100644 (file)
     <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
index 2dc2f4595451eba978310ee5f97bd80368679a39..b04f40eef3e4d5f54a947b2188ce320c67b896af 100644 (file)
@@ -12,6 +12,7 @@ import net.sf.openrocket.android.util.AndroidLogWrapper;
 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
@@ -36,6 +37,9 @@ implements Simulations.OnSimulationSelectedListener, OpenRocketSaverFragment.OnO
        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
@@ -51,6 +55,9 @@ implements Simulations.OnSimulationSelectedListener, OpenRocketSaverFragment.OnO
                        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
@@ -73,6 +80,12 @@ implements Simulations.OnSimulationSelectedListener, OpenRocketSaverFragment.OnO
                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
@@ -93,11 +106,30 @@ implements Simulations.OnSimulationSelectedListener, OpenRocketSaverFragment.OnO
                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
@@ -156,6 +188,10 @@ implements Simulations.OnSimulationSelectedListener, OpenRocketSaverFragment.OnO
        @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