Attempt to clean up the cursor closed problems by managing the cursor in onResume...
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Thu, 23 Feb 2012 17:42:08 +0000 (17:42 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Thu, 23 Feb 2012 17:42:08 +0000 (17:42 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@442 180e2498-e6e9-4542-8430-84ac67f01cd8

android/src/net/sf/openrocket/android/motor/MotorListFragment.java

index b875145971d982eaaac62db7d13574564bf0c195..6ef8fdf46e9a1eaf487392b13f180383e581487e 100644 (file)
@@ -137,17 +137,13 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
        public void onViewCreated(View view, Bundle savedInstanceState) {\r
                super.onViewCreated(view, savedInstanceState);\r
 \r
-               refreshData();\r
-\r
                registerForContextMenu(getExpandableListView());\r
 \r
        }\r
 \r
+       \r
        @Override\r
-       public void onAttach(Activity activity) {\r
-               super.onAttach(activity);\r
-               mDbHelper = new DbAdapter(getActivity());\r
-               mDbHelper.open();\r
+       public void onResume() {\r
 \r
                Resources resources = this.getResources();\r
                groupColumnPreferenceKey = resources.getString(R.string.PreferenceMotorBrowserGroupingOption);\r
@@ -157,22 +153,15 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
 \r
                pref.registerOnSharedPreferenceChangeListener(this);\r
 \r
+               Activity activity = getActivity();\r
                if ( activity instanceof OnMotorSelectedListener ) {\r
                        motorSelectedListener = (OnMotorSelectedListener) activity;\r
                }\r
 \r
-               Cursor motorCounter = mDbHelper.getMotorDao().fetchAllMotors();\r
-               int motorCount = motorCounter.getCount();\r
-               motorCounter.close();\r
-               \r
-               if ( motorCount == 0 ) {\r
-                       AlertDialog.Builder builder = new AlertDialog.Builder(activity);\r
-                       builder.setTitle("No Motors Found");\r
-                       builder.setMessage("Motors can be downloaded from thrustcurve");\r
-                       builder.setCancelable(true);\r
-                       builder.create().show();\r
-               }\r
-               \r
+               refreshData();\r
+\r
+               super.onResume();\r
+\r
        }\r
 \r
        @Override\r
@@ -222,8 +211,8 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
        }\r
 \r
        @Override\r
-       public void onDetach() {\r
-               super.onDetach();\r
+       public void onPause() {\r
+               super.onPause();\r
                SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getActivity());\r
                pref.unregisterOnSharedPreferenceChangeListener(this);\r
 \r
@@ -247,6 +236,23 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
        }\r
 \r
        public void refreshData() {\r
+               if ( mDbHelper == null ) {\r
+                       mDbHelper = new DbAdapter(getActivity());\r
+               }\r
+               mDbHelper.open();\r
+\r
+               Cursor motorCounter = mDbHelper.getMotorDao().fetchAllMotors();\r
+               int motorCount = motorCounter.getCount();\r
+               motorCounter.close();\r
+               \r
+               if ( motorCount == 0 ) {\r
+                       AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());\r
+                       builder.setTitle("No Motors Found");\r
+                       builder.setMessage("Motors can be downloaded from thrustcurve");\r
+                       builder.setCancelable(true);\r
+                       builder.create().show();\r
+               }\r
+\r
                Cursor motorCursor = mDbHelper.getMotorDao().fetchGroups(groupColumn);\r
                MotorHierarchicalListAdapter mAdapter = new MotorHierarchicalListAdapter( \r
                                getActivity(),\r