diff options
author | Jeff Sharkey <jsharkey@android.com> | 2018-07-19 09:22:16 -0600 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2018-07-19 09:54:10 -0600 |
commit | bc091ae8c95ea280327a988c2775042dc792569c (patch) | |
tree | 3c40fa9b4fb6fa2c53ec8f15bdeb1ffafbc97703 /src/com/android/providers/downloads/DownloadProvider.java | |
parent | d96afddef186c7fa993d4e82ffc4b8a005990b4d (diff) | |
download | android_packages_providers_DownloadProvider-bc091ae8c95ea280327a988c2775042dc792569c.tar.gz android_packages_providers_DownloadProvider-bc091ae8c95ea280327a988c2775042dc792569c.tar.bz2 android_packages_providers_DownloadProvider-bc091ae8c95ea280327a988c2775042dc792569c.zip |
Revert SQLiteQueryBuilder for now.
We've encountered subtle bugs in how apps are using this public
API, so revert it back to exactly what shipped in the last
release, and move functionality to new SQLiteStatementBuilder
class, since we already have several customers using it.
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Test: atest cts/tests/tests/database/src/android/database/sqlite/cts/SQLiteQueryBuilderTest.java
Bug: 111486645
Change-Id: I6536f5d841db8ec59457f458a8365ff41fb8278e
Diffstat (limited to 'src/com/android/providers/downloads/DownloadProvider.java')
-rw-r--r-- | src/com/android/providers/downloads/DownloadProvider.java | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index a85911d3..212ddd8d 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -44,7 +44,7 @@ import android.database.DatabaseUtils; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; -import android.database.sqlite.SQLiteQueryBuilder; +import android.database.sqlite.SQLiteStatementBuilder; import android.net.Uri; import android.os.Binder; import android.os.ParcelFileDescriptor; @@ -910,7 +910,7 @@ public final class DownloadProvider extends ContentProvider { getContext().enforceCallingOrSelfPermission( Downloads.Impl.PERMISSION_ACCESS_ALL, Constants.TAG); - final SQLiteQueryBuilder qb = getQueryBuilder(uri, match); + final SQLiteStatementBuilder qb = getStatementBuilder(uri, match); projection = new String[] { Downloads.Impl.RequestHeaders.COLUMN_HEADER, Downloads.Impl.RequestHeaders.COLUMN_VALUE @@ -944,7 +944,7 @@ public final class DownloadProvider extends ContentProvider { logVerboseQueryInfo(projection, selection, selectionArgs, sort, db); } - final SQLiteQueryBuilder qb = getQueryBuilder(uri, match); + final SQLiteStatementBuilder qb = getStatementBuilder(uri, match); final Cursor ret = qb.query(db, projection, selection, selectionArgs, null, null, sort); if (ret != null) { @@ -1112,7 +1112,7 @@ public final class DownloadProvider extends ContentProvider { break; } - final SQLiteQueryBuilder qb = getQueryBuilder(uri, match); + final SQLiteStatementBuilder qb = getStatementBuilder(uri, match); count = qb.update(db, filteredValues, where, whereArgs); if (updateSchedule || isCompleting) { final long token = Binder.clearCallingIdentity(); @@ -1166,8 +1166,8 @@ public final class DownloadProvider extends ContentProvider { * Create a query builder that filters access to the underlying database * based on both the requested {@link Uri} and permissions of the caller. */ - private SQLiteQueryBuilder getQueryBuilder(final Uri uri, int match) { - final SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); + private SQLiteStatementBuilder getStatementBuilder(final Uri uri, int match) { + final SQLiteStatementBuilder qb = new SQLiteStatementBuilder(); qb.setStrict(true); switch (match) { @@ -1232,7 +1232,7 @@ public final class DownloadProvider extends ContentProvider { case MY_DOWNLOADS_ID: case ALL_DOWNLOADS: case ALL_DOWNLOADS_ID: - final SQLiteQueryBuilder qb = getQueryBuilder(uri, match); + final SQLiteStatementBuilder qb = getStatementBuilder(uri, match); try (Cursor cursor = qb.query(db, null, where, whereArgs, null, null, null)) { final DownloadInfo.Reader reader = new DownloadInfo.Reader(resolver, cursor); final DownloadInfo info = new DownloadInfo(context); |