Various changes to android application. Separate the loading of an ork file into...
[debian/openrocket] / android / src / net / sf / openrocket / android / Main.java
1 package net.sf.openrocket.android;\r
2 \r
3 import net.sf.openrocket.R;\r
4 import net.sf.openrocket.android.filebrowser.SimpleFileBrowser;\r
5 import android.content.ActivityNotFoundException;\r
6 import android.content.Intent;\r
7 import android.content.SharedPreferences;\r
8 import android.content.res.Resources;\r
9 import android.net.Uri;\r
10 import android.os.Bundle;\r
11 import android.preference.PreferenceManager;\r
12 import android.support.v4.app.FragmentActivity;\r
13 import android.view.Menu;\r
14 import android.view.MenuInflater;\r
15 import android.view.MenuItem;\r
16 import android.view.View;\r
17 \r
18 public class Main extends FragmentActivity {\r
19 \r
20         private static final int PICK_ORK_FILE_RESULT = 1;\r
21 \r
22         /** Called when the activity is first created. */\r
23         @Override\r
24         public void onCreate(Bundle icicle) {\r
25                 super.onCreate(icicle);\r
26                 setContentView(R.layout.main);\r
27         }\r
28 \r
29         @Override\r
30         public boolean onCreateOptionsMenu(Menu menu) {\r
31                 MenuInflater inflater = getMenuInflater();\r
32                 inflater.inflate(R.menu.main_menu, menu);\r
33                 return true;\r
34         }\r
35 \r
36         @Override\r
37         public boolean onOptionsItemSelected(MenuItem item) {\r
38                 switch( item.getItemId() ) {\r
39                 case R.id.main_menu_motor:\r
40                         ActivityHelpers.browseMotors(this);\r
41                         return true;\r
42                 case R.id.main_menu_open:\r
43                         pickOrkFiles();\r
44                         return true;\r
45                 case R.id.main_menu_preferences:\r
46                         ActivityHelpers.startPreferences(this);\r
47                         return true;\r
48                 }\r
49                 return super.onOptionsItemSelected(item);\r
50         }\r
51 \r
52         /* (non-Javadoc)\r
53          * @see android.app.Activity#onActivityResult(int, int, android.content.Intent)\r
54          */\r
55         @Override\r
56         protected void onActivityResult(int requestCode, int resultCode, Intent data) {\r
57                 switch ( requestCode ) {\r
58                 case PICK_ORK_FILE_RESULT:\r
59                         if(resultCode==RESULT_OK){\r
60                                 Uri file = data.getData();\r
61                                 Intent intent = new Intent(Intent.ACTION_VIEW);\r
62                                 intent.setData(file);\r
63                                 startActivity(intent);\r
64                         }\r
65                         break;\r
66                 }\r
67                 super.onActivityResult(requestCode, resultCode, data);\r
68         }\r
69 \r
70         private void pickOrkFiles( ) {\r
71                 Resources resources = this.getResources();\r
72                 String key = resources.getString(R.string.PreferenceUseInternalFileBrowserOption);\r
73                 SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);\r
74 \r
75                 boolean useinternalbrowser = pref.getBoolean(key, false);\r
76 \r
77                 if ( useinternalbrowser ) {\r
78                         Intent intent = new Intent(Main.this, SimpleFileBrowser.class);\r
79                         startActivityForResult(intent,PICK_ORK_FILE_RESULT);\r
80                 } else {\r
81                         try {\r
82                                 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);\r
83                                 intent.setType("file/*");\r
84                                 startActivityForResult(intent,PICK_ORK_FILE_RESULT);\r
85                         } catch ( ActivityNotFoundException ex ) { \r
86                                 // No activity for ACTION_GET_CONTENT  use internal file browser\r
87                                 // update the preference value.\r
88                                 pref.edit().putBoolean(key, false).commit();\r
89                                 // fire our browser\r
90                                 Intent intent = new Intent(Main.this, SimpleFileBrowser.class);\r
91                                 startActivityForResult(intent,PICK_ORK_FILE_RESULT);\r
92                         }\r
93                 }               \r
94         }\r
95         public void pickOrkFiles( View v ) {\r
96                 pickOrkFiles();\r
97         }\r
98 \r
99         public void browseMotors( View v ) {\r
100                 ActivityHelpers.browseMotors(this);\r
101         }\r
102 \r
103 }\r