Switch to GeneralRocketLoader so the app can load compressed ork files. Added dialog...
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 15 Feb 2012 03:25:29 +0000 (03:25 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 15 Feb 2012 03:25:29 +0000 (03:25 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@416 180e2498-e6e9-4542-8430-84ac67f01cd8

android/src/net/sf/openrocket/android/rocket/OpenRocketLoaderActivity.java
android/src/net/sf/openrocket/android/rocket/OpenRocketLoaderFragment.java
android/src/net/sf/openrocket/android/rocket/OpenRocketLoaderResult.java

index 272b4b6d5e75f635b3c6922aef7adde607e296f2..dde3ccf484f69e9a147e9107fc5d4c45363e8c80 100644 (file)
@@ -11,6 +11,8 @@ import net.sf.openrocket.android.thrustcurve.TCQueryAction;
 import net.sf.openrocket.android.util.AndroidLogWrapper;\r
 import net.sf.openrocket.motor.ThrustCurveMotorPlaceholder;\r
 import net.sf.openrocket.rocketcomponent.Rocket;\r
+import android.app.AlertDialog;\r
+import android.content.DialogInterface;\r
 import android.content.Intent;\r
 import android.net.Uri;\r
 import android.os.Bundle;\r
@@ -23,7 +25,7 @@ implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnO
 \r
        private final static String MISSING_MOTOR_DIAG_FRAGMENT_TAG = "missingmotordialog";\r
        private final static String MISSING_MOTOR_DOWNLOAD_FRAGMENT_TAG = "missingmotortask";\r
-       \r
+\r
        @Override\r
        protected void onCreate(Bundle savedInstanceState) {\r
                super.onCreate(savedInstanceState);\r
@@ -46,9 +48,9 @@ implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnO
                AndroidLogWrapper.d(OpenRocketLoaderActivity.class,"Use ork file: " + file);\r
                String path = file.getPath();\r
                File orkFile = new File(path);\r
-               \r
+\r
                getSupportFragmentManager().beginTransaction().add( OpenRocketLoaderFragment.newInstance(orkFile), "loader").commit();\r
-               \r
+\r
        }\r
 \r
        /**\r
@@ -58,11 +60,25 @@ implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnO
         * @param result\r
         */\r
        public void onOpenRocketFileLoaded(OpenRocketLoaderResult result) {\r
-               ((Application)OpenRocketLoaderActivity.this.getApplication()).setRocketDocument( result.rocket );\r
-               ((Application)OpenRocketLoaderActivity.this.getApplication()).setWarnings( result.warnings );\r
-               \r
-               updateMissingMotors();\r
+               if ( result.loadingError != null ) {\r
+                       \r
+                       AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);\r
+                       dialogBuilder.setTitle("Error Loading File" );\r
+                       dialogBuilder.setMessage( result.loadingError.getLocalizedMessage());\r
+                       dialogBuilder.setOnCancelListener( new DialogInterface.OnCancelListener() {\r
+                               @Override\r
+                               public void onCancel(DialogInterface dialog) {\r
+                                       OpenRocketLoaderActivity.this.finish();\r
+                               }\r
+                       });\r
+                       dialogBuilder.create().show();\r
 \r
+               } else {\r
+                       ((Application)OpenRocketLoaderActivity.this.getApplication()).setRocketDocument( result.rocket );\r
+                       ((Application)OpenRocketLoaderActivity.this.getApplication()).setWarnings( result.warnings );\r
+\r
+                       updateMissingMotors();\r
+               }\r
        }\r
 \r
        private void updateMissingMotors() {\r
index 89c202c3d3db539d0f0b1b2ec10065e2baa6d582..99922752a0798cce6243dd1410d101e16f851206 100644 (file)
@@ -6,8 +6,8 @@ import net.sf.openrocket.android.util.AndroidLogWrapper;
 import net.sf.openrocket.android.util.ProgressDialogFragment;\r
 import net.sf.openrocket.document.OpenRocketDocument;\r
 import net.sf.openrocket.file.DatabaseMotorFinderWithMissingMotors;\r
+import net.sf.openrocket.file.GeneralRocketLoader;\r
 import net.sf.openrocket.file.RocketLoadException;\r
-import net.sf.openrocket.file.openrocket.importt.OpenRocketLoader;\r
 import android.app.Activity;\r
 import android.os.AsyncTask;\r
 import android.os.Bundle;\r
@@ -85,17 +85,17 @@ public class OpenRocketLoaderFragment extends Fragment {
                protected OpenRocketLoaderResult doInBackground(File... arg0) {\r
                        AndroidLogWrapper.d(OpenRocketLoaderTask.class, "doInBackgroud");\r
                        \r
-                       OpenRocketLoader rocketLoader = new OpenRocketLoader();\r
+                       GeneralRocketLoader rocketLoader = new GeneralRocketLoader();\r
+                       OpenRocketLoaderResult result = new OpenRocketLoaderResult();\r
                        try {\r
-                               OpenRocketLoaderResult result = new OpenRocketLoaderResult();\r
                                OpenRocketDocument rocket = rocketLoader.load(arg0[0], new DatabaseMotorFinderWithMissingMotors());\r
                                result.rocket = rocket;\r
                                result.warnings = rocketLoader.getWarnings();\r
-                               return result;\r
                        } catch (RocketLoadException ex) {\r
-                               AndroidLogWrapper.e(OpenRocketLoaderTask.class, "doInBackground rocketLaoder.load threw", ex);\r
+                               AndroidLogWrapper.e(OpenRocketLoaderTask.class, "doInBackground rocketLaoder.load threw {}", ex);\r
+                               result.loadingError = ex;\r
                        }\r
-                       return null;\r
+                       return result;\r
                        \r
                }\r
 \r
index ffb35397564c56f7f9f3218efa5192bd6e1fa4bc..4e3fef6d693c3ff31db1bd4f47fd0aa0f08f69f3 100644 (file)
@@ -2,10 +2,12 @@ package net.sf.openrocket.android.rocket;
 \r
 import net.sf.openrocket.aerodynamics.WarningSet;\r
 import net.sf.openrocket.document.OpenRocketDocument;\r
+import net.sf.openrocket.file.RocketLoadException;\r
 \r
 public class OpenRocketLoaderResult {\r
 \r
        public WarningSet warnings;\r
        public OpenRocketDocument rocket;\r
+       public RocketLoadException loadingError;\r
        \r
 }\r