Change the initial screen handling and add file load to OpenRocketViewer activity...
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 13 Jun 2012 16:37:18 +0000 (16:37 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 13 Jun 2012 16:37:18 +0000 (16:37 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@775 180e2498-e6e9-4542-8430-84ac67f01cd8

android/AndroidManifest.xml
android/res/menu/rocket_viewer_option_menu.xml
android/res/values/strings.xml
android/res/xml/preferences.xml
android/src/net/sf/openrocket/android/Main.java
android/src/net/sf/openrocket/android/rocket/OpenRocketLoaderActivity.java
android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java

index 1c9c3a11998daa517939e3e06edf48a8b545b595..eaab1308bdcebf3ddef9ea6877b0ac1162196fbc 100644 (file)
 \r
                 <category android:name="android.intent.category.LAUNCHER" />\r
             </intent-filter>\r
-        </activity>\r
-        <activity\r
-            android:name=".android.rocket.OpenRocketLoaderActivity"\r
-            android:theme="@style/AppTheme.NoActionBar" >\r
-\r
             <!--\r
                  I don't understand why I need to have two different intent filters. \r
                                Combining the <data> elements into a single field did not result in a working \r
index 9f4d709ec898d8193a83440c39a8dcd62da0aa56..35f58532951f9fe61da46aad13154b823602b8b6 100644 (file)
@@ -1,6 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>\r
 <menu xmlns:android="http://schemas.android.com/apk/res/android" >\r
 \r
+    <item\r
+        android:id="@+id/menu_load"\r
+        android:title="@string/load"/>\r
     <item\r
         android:id="@+id/menu_save"\r
         android:title="@string/save"/>\r
index ae4102fcf9d7b16dbe8b5ec1ad5d9defa6d27cfc..d7f1e8217ee65645ad204c281126ed98fa5dfaa4 100644 (file)
@@ -2,7 +2,8 @@
 <resources>\r
 \r
     <string name="app_name">OpenRocket</string>\r
-    <string name="version">version 12.07-a1</string>\r
+    <string name="version">version 12.07-b2</string>\r
+    <string name="load">Load</string>\r
     <string name="save">Save</string>\r
     <string name="Add">Add</string>\r
     <string name="MotorListTitle">Motor List</string>\r
index 2c1a667f456e4b2e686b97f597cb91139d63247c..7e27894f384f172e8df778e0f04a0475d61b9cbc 100644 (file)
@@ -12,7 +12,7 @@
         android:title="@string/motorbrowsergrouptitle" />
 
     <CheckBoxPreference
-        android:defaultValue="false"
+        android:defaultValue="true"
         android:title="@string/useinternalfilebrowsertitle"
         android:key="@string/PreferenceUseInternalFileBrowserOption"
         android:summary="@string/useinternalfilebrowsersummary"
index 74503794eecaf50e4557bbc8931243d98f389a53..5a071cadbbd5173b184723ad7b3bac241b883ad6 100644 (file)
@@ -1,30 +1,27 @@
 package net.sf.openrocket.android;\r
 \r
 import net.sf.openrocket.R;\r
-import net.sf.openrocket.android.filebrowser.SimpleFileBrowser;\r
-import android.content.ActivityNotFoundException;\r
-import android.content.Intent;\r
-import android.content.SharedPreferences;\r
-import android.content.res.Resources;\r
-import android.net.Uri;\r
+import net.sf.openrocket.android.rocket.OpenRocketLoaderActivity;\r
 import android.os.Bundle;\r
-import android.preference.PreferenceManager;\r
 import android.view.View;\r
 import android.widget.Button;\r
 \r
-import com.actionbarsherlock.app.SherlockFragmentActivity;\r
 import com.actionbarsherlock.view.Menu;\r
 import com.actionbarsherlock.view.MenuInflater;\r
 import com.actionbarsherlock.view.MenuItem;\r
 \r
-public class Main extends SherlockFragmentActivity {\r
+public class Main extends OpenRocketLoaderActivity {\r
 \r
-       private static final int PICK_ORK_FILE_RESULT = 1;\r
 \r
        /** Called when the activity is first created. */\r
        @Override\r
        public void onCreate(Bundle icicle) {\r
                super.onCreate(icicle);\r
+               // Rocket already loaded.  go to viewer.\r
+               if ( CurrentRocketHolder.getCurrentRocket().getRocketDocument() != null ) {\r
+                       moveOnToViewer();\r
+                       finish();\r
+               }\r
                setContentView(R.layout.main);\r
                ((Button) findViewById(R.id.main_open)).setOnClickListener(\r
                                new View.OnClickListener() {\r
@@ -69,55 +66,4 @@ public class Main extends SherlockFragmentActivity {
                return super.onOptionsItemSelected(item);\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see android.app.Activity#onActivityResult(int, int, android.content.Intent)\r
-        */\r
-       @Override\r
-       protected void onActivityResult(int requestCode, int resultCode, Intent data) {\r
-               switch ( requestCode ) {\r
-               case PICK_ORK_FILE_RESULT:\r
-                       if(resultCode==RESULT_OK){\r
-                               Uri file = data.getData();\r
-                               Intent intent = new Intent(Intent.ACTION_VIEW);\r
-                               intent.setData(file);\r
-                               startActivity(intent);\r
-                       }\r
-                       break;\r
-               }\r
-               super.onActivityResult(requestCode, resultCode, data);\r
-       }\r
-\r
-       private void pickOrkFiles( ) {\r
-               Resources resources = this.getResources();\r
-               String key = resources.getString(R.string.PreferenceUseInternalFileBrowserOption);\r
-               SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);\r
-\r
-               boolean useinternalbrowser = pref.getBoolean(key, false);\r
-\r
-               if ( useinternalbrowser ) {\r
-                       Intent intent = new Intent(Main.this, SimpleFileBrowser.class);\r
-                       startActivityForResult(intent,PICK_ORK_FILE_RESULT);\r
-               } else {\r
-                       try {\r
-                               Intent intent = new Intent(Intent.ACTION_GET_CONTENT);\r
-                               intent.setType("file/*");\r
-                               startActivityForResult(intent,PICK_ORK_FILE_RESULT);\r
-                       } catch ( ActivityNotFoundException ex ) { \r
-                               // No activity for ACTION_GET_CONTENT  use internal file browser\r
-                               // update the preference value.\r
-                               pref.edit().putBoolean(key, false).commit();\r
-                               // fire our browser\r
-                               Intent intent = new Intent(Main.this, SimpleFileBrowser.class);\r
-                               startActivityForResult(intent,PICK_ORK_FILE_RESULT);\r
-                       }\r
-               }               \r
-       }\r
-       public void pickOrkFiles( View v ) {\r
-               pickOrkFiles();\r
-       }\r
-\r
-       public void browseMotors( View v ) {\r
-               ActivityHelpers.browseMotors(this);\r
-       }\r
-\r
 }\r
index 35d3701cd51f2a414c62eadba22a6f48fe7db7f4..606d4a06d57864c6d4521ea5c72fa3ee4637cbe5 100644 (file)
@@ -6,16 +6,21 @@ import java.util.Set;
 import net.sf.openrocket.R;\r
 import net.sf.openrocket.aerodynamics.WarningSet;\r
 import net.sf.openrocket.android.CurrentRocketHolder;\r
+import net.sf.openrocket.android.filebrowser.SimpleFileBrowser;\r
 import net.sf.openrocket.android.thrustcurve.TCMissingMotorDownloadAction;\r
 import net.sf.openrocket.android.thrustcurve.TCQueryAction;\r
 import net.sf.openrocket.android.util.AndroidLogWrapper;\r
 import net.sf.openrocket.motor.ThrustCurveMotorPlaceholder;\r
 import net.sf.openrocket.rocketcomponent.Rocket;\r
 import android.app.AlertDialog;\r
+import android.content.ActivityNotFoundException;\r
 import android.content.DialogInterface;\r
 import android.content.Intent;\r
+import android.content.SharedPreferences;\r
+import android.content.res.Resources;\r
 import android.net.Uri;\r
 import android.os.Bundle;\r
+import android.preference.PreferenceManager;\r
 import android.support.v4.app.DialogFragment;\r
 \r
 import com.actionbarsherlock.app.SherlockFragmentActivity;\r
@@ -24,15 +29,18 @@ public class OpenRocketLoaderActivity extends SherlockFragmentActivity
 implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnOpenRocketFileLoaded\r
 {\r
 \r
+       private static final int PICK_ORK_FILE_RESULT = 1;\r
+\r
        private final static String MISSING_MOTOR_DIAG_FRAGMENT_TAG = "missingmotordialog";\r
        private final static String MISSING_MOTOR_DOWNLOAD_FRAGMENT_TAG = "missingmotortask";\r
 \r
+       private boolean isLoading = false;\r
+\r
        @Override\r
-       protected void onCreate(Bundle savedInstanceState) {\r
-               super.onCreate(savedInstanceState);\r
-               setContentView(R.layout.main);\r
-               if ( savedInstanceState == null || savedInstanceState.getBoolean("isLoading", false) == false ) {\r
-                       Intent i = getIntent();\r
+       protected void onPostCreate(Bundle savedInstanceState) {\r
+               super.onPostCreate(savedInstanceState);\r
+               Intent i = getIntent();\r
+               if (Intent.ACTION_VIEW.equals(i.getAction()) && i.getData() != null ) {\r
                        Uri file = i.getData();\r
                        loadOrkFile(file);\r
                } else {\r
@@ -42,10 +50,54 @@ implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnO
        @Override\r
        protected void onSaveInstanceState(Bundle outState) {\r
                super.onSaveInstanceState(outState);\r
-               outState.putBoolean("isLoading", true);\r
+               outState.putBoolean("isLoading", isLoading);\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see android.app.Activity#onActivityResult(int, int, android.content.Intent)\r
+        */\r
+       @Override\r
+       protected void onActivityResult(int requestCode, int resultCode, Intent data) {\r
+               switch ( requestCode ) {\r
+               case PICK_ORK_FILE_RESULT:\r
+                       if(resultCode==RESULT_OK){\r
+                               Uri file = data.getData();\r
+                               loadOrkFile(file);\r
+                       }\r
+                       break;\r
+               default:\r
+                       super.onActivityResult(requestCode, resultCode, data);\r
+               }\r
+       }\r
+\r
+       protected void pickOrkFiles( ) {\r
+               Resources resources = this.getResources();\r
+               String key = resources.getString(R.string.PreferenceUseInternalFileBrowserOption);\r
+               SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);\r
+\r
+               boolean useinternalbrowser = pref.getBoolean(key, true);\r
+\r
+               if ( useinternalbrowser ) {\r
+                       Intent intent = new Intent(OpenRocketLoaderActivity.this, SimpleFileBrowser.class);\r
+                       startActivityForResult(intent,PICK_ORK_FILE_RESULT);\r
+               } else {\r
+                       try {\r
+                               Intent intent = new Intent(Intent.ACTION_GET_CONTENT);\r
+                               intent.setType("file/*");\r
+                               startActivityForResult(intent,PICK_ORK_FILE_RESULT);\r
+                       } catch ( ActivityNotFoundException ex ) { \r
+                               // No activity for ACTION_GET_CONTENT  use internal file browser\r
+                               // update the preference value.\r
+                               pref.edit().putBoolean(key, false).commit();\r
+                               // fire our browser\r
+                               Intent intent = new Intent(OpenRocketLoaderActivity.this, SimpleFileBrowser.class);\r
+                               startActivityForResult(intent,PICK_ORK_FILE_RESULT);\r
+                       }\r
+               }               \r
        }\r
 \r
        private void loadOrkFile( Uri file ) {\r
+               isLoading = true;\r
                CurrentRocketHolder.getCurrentRocket().setFileUri( file );\r
                AndroidLogWrapper.d(OpenRocketLoaderActivity.class,"Use ork file: " + file);\r
                String path = file.getPath();\r
@@ -62,8 +114,9 @@ implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnO
         * @param result\r
         */\r
        public void onOpenRocketFileLoaded(OpenRocketLoaderResult result) {\r
+               isLoading = false;\r
                if ( result.loadingError != null ) {\r
-                       \r
+\r
                        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);\r
                        dialogBuilder.setTitle("Error Loading File" );\r
                        dialogBuilder.setMessage( result.loadingError.getLocalizedMessage());\r
index 98c379e721886bbe0e8103df40427ac0e0941344..2ab9b63e2e9445107ae9030abfa06d0c1839f1d4 100644 (file)
@@ -21,12 +21,11 @@ import android.support.v4.app.FragmentTransaction;
 import android.support.v4.view.ViewPager;\r
 import android.view.View;\r
 \r
-import com.actionbarsherlock.app.SherlockFragmentActivity;\r
 import com.actionbarsherlock.view.Menu;\r
 import com.actionbarsherlock.view.MenuInflater;\r
 import com.actionbarsherlock.view.MenuItem;\r
 \r
-public class OpenRocketViewer extends SherlockFragmentActivity\r
+public class OpenRocketViewer extends OpenRocketLoaderActivity\r
 implements Simulations.OnSimulationSelectedListener\r
 {\r
 \r
@@ -70,6 +69,10 @@ implements Simulations.OnSimulationSelectedListener
        public boolean onMenuItemSelected(int featureId, MenuItem item) {\r
                AndroidLogWrapper.d(OpenRocketViewer.class,"onMenuItemSelected" + item.getItemId());\r
                switch(item.getItemId()) {\r
+               case R.id.menu_load:\r
+                       // FIXME - Might want to prompt for save here.\r
+                       pickOrkFiles();\r
+                       return true;\r
                case R.id.menu_save:\r
                        // FIXME - Probably want to open a dialog here.\r
                        try {\r