Rename the class OpenRocketLoader to OpenRocketLoaderActivity to prevent confusion...
[debian/openrocket] / android / src / net / sf / openrocket / android / rocket / OpenRocketLoaderActivity.java
1 package net.sf.openrocket.android.rocket;\r
2 \r
3 import java.io.File;\r
4 \r
5 import net.sf.openrocket.R;\r
6 import net.sf.openrocket.aerodynamics.WarningSet;\r
7 import net.sf.openrocket.android.Application;\r
8 import android.app.AlertDialog;\r
9 import android.app.Dialog;\r
10 import android.app.ProgressDialog;\r
11 import android.content.DialogInterface;\r
12 import android.content.Intent;\r
13 import android.net.Uri;\r
14 import android.os.Bundle;\r
15 import android.support.v4.app.DialogFragment;\r
16 import android.support.v4.app.FragmentActivity;\r
17 import android.util.Log;\r
18 \r
19 public class OpenRocketLoaderActivity extends FragmentActivity {\r
20         private static final String TAG = "OpenRocketLoader";\r
21 \r
22         private ProgressDialog progress;\r
23 \r
24         @Override\r
25         protected void onCreate(Bundle savedInstanceState) {\r
26                 super.onCreate(savedInstanceState);\r
27                 setContentView(R.layout.main);\r
28                 Intent i = getIntent();\r
29                 Uri file = i.getData();\r
30                 loadOrkFile(file);\r
31         }\r
32 \r
33         @Override\r
34         protected void onDestroy() {\r
35                 if ( progress != null ) {\r
36                         if ( progress.isShowing() ) {\r
37                                 progress.dismiss();\r
38                         }\r
39                         progress = null;\r
40                 }\r
41                 super.onDestroy();\r
42         }\r
43 \r
44         private void loadOrkFile( Uri file ) {\r
45                 Log.d(TAG,"Use ork file: " + file);\r
46                 String path = file.getPath();\r
47                 File orkFile = new File(path);\r
48                 progress = ProgressDialog.show(this, "Loading file", "");\r
49 \r
50                 final OpenRocketLoaderTask task = new OpenRocketLoaderTask() {\r
51 \r
52                         /* (non-Javadoc)\r
53                          * @see android.os.AsyncTask#onPostExecute(java.lang.Object)\r
54                          */\r
55                         @Override\r
56                         protected void onPostExecute(OpenRocketLoaderResult result) {\r
57                                 super.onPostExecute(result);\r
58                                 Log.d(TAG,"Finished loading " + OpenRocketLoaderActivity.this);\r
59                                 finishedLoading(result);\r
60                         }\r
61 \r
62                 };\r
63 \r
64                 task.execute(orkFile);\r
65 \r
66         }\r
67         \r
68         private void finishedLoading(OpenRocketLoaderResult result) {\r
69                 if ( progress.isShowing() ) {\r
70                         progress.dismiss();\r
71                 }\r
72 \r
73                 WarningSet warnings = result.warnings;\r
74                 if (warnings == null || warnings.isEmpty()) {\r
75                         ((Application)OpenRocketLoaderActivity.this.getApplication()).setRocketDocument( result.rocket );\r
76                         Intent i = new Intent(this,OpenRocketViewer.class);\r
77                         startActivity(i);\r
78                         finish();\r
79                 } else {\r
80                         // TODO - Build a warning listing dialog\r
81                         DialogFragment newFragment = WarningDialogFragment.newInstance();\r
82                         newFragment.show(getSupportFragmentManager(), "dialog");\r
83                 }\r
84         }\r
85 \r
86     public void doPositiveClick() {\r
87         // Do stuff here.\r
88         Log.i("FragmentAlertDialog", "Positive click!");\r
89         finish();\r
90     }\r
91 \r
92     public void doNegativeClick() {\r
93         // Do stuff here.\r
94         Log.i("FragmentAlertDialog", "Negative click!");\r
95         finish();\r
96     }\r
97 \r
98     public static class WarningDialogFragment extends DialogFragment {\r
99 \r
100             public static WarningDialogFragment newInstance() {\r
101                 WarningDialogFragment frag = new WarningDialogFragment();\r
102                 Bundle args = new Bundle();\r
103                 frag.setArguments(args);\r
104                 return frag;\r
105             }\r
106 \r
107             @Override\r
108             public Dialog onCreateDialog(Bundle savedInstanceState) {\r
109 \r
110                 return new AlertDialog.Builder(getActivity())\r
111 //                      .setIcon(android.R.drawable.alert_dialog_icon)\r
112                         .setTitle("Warnings")\r
113                         .setPositiveButton("OK",\r
114                             new DialogInterface.OnClickListener() {\r
115                                 public void onClick(DialogInterface dialog, int whichButton) {\r
116                                     ((OpenRocketLoaderActivity)getActivity()).doPositiveClick();\r
117                                 }\r
118                             }\r
119                         )\r
120                         .setNegativeButton("Cancel",\r
121                             new DialogInterface.OnClickListener() {\r
122                                 public void onClick(DialogInterface dialog, int whichButton) {\r
123                                     ((OpenRocketLoaderActivity)getActivity()).doNegativeClick();\r
124                                 }\r
125                             }\r
126                         )\r
127                         .create();\r
128             }\r
129         }\r
130 }\r