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
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
MotorDao.MANUFACTURER\r
};\r
\r
- private CursorTreeAdapter mAdapter;\r
-\r
private DbAdapter mDbHelper;\r
\r
private OnMotorSelectedListener motorSelectedListener;\r
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
@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
\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
@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
}\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
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