\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
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
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
@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
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
+ rocket.getDefaultConfiguration().setAllStages();\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
@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