summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/BrowserBookmarksPage.java
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2011-01-11 13:20:32 -0800
committerJohn Reck <jreck@google.com>2011-01-11 17:01:20 -0800
commit1b3c66ed83cb83ba1be775d5f108f698f0d4ee1f (patch)
tree1ce221a4efb0eba08569e45dd5a64af48cd76726 /src/com/android/browser/BrowserBookmarksPage.java
parent1605bef4e1f99805a801308f97ade622b907dc7a (diff)
downloadpackages_apps_Browser-1b3c66ed83cb83ba1be775d5f108f698f0d4ee1f.tar.gz
packages_apps_Browser-1b3c66ed83cb83ba1be775d5f108f698f0d4ee1f.tar.bz2
packages_apps_Browser-1b3c66ed83cb83ba1be775d5f108f698f0d4ee1f.zip
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
Diffstat (limited to 'src/com/android/browser/BrowserBookmarksPage.java')
-rw-r--r--src/com/android/browser/BrowserBookmarksPage.java35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 825da3322..ea97c29e7 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -566,8 +566,41 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
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) {