summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/Controller.java
diff options
context:
space:
mode:
authorDanesh M <daneshm90@gmail.com>2012-01-18 15:23:24 -0500
committerSteve Kondik <steve@cyngn.com>2015-11-07 13:57:35 -0800
commitfdabe56ae7bb73cff98baf3f5440bf6e0563a9b9 (patch)
tree16877033e42aa400623167ff2591d05abe4901b1 /src/com/android/browser/Controller.java
parent1fd4bec1891e40dfe2e04c1ffe0bbd9f4e649cee (diff)
downloadpackages_apps_Browser-fdabe56ae7bb73cff98baf3f5440bf6e0563a9b9.tar.gz
packages_apps_Browser-fdabe56ae7bb73cff98baf3f5440bf6e0563a9b9.tar.bz2
packages_apps_Browser-fdabe56ae7bb73cff98baf3f5440bf6e0563a9b9.zip
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/com/android/browser/Controller.java')
-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 934f70f71..3a68f4bf3 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -507,8 +507,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);
@@ -1392,6 +1393,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;
}