Merge "Also parse "1" as true for ContentValues#getAsBoolean"
This commit is contained in:
committed by
Android (Google) Code Review
commit
a92c180107
@@ -414,7 +414,11 @@ public final class ContentValues implements Parcelable {
|
||||
return (Boolean) value;
|
||||
} catch (ClassCastException e) {
|
||||
if (value instanceof CharSequence) {
|
||||
return Boolean.valueOf(value.toString());
|
||||
// Note that we also check against 1 here because SQLite's internal representation
|
||||
// for booleans is an integer with a value of 0 or 1. Without this check, boolean
|
||||
// values obtained via DatabaseUtils#cursorRowToContentValues will always return
|
||||
// false.
|
||||
return Boolean.valueOf(value.toString()) || "1".equals(value);
|
||||
} else if (value instanceof Number) {
|
||||
return ((Number) value).intValue() != 0;
|
||||
} else {
|
||||
|
||||
@@ -728,13 +728,10 @@ public class DatabaseUtils {
|
||||
* @param values the {@link ContentValues} to put the row into.
|
||||
*/
|
||||
public static void cursorRowToContentValues(Cursor cursor, ContentValues values) {
|
||||
AbstractWindowedCursor awc =
|
||||
(cursor instanceof AbstractWindowedCursor) ? (AbstractWindowedCursor) cursor : null;
|
||||
|
||||
String[] columns = cursor.getColumnNames();
|
||||
int length = columns.length;
|
||||
for (int i = 0; i < length; i++) {
|
||||
if (awc != null && awc.isBlob(i)) {
|
||||
if (cursor.getType(i) == Cursor.FIELD_TYPE_BLOB) {
|
||||
values.put(columns[i], cursor.getBlob(i));
|
||||
} else {
|
||||
values.put(columns[i], cursor.getString(i));
|
||||
|
||||
Reference in New Issue
Block a user