diff options
| -rw-r--r-- | src/com/android/browser/provider/BrowserProvider2.java | 53 |
1 files changed, 24 insertions, 29 deletions
diff --git a/src/com/android/browser/provider/BrowserProvider2.java b/src/com/android/browser/provider/BrowserProvider2.java index eb33e5eb2..8d9f1fe4e 100644 --- a/src/com/android/browser/provider/BrowserProvider2.java +++ b/src/com/android/browser/provider/BrowserProvider2.java @@ -622,6 +622,12 @@ public class BrowserProvider2 extends SQLiteContentProvider { } case BOOKMARKS_FOLDER: { + // Don't allow selections to be applied to the default folder + if (!TextUtils.isEmpty(selection) || selectionArgs != null) { + throw new UnsupportedOperationException( + "selections aren't supported on this URI"); + } + // Look for an account boolean useAccount = false; String accountType = uri.getQueryParameter(Bookmarks.PARAM_ACCOUNT_TYPE); @@ -643,48 +649,37 @@ public class BrowserProvider2 extends SQLiteContentProvider { } if (!useAccount) { qb.setProjectionMap(BOOKMARKS_PROJECTION_MAP); - String where = Bookmarks.PARENT + "=? AND " + Bookmarks.IS_DELETED + "=0"; - where = DatabaseUtils.concatenateWhere(where, selection); + query = qb.buildQuery(projection, + Bookmarks.PARENT + "=? AND " + Bookmarks.IS_DELETED + "=0", + null, null, null, sortOrder, null); + args = new String[] { Long.toString(FIXED_ID_ROOT) }; - if (selectionArgs != null) { - args = DatabaseUtils.appendSelectionArgs(args, selectionArgs); - } - query = qb.buildQuery(projection, where, null, null, sortOrder, null); } else { qb.setProjectionMap(BOOKMARKS_PROJECTION_MAP); - String where = Bookmarks.ACCOUNT_TYPE + "=? AND " + Bookmarks.ACCOUNT_NAME + "=? " + - "AND parent = " + - "(SELECT _id FROM " + TABLE_BOOKMARKS + " WHERE " + - ChromeSyncColumns.SERVER_UNIQUE + "=" + - "'" + ChromeSyncColumns.FOLDER_NAME_BOOKMARKS_BAR + "' " + - "AND account_type = ? AND account_name = ?) " + - "AND " + Bookmarks.IS_DELETED + "=0"; - where = DatabaseUtils.concatenateWhere(where, selection); String bookmarksBarQuery = qb.buildQuery(projection, - selection, null, null, null, null); - args = new String[] {accountType, accountName, - accountType, accountName}; - if (selectionArgs != null) { - args = DatabaseUtils.appendSelectionArgs(args, selectionArgs); - } + Bookmarks.ACCOUNT_TYPE + "=? AND " + Bookmarks.ACCOUNT_NAME + "=? " + + "AND parent = " + + "(SELECT _id FROM " + TABLE_BOOKMARKS + " WHERE " + + ChromeSyncColumns.SERVER_UNIQUE + "=" + + "'" + ChromeSyncColumns.FOLDER_NAME_BOOKMARKS_BAR + "' " + + "AND account_type = ? AND account_name = ?) " + + "AND " + Bookmarks.IS_DELETED + "=0", + null, null, null, null, null); - where = Bookmarks.ACCOUNT_TYPE + "=? AND " + Bookmarks.ACCOUNT_NAME + "=?" + - " AND " + ChromeSyncColumns.SERVER_UNIQUE + "=?"; - where = DatabaseUtils.concatenateWhere(where, selection); qb.setProjectionMap(OTHER_BOOKMARKS_PROJECTION_MAP); String otherBookmarksQuery = qb.buildQuery(projection, - where, null, null, null, null); + Bookmarks.ACCOUNT_TYPE + "=? AND " + Bookmarks.ACCOUNT_NAME + "=?" + + " AND " + ChromeSyncColumns.SERVER_UNIQUE + "=?", + null, null, null, null, null); query = qb.buildUnionQuery( new String[] { bookmarksBarQuery, otherBookmarksQuery }, sortOrder, limit); - args = DatabaseUtils.appendSelectionArgs(args, new String[] { + args = new String[] { + accountType, accountName, accountType, accountName, accountType, accountName, ChromeSyncColumns.FOLDER_NAME_OTHER_BOOKMARKS, - }); - if (selectionArgs != null) { - args = DatabaseUtils.appendSelectionArgs(args, selectionArgs); - } + }; } Cursor cursor = db.rawQuery(query, args); |
