Allocate SQLiteQueryBuilder's WHERE clause StringBuilder lazily.

Number of callers weren't using this, and seemed like a waste to
allocate it when unnecessary.

Change-Id: Iebb701a9eb4f1d9d028bfe74463574f84a36729c
diff --git a/core/java/android/database/sqlite/SQLiteQueryBuilder.java b/core/java/android/database/sqlite/SQLiteQueryBuilder.java
index af54a71..1d154ce 100644
--- a/core/java/android/database/sqlite/SQLiteQueryBuilder.java
+++ b/core/java/android/database/sqlite/SQLiteQueryBuilder.java
@@ -40,7 +40,7 @@
 
     private Map<String, String> mProjectionMap = null;
     private String mTables = "";
-    private final StringBuilder mWhereClause = new StringBuilder(64);
+    private StringBuilder mWhereClause = null;  // lazily created
     private boolean mDistinct;
     private SQLiteDatabase.CursorFactory mFactory;
 
@@ -89,6 +89,9 @@
      * @param inWhere the chunk of text to append to the WHERE clause.
      */
     public void appendWhere(CharSequence inWhere) {
+        if (mWhereClause == null) {
+            mWhereClause = new StringBuilder(inWhere.length() + 16);
+        }
         if (mWhereClause.length() == 0) {
             mWhereClause.append('(');
         }
@@ -106,6 +109,9 @@
      * to avoid SQL injection attacks
      */
     public void appendWhereEscapeString(String inWhere) {
+        if (mWhereClause == null) {
+            mWhereClause = new StringBuilder(inWhere.length() + 16);
+        }
         if (mWhereClause.length() == 0) {
             mWhereClause.append('(');
         }
@@ -356,15 +362,16 @@
         String[] projection = computeProjection(projectionIn);
 
         StringBuilder where = new StringBuilder();
+        boolean hasBaseWhereClause = mWhereClause != null && mWhereClause.length() > 0;
 
-        if (mWhereClause.length() > 0) {
+        if (hasBaseWhereClause) {
             where.append(mWhereClause.toString());
             where.append(')');
         }
 
         // Tack on the user's selection, if present.
         if (selection != null && selection.length() > 0) {
-            if (mWhereClause.length() > 0) {
+            if (hasBaseWhereClause) {
                 where.append(" AND ");
             }