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: Ib4e1ce698f24014094309d2fed261e79383580a2
(cherry picked from commit bff8e3ec04a95428add128dc4cd65177d69d49bf)
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
index 19f2459..0d96462 100644
--- a/src/com/android/providers/media/MediaProvider.java
+++ b/src/com/android/providers/media/MediaProvider.java
@@ -52,7 +52,7 @@
 import android.database.MatrixCursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteOpenHelper;
-import android.database.sqlite.SQLiteQueryBuilder;
+import android.database.sqlite.SQLiteStatementBuilder;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.media.MediaFile;
@@ -1122,7 +1122,7 @@
                 (req.mIsVideo == isVideo);
     }
 
-    private boolean queryThumbnail(SQLiteQueryBuilder qb, Uri uri, String table,
+    private boolean queryThumbnail(SQLiteStatementBuilder qb, Uri uri, String table,
             String column, boolean hasThumbnailId) {
         qb.setTables(table);
         if (hasThumbnailId) {
@@ -1326,7 +1326,7 @@
         helper.mNumQueries++;
         SQLiteDatabase db = helper.getReadableDatabase();
         if (db == null) return null;
-        SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
+        SQLiteStatementBuilder qb = new SQLiteStatementBuilder();
         String limit = uri.getQueryParameter("limit");
         String filter = uri.getQueryParameter("filter");
         String [] keywords = null;
@@ -1663,7 +1663,7 @@
         return c;
     }
 
-    private Cursor doAudioSearch(SQLiteDatabase db, SQLiteQueryBuilder qb,
+    private Cursor doAudioSearch(SQLiteDatabase db, SQLiteStatementBuilder qb,
             Uri uri, String[] projectionIn, String selection,
             String[] selectionArgs, String sort, int mode,
             String limit) {
@@ -3049,8 +3049,8 @@
         }
     }
 
-    private SQLiteQueryBuilder getUpdateDeleteBuilder(Uri uri, int match) {
-        final SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
+    private SQLiteStatementBuilder getUpdateDeleteBuilder(Uri uri, int match) {
+        final SQLiteStatementBuilder qb = new SQLiteStatementBuilder();
         switch (match) {
             case IMAGES_MEDIA:
                 qb.setTables("files");
@@ -3239,7 +3239,7 @@
             }
             database.mNumDeletes++;
             SQLiteDatabase db = database.getWritableDatabase();
-            SQLiteQueryBuilder qb = getUpdateDeleteBuilder(uri, match);
+            SQLiteStatementBuilder qb = getUpdateDeleteBuilder(uri, match);
             if (qb.getTables().equals("files")) {
                 String deleteparam = uri.getQueryParameter(MediaStore.PARAM_DELETE_DATA);
                 if (deleteparam == null || ! deleteparam.equals("false")) {
@@ -3413,7 +3413,7 @@
      * can be used to recursively delete all matching entries, since it only
      * deletes parents when no references remaining.
      */
-    private int deleteRecursive(SQLiteQueryBuilder qb, SQLiteDatabase db, String userWhere,
+    private int deleteRecursive(SQLiteStatementBuilder qb, SQLiteDatabase db, String userWhere,
             String[] userWhereArgs) {
         db.beginTransaction();
         try {
@@ -3541,7 +3541,7 @@
         helper.mNumUpdates++;
 
         SQLiteDatabase db = helper.getWritableDatabase();
-        SQLiteQueryBuilder qb = getUpdateDeleteBuilder(uri, match);
+        SQLiteStatementBuilder qb = getUpdateDeleteBuilder(uri, match);
 
         String genre = null;
         if (initialValues != null) {
@@ -3917,7 +3917,7 @@
             if (db == null) {
                 throw new IllegalStateException("Couldn't open database for " + uri);
             }
-            SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
+            SQLiteStatementBuilder qb = new SQLiteStatementBuilder();
             int songid = Integer.parseInt(uri.getPathSegments().get(3));
             qb.setTables("audio_meta");
             qb.appendWhere("_id=" + songid);
@@ -3965,7 +3965,7 @@
                 if (db == null) {
                     throw new IllegalStateException("Couldn't open database for " + uri);
                 }
-                SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
+                SQLiteStatementBuilder qb = new SQLiteStatementBuilder();
                 int albumid = Integer.parseInt(uri.getPathSegments().get(3));
                 qb.setTables("audio_meta");
                 qb.appendWhere("album_id=" + albumid);