super(context, layout, c);
mTo = to;
mOriginalFrom = from;
- findColumns(from);
+ findColumns(c, from);
}
/**
super(context, layout, c, flags);
mTo = to;
mOriginalFrom = from;
- findColumns(from);
+ findColumns(c, from);
}
/**
}
/**
- * Create a map from an array of strings to an array of column-id integers in mCursor.
- * If mCursor is null, the array will be discarded.
- *
+ * Create a map from an array of strings to an array of column-id integers in cursor c.
+ * If c is null, the array will be discarded.
+ *
+ * @param c the cursor to find the columns from
* @param from the Strings naming the columns of interest
*/
- private void findColumns(String[] from) {
- if (mCursor != null) {
+ private void findColumns(Cursor c, String[] from) {
+ if (c != null) {
int i;
int count = from.length;
if (mFrom == null || mFrom.length != count) {
mFrom = new int[count];
}
for (i = 0; i < count; i++) {
- mFrom[i] = mCursor.getColumnIndexOrThrow(from[i]);
+ mFrom[i] = c.getColumnIndexOrThrow(from[i]);
}
} else {
mFrom = null;
// super.swapCursor() will notify observers before we have
// a valid mapping, make sure we have a mapping before this
// happens
- if (mFrom == null) {
- findColumns(mOriginalFrom);
- }
- Cursor res = super.swapCursor(c);
- // rescan columns in case cursor layout is different
- findColumns(mOriginalFrom);
- return res;
+ findColumns(c, mOriginalFrom);
+ return super.swapCursor(c);
}
/**
// super.changeCursor() will notify observers before we have
// a valid mapping, make sure we have a mapping before this
// happens
- if (mFrom == null) {
- findColumns(mOriginalFrom);
- }
+ findColumns(c, mOriginalFrom);
super.changeCursor(c);
- findColumns(mOriginalFrom);
}
/**