summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2017-01-25 20:19:05 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-01-25 20:19:11 +0000
commita92c1801075b853f47490614bb2f6357c41f77fe (patch)
tree58184063cc60a94c9a716d987aa259b02e964d29
parent73c945de336c104304c147d182f0fcb31fe8cd50 (diff)
parent794cf190aa38dffdad9e82fc86dbd94940b175b1 (diff)
Merge "Also parse "1" as true for ContentValues#getAsBoolean"
-rw-r--r--core/java/android/content/ContentValues.java6
-rw-r--r--core/java/android/database/DatabaseUtils.java5
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));