diff options
| author | John Reck <jreck@google.com> | 2011-01-11 13:20:32 -0800 |
|---|---|---|
| committer | John Reck <jreck@google.com> | 2011-01-11 17:01:20 -0800 |
| commit | 1b3c66ed83cb83ba1be775d5f108f698f0d4ee1f (patch) | |
| tree | 1ce221a4efb0eba08569e45dd5a64af48cd76726 /src/com/android/browser/BrowserBookmarksPage.java | |
| parent | 1605bef4e1f99805a801308f97ade622b907dc7a (diff) | |
| download | packages_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.java | 35 |
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) { |
