summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDanesh M <daneshm90@gmail.com>2012-01-18 15:23:24 -0500
committerArham Jamal <arhamjamal@gmail.com>2012-07-24 23:39:55 +0530
commitde692b84d11662673738901afd6584f64eb20c72 (patch)
treec804bf9c73a25ae08c070d762fc2b48a0547a85a /src
parenta232640f6d79f349cead379bb2c851994acb63bb (diff)
downloadpackages_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.java41
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;
}