import java.io.File;\r
\r
import net.sf.openrocket.R;\r
+import net.sf.openrocket.aerodynamics.WarningSet;\r
import net.sf.openrocket.android.Application;\r
-import net.sf.openrocket.document.OpenRocketDocument;\r
+import android.app.AlertDialog;\r
+import android.app.Dialog;\r
import android.app.ProgressDialog;\r
-import android.content.Context;\r
+import android.content.DialogInterface;\r
import android.content.Intent;\r
import android.net.Uri;\r
import android.os.Bundle;\r
+import android.support.v4.app.DialogFragment;\r
import android.support.v4.app.FragmentActivity;\r
-import android.util.AttributeSet;\r
import android.util.Log;\r
-import android.view.View;\r
\r
public class OpenRocketLoader extends FragmentActivity {\r
private static final String TAG = "OpenRocketLoader";\r
* @see android.os.AsyncTask#onPostExecute(java.lang.Object)\r
*/\r
@Override\r
- protected void onPostExecute(OpenRocketDocument result) {\r
+ protected void onPostExecute(OpenRocketLoaderResult result) {\r
super.onPostExecute(result);\r
- ((Application)OpenRocketLoader.this.getApplication()).setRocketDocument( result );\r
Log.d(TAG,"Finished loading " + OpenRocketLoader.this);\r
- finishedLoading();\r
+ finishedLoading(result);\r
}\r
\r
};\r
\r
}\r
\r
- private void finishedLoading() {\r
+ private void finishedLoading(OpenRocketLoaderResult result) {\r
if ( progress.isShowing() ) {\r
progress.dismiss();\r
}\r
- \r
- Intent i = new Intent(this,OpenRocketViewer.class);\r
- startActivity(i);\r
- finish();\r
+\r
+ WarningSet warnings = result.warnings;\r
+ if (warnings == null || warnings.isEmpty()) {\r
+ ((Application)OpenRocketLoader.this.getApplication()).setRocketDocument( result.rocket );\r
+ Intent i = new Intent(this,OpenRocketViewer.class);\r
+ startActivity(i);\r
+ finish();\r
+ } else {\r
+ // TODO - Build a warning listing dialog\r
+ DialogFragment newFragment = WarningDialogFragment.newInstance();\r
+ newFragment.show(getSupportFragmentManager(), "dialog");\r
+ }\r
}\r
\r
+ public void doPositiveClick() {\r
+ // Do stuff here.\r
+ Log.i("FragmentAlertDialog", "Positive click!");\r
+ finish();\r
+ }\r
+\r
+ public void doNegativeClick() {\r
+ // Do stuff here.\r
+ Log.i("FragmentAlertDialog", "Negative click!");\r
+ finish();\r
+ }\r
+\r
+ public static class WarningDialogFragment extends DialogFragment {\r
\r
+ public static WarningDialogFragment newInstance() {\r
+ WarningDialogFragment frag = new WarningDialogFragment();\r
+ Bundle args = new Bundle();\r
+ frag.setArguments(args);\r
+ return frag;\r
+ }\r
+\r
+ @Override\r
+ public Dialog onCreateDialog(Bundle savedInstanceState) {\r
+\r
+ return new AlertDialog.Builder(getActivity())\r
+// .setIcon(android.R.drawable.alert_dialog_icon)\r
+ .setTitle("Warnings")\r
+ .setPositiveButton("OK",\r
+ new DialogInterface.OnClickListener() {\r
+ public void onClick(DialogInterface dialog, int whichButton) {\r
+ ((OpenRocketLoader)getActivity()).doPositiveClick();\r
+ }\r
+ }\r
+ )\r
+ .setNegativeButton("Cancel",\r
+ new DialogInterface.OnClickListener() {\r
+ public void onClick(DialogInterface dialog, int whichButton) {\r
+ ((OpenRocketLoader)getActivity()).doNegativeClick();\r
+ }\r
+ }\r
+ )\r
+ .create();\r
+ }\r
+ }\r
}\r
import android.os.AsyncTask;\r
import android.util.Log;\r
\r
-public class OpenRocketLoaderTask extends AsyncTask<File, Void, OpenRocketDocument> {\r
+public class OpenRocketLoaderTask extends AsyncTask<File, Void, OpenRocketLoaderResult> {\r
\r
private final static String TAG = "OpenRocketLoaderTask";\r
\r
* @see android.os.AsyncTask#doInBackground(Params[])\r
*/\r
@Override\r
- protected OpenRocketDocument doInBackground(File... arg0) {\r
+ protected OpenRocketLoaderResult doInBackground(File... arg0) {\r
Log.d(TAG,"doInBackgroud");\r
\r
OpenRocketLoader rocketLoader = new OpenRocketLoader();\r
try {\r
+ OpenRocketLoaderResult result = new OpenRocketLoaderResult();\r
OpenRocketDocument rocket = rocketLoader.load(arg0[0]);\r
- return rocket;\r
+ result.rocket = rocket;\r
+ result.warnings = result.warnings;\r
+ return result;\r
}\r
catch( RocketLoadException ex ) {\r
Log.e(TAG, "doInBackground rocketLaoder.load threw", ex);\r