Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / android / src / net / sf / openrocket / android / rocket / OpenRocketLoaderFragment.java
index 99922752a0798cce6243dd1410d101e16f851206..e6dc5dd3b2e751c2af2d0b43fdee85406abe872b 100644 (file)
@@ -2,6 +2,7 @@ package net.sf.openrocket.android.rocket;
 \r
 import java.io.File;\r
 \r
+import net.sf.openrocket.R;\r
 import net.sf.openrocket.android.util.AndroidLogWrapper;\r
 import net.sf.openrocket.android.util.ProgressDialogFragment;\r
 import net.sf.openrocket.document.OpenRocketDocument;\r
@@ -17,12 +18,12 @@ import android.view.LayoutInflater;
 import android.view.View;\r
 import android.view.ViewGroup;\r
 \r
-public class OpenRocketLoaderFragment extends Fragment {\r
+import com.actionbarsherlock.app.SherlockFragment;\r
+\r
+public class OpenRocketLoaderFragment extends SherlockFragment {\r
        \r
        private final static String FILE_ARG_KEY = "file";\r
        \r
-       private final static String LOADING_MESSAGE = "Loading file...";\r
-\r
        public interface OnOpenRocketFileLoaded {\r
                public void onOpenRocketFileLoaded( OpenRocketLoaderResult result );\r
        }\r
@@ -74,7 +75,8 @@ public class OpenRocketLoaderFragment extends Fragment {
                @Override\r
                protected void onPreExecute() {\r
                        super.onPreExecute();\r
-                       DialogFragment newFragment = ProgressDialogFragment.newInstance("", LOADING_MESSAGE);\r
+                       String loading = getActivity().getResources().getString(R.string.loading);\r
+                       DialogFragment newFragment = ProgressDialogFragment.newInstance("", loading);\r
                        newFragment.show(getFragmentManager(), PROGRESS_DIALOG_TAG);\r
                }\r
 \r
@@ -89,6 +91,7 @@ public class OpenRocketLoaderFragment extends Fragment {
                        OpenRocketLoaderResult result = new OpenRocketLoaderResult();\r
                        try {\r
                                OpenRocketDocument rocket = rocketLoader.load(arg0[0], new DatabaseMotorFinderWithMissingMotors());\r
+                               rocket.getDefaultConfiguration().setAllStages();\r
                                result.rocket = rocket;\r
                                result.warnings = rocketLoader.getWarnings();\r
                        } catch (RocketLoadException ex) {\r
@@ -102,10 +105,12 @@ public class OpenRocketLoaderFragment extends Fragment {
                @Override\r
                protected void onPostExecute(OpenRocketLoaderResult result) {\r
                        super.onPostExecute(result);\r
-                       AndroidLogWrapper.d(OpenRocketLoaderActivity.class,"Finished loading " + OpenRocketLoaderTask.this);\r
+                       AndroidLogWrapper.d(OpenRocketLoaderFragment.class,"Finished loading " + OpenRocketLoaderTask.this);\r
                        Fragment progress = getActivity().getSupportFragmentManager().findFragmentByTag(PROGRESS_DIALOG_TAG);\r
                        if ( progress != null ) {\r
-                               ((DialogFragment)progress).dismiss();\r
+                               // Remove the fragment instead of trying to use DialogFragment.dismiss.\r
+                               // If the dialog is now currently shown, dismiss fails.\r
+                               getFragmentManager().beginTransaction().remove(progress).commitAllowingStateLoss();\r
                        }\r
                        if ( listener != null ) {\r
                                listener.onOpenRocketFileLoaded(result);\r