Adds a "open all in tabs" to folder context menu

 In bookmarks, long pressing on a folder now has an "open all in
 new tabs" option that opens all of it's child bookmarks (not recursive)
 in new tabs.

Change-Id: Ied4da5cd4f2cf83b58a6f1e618bdfce44b4f4a99
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 825da33..ea97c29 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -566,10 +566,43 @@
 
     private void openInNewWindow(int position) {
         if (mCallbacks != null) {
-            mCallbacks.onOpenInNewWindow(mAdapter.getItem(position));
+            Cursor c = mAdapter.getItem(position);
+            boolean isFolder = c.getInt(BookmarksLoader.COLUMN_INDEX_IS_FOLDER) == 1;
+            if (isFolder) {
+                long id = c.getLong(BookmarksLoader.COLUMN_INDEX_ID);
+                new OpenAllInTabsTask(id).execute();
+            } else {
+                mCallbacks.onOpenInNewWindow(c);
+            }
         }
     }
 
+    class OpenAllInTabsTask extends AsyncTask<Void, Void, Cursor> {
+        long mFolderId;
+        public OpenAllInTabsTask(long id) {
+            mFolderId = id;
+        }
+
+        @Override
+        protected Cursor doInBackground(Void... params) {
+            Context c = getActivity();
+            if (c == null) return null;
+            return c.getContentResolver().query(BookmarkUtils.getBookmarksUri(c),
+                    BookmarksLoader.PROJECTION, BrowserContract.Bookmarks.PARENT + "=?",
+                    new String[] { Long.toString(mFolderId) }, null);
+        }
+
+        @Override
+        protected void onPostExecute(Cursor result) {
+            if (mCallbacks != null) {
+                while (result.moveToNext()) {
+                    mCallbacks.onOpenInNewWindow(result);
+                }
+            }
+        }
+
+    }
+
     private void editBookmark(int position) {
         Intent intent = new Intent(getActivity(), AddBookmarkPage.class);
         Cursor cursor = mAdapter.getItem(position);