diff options
author | Danesh M <daneshm90@gmail.com> | 2012-01-18 15:23:24 -0500 |
---|---|---|
committer | Arham Jamal <arhamjamal@gmail.com> | 2012-07-24 23:39:55 +0530 |
commit | de692b84d11662673738901afd6584f64eb20c72 (patch) | |
tree | c804bf9c73a25ae08c070d762fc2b48a0547a85a /src | |
parent | a232640f6d79f349cead379bb2c851994acb63bb (diff) | |
download | packages_apps_browser-de692b84d11662673738901afd6584f64eb20c72.zip packages_apps_browser-de692b84d11662673738901afd6584f64eb20c72.tar.gz packages_apps_browser-de692b84d11662673738901afd6584f64eb20c72.tar.bz2 |
Browser : Open in incognito tab
Long click on a link now allows you to choose
between opening in incognito/regular tab.
Credits: Danesh M
Signed-off-by: Arham Jamal <arhamjamal@gmail.com>
Change-Id: Iba8e7446e69ae66e0bd957910e6309fdb0e0b947
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/browser/Controller.java | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java index ebfd56f..85d8061 100644 --- a/src/com/android/browser/Controller.java +++ b/src/com/android/browser/Controller.java @@ -503,8 +503,9 @@ public class Controller break; case R.id.open_newtab_context_menu_id: final Tab parent = mTabControl.getCurrentTab(); - openTab(url, parent, - !mSettings.openInBackground(), true); + boolean privateBrowsing = msg.arg2 == 1; + openTab(url, parent != null && privateBrowsing, + !mSettings.openInBackground(), true, parent); break; case R.id.copy_link_context_menu_id: copy(url); @@ -1405,6 +1406,42 @@ public class Controller }); } } + newTabItem = menu.findItem(R.id.open_newtab_incognito_context_menu_id); + newTabItem.setTitle(getSettings().openInBackground() + ? R.string.contextmenu_openlink_incognito_newwindow_background + : R.string.contextmenu_openlink_incognito_newwindow); + newTabItem.setVisible(showNewTab); + newTabItem.setVisible(!mTabControl.getCurrentTab().isPrivateBrowsingEnabled()); + if (showNewTab) { + if (WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE == type) { + newTabItem.setOnMenuItemClickListener( + new MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + final HashMap<String, WebView> hrefMap = + new HashMap<String, WebView>(); + hrefMap.put("webview", webview); + final Message msg = mHandler.obtainMessage( + FOCUS_NODE_HREF, + R.id.open_newtab_context_menu_id, + 1, hrefMap); + webview.requestFocusNodeHref(msg); + return true; + } + }); + } else { + newTabItem.setOnMenuItemClickListener( + new MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + final Tab parent = mTabControl.getCurrentTab(); + openTab(extra, parent != null, + !mSettings.openInBackground(), true, parent); + return true; + } + }); + } + } if (type == WebView.HitTestResult.SRC_ANCHOR_TYPE) { break; } |