create changelog entry
[debian/openrocket] / android / src / net / sf / openrocket / android / motor / MotorListFragment.java
index c480cbb85b3c76c63f89a139a7150f5eb5e444d3..efe5f40f16ad7e788604785c194ebdd09f4535f9 100644 (file)
@@ -6,6 +6,7 @@ import net.sf.openrocket.android.db.MotorDao;
 import net.sf.openrocket.android.util.AndroidLogWrapper;\r
 import net.sf.openrocket.android.util.PersistentExpandableListFragment;\r
 import android.app.Activity;\r
+import android.app.AlertDialog;\r
 import android.content.Context;\r
 import android.content.SharedPreferences;\r
 import android.content.res.Resources;\r
@@ -20,16 +21,11 @@ import android.view.ContextMenu.ContextMenuInfo;
 import android.view.Menu;\r
 import android.view.MenuItem;\r
 import android.view.View;\r
-import android.widget.CursorTreeAdapter;\r
 import android.widget.ExpandableListView;\r
 import android.widget.ResourceCursorTreeAdapter;\r
 import android.widget.TextView;\r
 \r
 \r
-/*\r
- * TODO - make this work with PersistentExpandableListFragment.\r
- * \r
- */\r
 public class MotorListFragment extends PersistentExpandableListFragment\r
 implements SharedPreferences.OnSharedPreferenceChangeListener\r
 {\r
@@ -55,8 +51,6 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
                MotorDao.MANUFACTURER\r
        };\r
 \r
-       private CursorTreeAdapter mAdapter;\r
-\r
        private DbAdapter mDbHelper;\r
 \r
        private OnMotorSelectedListener motorSelectedListener;\r
@@ -119,7 +113,7 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
                        TextView v = (TextView) view.findViewById(R.id.motorGroup);\r
                        if ( MotorDao.DIAMETER.equals(groupColumn)) {\r
                                double d = cursor.getDouble( cursor.getColumnIndex(groupColumn));\r
-                               v.setText( String.valueOf(Math.round(d * 1000.0)) );\r
+                               v.setText( String.valueOf(Math.round(d * 1000.0)) + " mm");\r
                        } else {\r
                                v.setText( cursor.getString( cursor.getColumnIndex(groupColumn)));\r
                        }\r
@@ -138,17 +132,14 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
        @Override\r
        public void onViewCreated(View view, Bundle savedInstanceState) {\r
                super.onViewCreated(view, savedInstanceState);\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
@@ -158,10 +149,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
+               refreshData();\r
+\r
+               super.onResume();\r
+\r
        }\r
 \r
        @Override\r
@@ -204,7 +200,6 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
        @Override\r
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {\r
                super.onChildClick(parent, v, groupPosition, childPosition, id);\r
-               //Intent i = new Intent(this, BurnPlotActivity.class);\r
                if( motorSelectedListener != null ) {\r
                        motorSelectedListener.onMotorSelected(id);\r
                }\r
@@ -212,16 +207,11 @@ 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
-               // Null out the group cursor. This will cause the group cursor and all of the child cursors\r
-               // to be closed.\r
-               mAdapter.changeCursor(null);\r
-               mAdapter = null;\r
-\r
                mDbHelper.close();\r
        }\r
 \r
@@ -240,20 +230,32 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
                groupColumn = groupColumns[index];\r
 \r
        }\r
-       private void refreshData() {\r
-               Cursor motorCursor = mDbHelper.getMotorDao().fetchGroups(groupColumn);\r
-               if (mAdapter != null ) {\r
-                       mAdapter.changeCursor(motorCursor);\r
+\r
+       public void refreshData() {\r
+               if ( mDbHelper == null ) {\r
+                       mDbHelper = new DbAdapter(getActivity());\r
                }\r
-               else {\r
-                       // Set up our adapter\r
-                       mAdapter = new MotorHierarchicalListAdapter( \r
-                                       getActivity(),\r
-                                       motorCursor,\r
-                                       R.layout.motor_list_group,\r
-                                       R.layout.motor_list_child);\r
-                       setListAdapter(mAdapter);\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
 \r
+               Cursor motorCursor = mDbHelper.getMotorDao().fetchGroups(groupColumn);\r
+               MotorHierarchicalListAdapter mAdapter = new MotorHierarchicalListAdapter( \r
+                               getActivity(),\r
+                               motorCursor,\r
+                               R.layout.motor_list_group,\r
+                               R.layout.motor_list_child);\r
+               setListAdapter(mAdapter);\r
+               onContentChanged();\r
+       }\r
 }\r