Rework the loading workflow to be more natural and fix some nasty bugs. Make the...
[debian/openrocket] / android / src / net / sf / openrocket / android / rocket / OpenRocketLoaderActivity.java
index 46398da33528adad9b431ae68aa3d5fdeea3a904..9a3a84310d9890cfc508b68abf28f6ef9044e4a2 100644 (file)
@@ -12,8 +12,6 @@ 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.app.Dialog;\r
 import android.content.ActivityNotFoundException;\r
 import android.content.Intent;\r
 import android.content.SharedPreferences;\r
@@ -42,6 +40,12 @@ implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnO
         * Set to the Uri of the file we are supposed to load.  Is saved in InstanceState.\r
         */\r
        private Uri fileToLoad = null;\r
+       \r
+       protected boolean isLoading() {\r
+               AndroidLogWrapper.d(OpenRocketLoaderActivity.class, "isLoading " + this.hashCode());\r
+               AndroidLogWrapper.d(OpenRocketLoaderActivity.class, "isLoading = " + isLoading);\r
+               return isLoading;\r
+       }\r
 \r
        @Override\r
        protected void onPostCreate(Bundle savedInstanceState) {\r
@@ -57,7 +61,8 @@ implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnO
 \r
        @Override\r
        protected void onSaveInstanceState(Bundle outState) {\r
-               AndroidLogWrapper.d(OpenRocketLoaderActivity.class, "onSaveInstanceState");\r
+               AndroidLogWrapper.d(OpenRocketLoaderActivity.class, "onSaveInstanceState " + this.hashCode());\r
+               AndroidLogWrapper.d(OpenRocketLoaderActivity.class, "isLoading = " + isLoading);\r
                outState.putBoolean("isLoading", isLoading);\r
                if ( fileToLoad != null ) {\r
                        outState.putParcelable("fileToLoad", fileToLoad);\r
@@ -69,6 +74,7 @@ implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnO
        protected void onRestoreInstanceState(Bundle savedInstanceState) {\r
                AndroidLogWrapper.d(OpenRocketLoaderActivity.class, "onRestoreInstanceState");\r
                isLoading = savedInstanceState.getBoolean("isLoading",false);\r
+               AndroidLogWrapper.d(OpenRocketLoaderActivity.class, "isLoading = " + isLoading);\r
                if ( savedInstanceState.containsKey("fileToLoad") ) {\r
                        fileToLoad = savedInstanceState.getParcelable("fileToLoad");\r
                }\r
@@ -164,16 +170,10 @@ implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnO
         * @param result\r
         */\r
        public void onOpenRocketFileLoaded(OpenRocketLoaderResult result) {\r
-               isLoading = false;\r
                if ( result.loadingError != null ) {\r
 \r
-                       AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);\r
-                       dialogBuilder.setTitle( R.string.loadingErrorMessage );\r
-                       dialogBuilder.setMessage( result.loadingError.getLocalizedMessage());\r
-                       dialogBuilder.setCancelable(true);\r
-                       Dialog d = dialogBuilder.create();\r
-                       d.setCanceledOnTouchOutside(true);\r
-                       d.show();\r
+                       ErrorLoadingFileDialogFragment errorDialog = ErrorLoadingFileDialogFragment.newInstance(R.string.loadingErrorMessage, result.loadingError.getLocalizedMessage());\r
+                       errorDialog.show(getSupportFragmentManager(),"errorDialog");\r
 \r
                } else {\r
                        CurrentRocketHolder.getCurrentRocket().setRocketDocument( result.rocket );\r
@@ -188,8 +188,8 @@ implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnO
                Set<ThrustCurveMotorPlaceholder> missingMotors = MissingMotorHelpers.findMissingMotors(rocket);\r
 \r
                if ( missingMotors.size() > 0 ) {\r
-                       DialogFragment missingMotorDialog = MissingMotorDialogFragment.newInstance( missingMotors );\r
-                       getSupportFragmentManager().beginTransaction().add(missingMotorDialog, MISSING_MOTOR_DIAG_FRAGMENT_TAG).commit();\r
+                       MissingMotorDialogFragment missingMotorDialog = MissingMotorDialogFragment.newInstance( missingMotors );\r
+                       missingMotorDialog.show(getSupportFragmentManager(), MISSING_MOTOR_DIAG_FRAGMENT_TAG);\r
                        return;\r
                }\r
 \r
@@ -235,7 +235,13 @@ implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnO
                displayWarningDialog();\r
        }\r
 \r
+       public void doDismissErrorDialog() {\r
+               isLoading = false;\r
+               fileToLoad = null;\r
+       }\r
+       \r
        public void moveOnToViewer() {\r
+               isLoading = false;\r
                Intent i = new Intent(this,OpenRocketViewer.class);\r
                startActivity(i);\r
                finish();\r