summaryrefslogtreecommitdiff
path: root/core/java/android/database/DatabaseUtils.java
diff options
context:
space:
mode:
authorMichael Wright <michaelwr@google.com>2017-01-18 18:12:53 +0000
committerMichael Wright <michaelwr@google.com>2017-01-19 16:19:28 +0000
commit794cf190aa38dffdad9e82fc86dbd94940b175b1 (patch)
treecb8247ae67ead35b99206e4c16213ad70926f114 /core/java/android/database/DatabaseUtils.java
parent7a1f1d8a8579278048c044b7aca5d0d58ece57e4 (diff)
Also parse "1" as true for ContentValues#getAsBoolean
SQLite's internal representation for booleans is an integer with a value of 0 or 1, so without this check, boolean values obtained via DatabaseUtils#cursorRowToContentValues will always return false. Bug: 34365384 Test: demo app, cts Change-Id: I6c0829c992252ca5ee16bd5eac48668507fd4089
Diffstat (limited to 'core/java/android/database/DatabaseUtils.java')
-rw-r--r--core/java/android/database/DatabaseUtils.java5
1 files changed, 1 insertions, 4 deletions
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));