Changed cursor management after seeing problems in Honeycomb. Stop using managed cursors and use changeCursor.

This commit is contained in:
Kevin Ruland 2012-02-05 02:47:25 +00:00
parent 125162bcbe
commit 9b56d151d2

View File

@ -5,10 +5,8 @@ import net.sf.openrocket.android.db.DbAdapter;
import net.sf.openrocket.android.db.MotorDao;
import net.sf.openrocket.android.util.AndroidLogWrapper;
import net.sf.openrocket.android.util.PersistentExpandableListFragment;
import net.sf.openrocket.motor.Motor;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.database.Cursor;
@ -80,10 +78,7 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
protected Cursor getChildrenCursor(Cursor arg0) {
AndroidLogWrapper.d(MotorListFragment.class,"getChildrenCursor");
String group = arg0.getString(arg0.getColumnIndex(groupColumn));
AndroidLogWrapper.d(MotorListFragment.class," for: "+ groupColumn + " = " + group);
Cursor c = mDbHelper.getMotorDao().fetchAllInGroups(groupColumn,group);
AndroidLogWrapper.d(MotorListFragment.class," got cursor");
getActivity().startManagingCursor(c);
return c;
}
@ -227,17 +222,19 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
}
private void refreshData() {
if (mAdapter != null ) {
mAdapter.changeCursor(null);
}
Cursor motorCursor = mDbHelper.getMotorDao().fetchGroups(groupColumn);
getActivity().startManagingCursor(motorCursor);
// Set up our adapter
mAdapter = new MotorHierarchicalListAdapter(
getActivity(),
motorCursor,
R.layout.motor_list_group,
R.layout.motor_list_child);
setListAdapter(mAdapter);
if (mAdapter != null ) {
mAdapter.changeCursor(motorCursor);
}
else {
// Set up our adapter
mAdapter = new MotorHierarchicalListAdapter(
getActivity(),
motorCursor,
R.layout.motor_list_group,
R.layout.motor_list_child);
setListAdapter(mAdapter);
}
}
}