Modify the OpenRocketTask to send both the WarningSet and OpenRocketDocument back...
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 25 Jan 2012 17:33:22 +0000 (17:33 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 25 Jan 2012 17:33:22 +0000 (17:33 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@369 180e2498-e6e9-4542-8430-84ac67f01cd8

android/src/net/sf/openrocket/android/rocket/OpenRocketLoader.java
android/src/net/sf/openrocket/android/rocket/OpenRocketLoaderResult.java [new file with mode: 0644]
android/src/net/sf/openrocket/android/rocket/OpenRocketLoaderTask.java

index ee35ba00dd60aaad735cedf1e74b8bd4ef48e168..dbdd01c1d08300c706a3be0eb95ee66984cbe4f3 100644 (file)
@@ -3,17 +3,18 @@ package net.sf.openrocket.android.rocket;
 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
@@ -52,11 +53,10 @@ public class OpenRocketLoader extends FragmentActivity {
                         * @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
@@ -65,15 +65,66 @@ public class OpenRocketLoader extends FragmentActivity {
 \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
diff --git a/android/src/net/sf/openrocket/android/rocket/OpenRocketLoaderResult.java b/android/src/net/sf/openrocket/android/rocket/OpenRocketLoaderResult.java
new file mode 100644 (file)
index 0000000..ffb3539
--- /dev/null
@@ -0,0 +1,11 @@
+package net.sf.openrocket.android.rocket;\r
+\r
+import net.sf.openrocket.aerodynamics.WarningSet;\r
+import net.sf.openrocket.document.OpenRocketDocument;\r
+\r
+public class OpenRocketLoaderResult {\r
+\r
+       public WarningSet warnings;\r
+       public OpenRocketDocument rocket;\r
+       \r
+}\r
index aef2ace481b26875900f53c48eda8d6c03d4af2f..637d79e1279c978d03e1d40152d7ac96daf5203f 100644 (file)
@@ -8,7 +8,7 @@ import net.sf.openrocket.file.openrocket.OpenRocketLoader;
 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
@@ -16,13 +16,16 @@ public class OpenRocketLoaderTask extends AsyncTask<File, Void, OpenRocketDocume
         * @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