Changed cursor management after seeing problems in Honeycomb. Stop using managed cursors and use changeCursor.
This commit is contained in:
parent
125162bcbe
commit
9b56d151d2
@ -5,10 +5,8 @@ import net.sf.openrocket.android.db.DbAdapter;
|
|||||||
import net.sf.openrocket.android.db.MotorDao;
|
import net.sf.openrocket.android.db.MotorDao;
|
||||||
import net.sf.openrocket.android.util.AndroidLogWrapper;
|
import net.sf.openrocket.android.util.AndroidLogWrapper;
|
||||||
import net.sf.openrocket.android.util.PersistentExpandableListFragment;
|
import net.sf.openrocket.android.util.PersistentExpandableListFragment;
|
||||||
import net.sf.openrocket.motor.Motor;
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
@ -35,13 +33,13 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
|
|||||||
public interface OnMotorSelectedListener {
|
public interface OnMotorSelectedListener {
|
||||||
public void onMotorSelected( long motorId );
|
public void onMotorSelected( long motorId );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MotorListFragment newInstance( ) {
|
public static MotorListFragment newInstance( ) {
|
||||||
|
|
||||||
MotorListFragment frag = new MotorListFragment();
|
MotorListFragment frag = new MotorListFragment();
|
||||||
return frag;
|
return frag;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final int CONTEXTMENU_DELETE = Menu.FIRST+1;
|
private static final int CONTEXTMENU_DELETE = Menu.FIRST+1;
|
||||||
|
|
||||||
private String groupColumnPreferenceKey;
|
private String groupColumnPreferenceKey;
|
||||||
@ -57,9 +55,9 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
|
|||||||
private CursorTreeAdapter mAdapter;
|
private CursorTreeAdapter mAdapter;
|
||||||
|
|
||||||
private DbAdapter mDbHelper;
|
private DbAdapter mDbHelper;
|
||||||
|
|
||||||
private OnMotorSelectedListener motorSelectedListener;
|
private OnMotorSelectedListener motorSelectedListener;
|
||||||
|
|
||||||
public void setMotorSelectedListener(
|
public void setMotorSelectedListener(
|
||||||
OnMotorSelectedListener motorSelectedListener) {
|
OnMotorSelectedListener motorSelectedListener) {
|
||||||
this.motorSelectedListener = motorSelectedListener;
|
this.motorSelectedListener = motorSelectedListener;
|
||||||
@ -80,10 +78,7 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
|
|||||||
protected Cursor getChildrenCursor(Cursor arg0) {
|
protected Cursor getChildrenCursor(Cursor arg0) {
|
||||||
AndroidLogWrapper.d(MotorListFragment.class,"getChildrenCursor");
|
AndroidLogWrapper.d(MotorListFragment.class,"getChildrenCursor");
|
||||||
String group = arg0.getString(arg0.getColumnIndex(groupColumn));
|
String group = arg0.getString(arg0.getColumnIndex(groupColumn));
|
||||||
AndroidLogWrapper.d(MotorListFragment.class," for: "+ groupColumn + " = " + group);
|
|
||||||
Cursor c = mDbHelper.getMotorDao().fetchAllInGroups(groupColumn,group);
|
Cursor c = mDbHelper.getMotorDao().fetchAllInGroups(groupColumn,group);
|
||||||
AndroidLogWrapper.d(MotorListFragment.class," got cursor");
|
|
||||||
getActivity().startManagingCursor(c);
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,16 +93,16 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
|
|||||||
@Override
|
@Override
|
||||||
protected void bindChildView(View arg0, Context arg1, Cursor arg2,
|
protected void bindChildView(View arg0, Context arg1, Cursor arg2,
|
||||||
boolean arg3) {
|
boolean arg3) {
|
||||||
|
|
||||||
TextView manu = (TextView) arg0.findViewById(R.id.motorChildManu);
|
TextView manu = (TextView) arg0.findViewById(R.id.motorChildManu);
|
||||||
manu.setText( arg2.getString(arg2.getColumnIndex(MotorDao.MANUFACTURER)));
|
manu.setText( arg2.getString(arg2.getColumnIndex(MotorDao.MANUFACTURER)));
|
||||||
|
|
||||||
TextView desig = (TextView) arg0.findViewById(R.id.motorChildName);
|
TextView desig = (TextView) arg0.findViewById(R.id.motorChildName);
|
||||||
desig.setText( arg2.getString(arg2.getColumnIndex(MotorDao.DESIGNATION)));
|
desig.setText( arg2.getString(arg2.getColumnIndex(MotorDao.DESIGNATION)));
|
||||||
|
|
||||||
TextView delays = (TextView) arg0.findViewById(R.id.motorChildDelays);
|
TextView delays = (TextView) arg0.findViewById(R.id.motorChildDelays);
|
||||||
delays.setText( arg2.getString(arg2.getColumnIndex(MotorDao.DELAYS)));
|
delays.setText( arg2.getString(arg2.getColumnIndex(MotorDao.DELAYS)));
|
||||||
|
|
||||||
TextView totImpulse = (TextView) arg0.findViewById(R.id.motorChildImpulse);
|
TextView totImpulse = (TextView) arg0.findViewById(R.id.motorChildImpulse);
|
||||||
totImpulse.setText( arg2.getString(arg2.getColumnIndex(MotorDao.TOTAL_IMPULSE)));
|
totImpulse.setText( arg2.getString(arg2.getColumnIndex(MotorDao.TOTAL_IMPULSE)));
|
||||||
}
|
}
|
||||||
@ -126,7 +121,7 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
|
|||||||
v.setText( cursor.getString( cursor.getColumnIndex(groupColumn)));
|
v.setText( cursor.getString( cursor.getColumnIndex(groupColumn)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -159,7 +154,7 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
|
|||||||
setGroupColumnFromPreferences(pref);
|
setGroupColumnFromPreferences(pref);
|
||||||
|
|
||||||
pref.registerOnSharedPreferenceChangeListener(this);
|
pref.registerOnSharedPreferenceChangeListener(this);
|
||||||
|
|
||||||
if ( activity instanceof OnMotorSelectedListener ) {
|
if ( activity instanceof OnMotorSelectedListener ) {
|
||||||
motorSelectedListener = (OnMotorSelectedListener) activity;
|
motorSelectedListener = (OnMotorSelectedListener) activity;
|
||||||
}
|
}
|
||||||
@ -227,17 +222,19 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
|
|||||||
|
|
||||||
}
|
}
|
||||||
private void refreshData() {
|
private void refreshData() {
|
||||||
if (mAdapter != null ) {
|
|
||||||
mAdapter.changeCursor(null);
|
|
||||||
}
|
|
||||||
Cursor motorCursor = mDbHelper.getMotorDao().fetchGroups(groupColumn);
|
Cursor motorCursor = mDbHelper.getMotorDao().fetchGroups(groupColumn);
|
||||||
getActivity().startManagingCursor(motorCursor);
|
if (mAdapter != null ) {
|
||||||
// Set up our adapter
|
mAdapter.changeCursor(motorCursor);
|
||||||
mAdapter = new MotorHierarchicalListAdapter(
|
}
|
||||||
getActivity(),
|
else {
|
||||||
motorCursor,
|
// Set up our adapter
|
||||||
R.layout.motor_list_group,
|
mAdapter = new MotorHierarchicalListAdapter(
|
||||||
R.layout.motor_list_child);
|
getActivity(),
|
||||||
setListAdapter(mAdapter);
|
motorCursor,
|
||||||
|
R.layout.motor_list_group,
|
||||||
|
R.layout.motor_list_child);
|
||||||
|
setListAdapter(mAdapter);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user