diff options
| author | 2017-01-25 20:19:05 +0000 | |
|---|---|---|
| committer | 2017-01-25 20:19:11 +0000 | |
| commit | a92c1801075b853f47490614bb2f6357c41f77fe (patch) | |
| tree | 58184063cc60a94c9a716d987aa259b02e964d29 | |
| parent | 73c945de336c104304c147d182f0fcb31fe8cd50 (diff) | |
| parent | 794cf190aa38dffdad9e82fc86dbd94940b175b1 (diff) | |
Merge "Also parse "1" as true for ContentValues#getAsBoolean"
| -rw-r--r-- | core/java/android/content/ContentValues.java | 6 | ||||
| -rw-r--r-- | core/java/android/database/DatabaseUtils.java | 5 |
2 files changed, 6 insertions, 5 deletions
diff --git a/core/java/android/content/ContentValues.java b/core/java/android/content/ContentValues.java index 7ed827c00e65..3a87cb3e7a29 100644 --- a/core/java/android/content/ContentValues.java +++ b/core/java/android/content/ContentValues.java @@ -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 { diff --git a/core/java/android/database/DatabaseUtils.java b/core/java/android/database/DatabaseUtils.java index 227066ddc571..8cd3d7b5bc68 100644 --- a/core/java/android/database/DatabaseUtils.java +++ b/core/java/android/database/DatabaseUtils.java @@ -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)); |