diff options
author | Axesh R. Ajmera <aajmera@codeaurora.org> | 2015-07-23 15:08:14 -0700 |
---|---|---|
committer | jrizzoli <joey@cyanogenmoditalia.it> | 2015-08-28 13:15:46 +0200 |
commit | 4a6838a6f0e18018663b6ecd69559090ef25cd73 (patch) | |
tree | 561f0a8db5f09670b875ec092e6b1352799680ce /src/com/android/browser/Controller.java | |
parent | ee99203941e22a7adac7cacd0ff126ec78921523 (diff) | |
download | android_packages_apps_Gello-4a6838a6f0e18018663b6ecd69559090ef25cd73.tar.gz android_packages_apps_Gello-4a6838a6f0e18018663b6ecd69559090ef25cd73.tar.bz2 android_packages_apps_Gello-4a6838a6f0e18018663b6ecd69559090ef25cd73.zip |
Fix issue when navigating on Snapshot Tab
- When navigating on snapshot tab, clicking on the links
in the snapshot tab causes navigation in the same tab to occur
This is wrong behaviour in terms of user experience and would
also cause issues with Edge navigation
Change-Id: I9b2f7eb27aed0209f0245ab71ee69fe087eb9161
Diffstat (limited to 'src/com/android/browser/Controller.java')
-rw-r--r-- | src/com/android/browser/Controller.java | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java index dbbc164a..c546f485 100644 --- a/src/com/android/browser/Controller.java +++ b/src/com/android/browser/Controller.java @@ -1058,7 +1058,9 @@ public class Controller @Override public boolean shouldOverrideUrlLoading(Tab tab, WebView view, String url) { - return mUrlHandler.shouldOverrideUrlLoading(tab, view, url); + // if tab is snapshot tab we want to prevent navigation from occuring + // since snapshot tab opens a new tab with the url + return goLive(url) || mUrlHandler.shouldOverrideUrlLoading(tab, view, url); } @Override @@ -2149,9 +2151,10 @@ public class Controller break; case R.id.snapshot_go_live: - goLive(); - return true; - + // passing null to distinguish between + // "go live" button and navigating a web page + // on a snapshot tab + return goLive(null); case R.id.share_page_menu_id: Tab currentTab = mTabControl.getCurrentTab(); if (null == currentTab) { @@ -2360,23 +2363,18 @@ public class Controller } } - private void goLive() { - if (!getCurrentTab().isSnapshot()) return; + public boolean goLive(String url) { + if (!getCurrentTab().isSnapshot()) + return false; SnapshotTab t = (SnapshotTab) getCurrentTab(); - String url = t.getLiveUrl(); - boolean onlySingleTabRemaining = false; - if (mTabControl.getTabCount() > 1) { - // destroy the old snapshot tab - closeCurrentTab(); - } else { - onlySingleTabRemaining = true; - } - Tab liveTab = createNewTab(false, true, false); - if (onlySingleTabRemaining) { + + if (url == null) { // "go live" button was clicked + url = t.getLiveUrl(); closeTab(t); } - + Tab liveTab = createNewTab(false, true, false); loadUrl(liveTab, url); + return true; } private void showExitDialog(final Activity activity) { |