Loading api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -12679,6 +12679,7 @@ package android.database.sqlite { method public java.lang.String buildUnionQuery(java.lang.String[], java.lang.String, java.lang.String); method public java.lang.String buildUnionSubQuery(java.lang.String, java.lang.String[], java.util.Set<java.lang.String>, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String); method public deprecated java.lang.String buildUnionSubQuery(java.lang.String, java.lang.String[], java.util.Set<java.lang.String>, int, java.lang.String, java.lang.String, java.lang.String[], java.lang.String, java.lang.String); method public int delete(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String[]); method public java.lang.String getTables(); method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String); method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String); Loading @@ -12688,6 +12689,7 @@ package android.database.sqlite { method public void setProjectionMap(java.util.Map<java.lang.String, java.lang.String>); method public void setStrict(boolean); method public void setTables(java.lang.String); method public int update(android.database.sqlite.SQLiteDatabase, android.content.ContentValues, java.lang.String, java.lang.String[]); } public class SQLiteReadOnlyDatabaseException extends android.database.sqlite.SQLiteException { core/java/android/database/sqlite/SQLiteQueryBuilder.java +12 −9 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ import android.text.TextUtils; import android.util.ArrayMap; import android.util.Log; import com.android.internal.util.ArrayUtils; import libcore.util.EmptyArray; import java.util.Arrays; import java.util.Iterator; Loading Loading @@ -436,7 +436,6 @@ public class SQLiteQueryBuilder * that they appear in the selection. The values will be bound * as Strings. * @return the number of rows updated * @hide */ public int update(@NonNull SQLiteDatabase db, @NonNull ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) { Loading Loading @@ -471,14 +470,19 @@ public class SQLiteQueryBuilder sql = unwrappedSql; } if (selectionArgs == null) { selectionArgs = EmptyArray.STRING; } final ArrayMap<String, Object> rawValues = values.getValues(); final String[] updateArgs = new String[rawValues.size()]; for (int i = 0; i < updateArgs.length; i++) { final Object arg = rawValues.valueAt(i); updateArgs[i] = (arg != null) ? arg.toString() : null; final int valuesLength = rawValues.size(); final Object[] sqlArgs = new Object[valuesLength + selectionArgs.length]; for (int i = 0; i < sqlArgs.length; i++) { if (i < valuesLength) { sqlArgs[i] = rawValues.valueAt(i); } else { sqlArgs[i] = selectionArgs[i - valuesLength]; } } final String[] sqlArgs = ArrayUtils.concat(String.class, updateArgs, selectionArgs); if (Log.isLoggable(TAG, Log.DEBUG)) { if (Build.IS_DEBUGGABLE) { Log.d(TAG, sql + " with args " + Arrays.toString(sqlArgs)); Loading @@ -502,7 +506,6 @@ public class SQLiteQueryBuilder * that they appear in the selection. The values will be bound * as Strings. * @return the number of rows deleted * @hide */ public int delete(@NonNull SQLiteDatabase db, @Nullable String selection, @Nullable String[] selectionArgs) { Loading Loading
api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -12679,6 +12679,7 @@ package android.database.sqlite { method public java.lang.String buildUnionQuery(java.lang.String[], java.lang.String, java.lang.String); method public java.lang.String buildUnionSubQuery(java.lang.String, java.lang.String[], java.util.Set<java.lang.String>, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String); method public deprecated java.lang.String buildUnionSubQuery(java.lang.String, java.lang.String[], java.util.Set<java.lang.String>, int, java.lang.String, java.lang.String, java.lang.String[], java.lang.String, java.lang.String); method public int delete(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String[]); method public java.lang.String getTables(); method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String); method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String); Loading @@ -12688,6 +12689,7 @@ package android.database.sqlite { method public void setProjectionMap(java.util.Map<java.lang.String, java.lang.String>); method public void setStrict(boolean); method public void setTables(java.lang.String); method public int update(android.database.sqlite.SQLiteDatabase, android.content.ContentValues, java.lang.String, java.lang.String[]); } public class SQLiteReadOnlyDatabaseException extends android.database.sqlite.SQLiteException {
core/java/android/database/sqlite/SQLiteQueryBuilder.java +12 −9 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ import android.text.TextUtils; import android.util.ArrayMap; import android.util.Log; import com.android.internal.util.ArrayUtils; import libcore.util.EmptyArray; import java.util.Arrays; import java.util.Iterator; Loading Loading @@ -436,7 +436,6 @@ public class SQLiteQueryBuilder * that they appear in the selection. The values will be bound * as Strings. * @return the number of rows updated * @hide */ public int update(@NonNull SQLiteDatabase db, @NonNull ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) { Loading Loading @@ -471,14 +470,19 @@ public class SQLiteQueryBuilder sql = unwrappedSql; } if (selectionArgs == null) { selectionArgs = EmptyArray.STRING; } final ArrayMap<String, Object> rawValues = values.getValues(); final String[] updateArgs = new String[rawValues.size()]; for (int i = 0; i < updateArgs.length; i++) { final Object arg = rawValues.valueAt(i); updateArgs[i] = (arg != null) ? arg.toString() : null; final int valuesLength = rawValues.size(); final Object[] sqlArgs = new Object[valuesLength + selectionArgs.length]; for (int i = 0; i < sqlArgs.length; i++) { if (i < valuesLength) { sqlArgs[i] = rawValues.valueAt(i); } else { sqlArgs[i] = selectionArgs[i - valuesLength]; } } final String[] sqlArgs = ArrayUtils.concat(String.class, updateArgs, selectionArgs); if (Log.isLoggable(TAG, Log.DEBUG)) { if (Build.IS_DEBUGGABLE) { Log.d(TAG, sql + " with args " + Arrays.toString(sqlArgs)); Loading @@ -502,7 +506,6 @@ public class SQLiteQueryBuilder * that they appear in the selection. The values will be bound * as Strings. * @return the number of rows deleted * @hide */ public int delete(@NonNull SQLiteDatabase db, @Nullable String selection, @Nullable String[] selectionArgs) { Loading