diff options
Diffstat (limited to 'src/com/android/browser')
-rw-r--r-- | src/com/android/browser/Controller.java | 26 | ||||
-rw-r--r-- | src/com/android/browser/PhoneUi.java | 11 |
2 files changed, 25 insertions, 12 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java index 385d494..e84e397 100644 --- a/src/com/android/browser/Controller.java +++ b/src/com/android/browser/Controller.java @@ -512,8 +512,8 @@ public class Controller case R.id.save_link_context_menu_id: case R.id.download_context_menu_id: DownloadHandler.onDownloadStartNoStream( - mActivity, url, null, null, null, null, - view.isPrivateBrowsingEnabled()); + mActivity, url, view.getSettings().getUserAgentString(), + null, null, null, view.isPrivateBrowsingEnabled()); break; } break; @@ -860,11 +860,6 @@ public class Controller public void onPageFinished(Tab tab) { mCrashRecoveryHandler.backupState(); mUi.onTabDataChanged(tab); - // pause the WebView timer and release the wake lock if it is finished - // while BrowserActivity is in pause state. - if (mActivityPaused && pauseWebViewTimers(tab)) { - releaseWakeLock(); - } // Performance probe if (false) { @@ -889,6 +884,10 @@ public class Controller // onPageFinished has executed) if (tab.inPageLoad()) { updateInLoadMenuItems(mCachedMenu, tab); + } else if (mActivityPaused && pauseWebViewTimers(tab)) { + // pause the WebView timer and release the wake lock if it is + // finished while BrowserActivity is in pause state. + releaseWakeLock(); } if (!tab.isPrivateBrowsingEnabled() && !TextUtils.isEmpty(tab.getUrl()) @@ -1434,9 +1433,9 @@ public class Controller return false; } }); - menu.findItem(R.id.download_context_menu_id). - setOnMenuItemClickListener( - new Download(mActivity, extra, webview.isPrivateBrowsingEnabled())); + menu.findItem(R.id.download_context_menu_id).setOnMenuItemClickListener( + new Download(mActivity, extra, webview.isPrivateBrowsingEnabled(), + webview.getSettings().getUserAgentString())); menu.findItem(R.id.set_wallpaper_context_menu_id). setOnMenuItemClickListener(new WallpaperHandler(mActivity, extra)); @@ -2166,6 +2165,7 @@ public class Controller private Activity mActivity; private String mText; private boolean mPrivateBrowsing; + private String mUserAgent; private static final String FALLBACK_EXTENSION = "dat"; private static final String IMAGE_BASE_FORMAT = "yyyy-MM-dd-HH-mm-ss-"; @@ -2174,16 +2174,18 @@ public class Controller if (DataUri.isDataUri(mText)) { saveDataUri(); } else { - DownloadHandler.onDownloadStartNoStream(mActivity, mText, null, + DownloadHandler.onDownloadStartNoStream(mActivity, mText, mUserAgent, null, null, null, mPrivateBrowsing); } return true; } - public Download(Activity activity, String toDownload, boolean privateBrowsing) { + public Download(Activity activity, String toDownload, boolean privateBrowsing, + String userAgent) { mActivity = activity; mText = toDownload; mPrivateBrowsing = privateBrowsing; + mUserAgent = userAgent; } /** diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java index e3c22bd..89eae70 100644 --- a/src/com/android/browser/PhoneUi.java +++ b/src/com/android/browser/PhoneUi.java @@ -54,6 +54,7 @@ public class PhoneUi extends BaseUi { private int mActionBarHeight; boolean mAnimating; + boolean mShowNav = false; /** * @param browser @@ -80,6 +81,8 @@ public class PhoneUi extends BaseUi { if (mUseQuickControls) { mTitleBar.setShowProgressOnly(false); } + //Do nothing while at Nav show screen. + if (mShowNav) return; super.editUrl(clearInput, forceIME); } @@ -131,6 +134,12 @@ public class PhoneUi extends BaseUi { mTitleBar.cancelTitleBarAnimation(true); mTitleBar.setSkipTitleBarAnimations(true); super.setActiveTab(tab); + + //if at Nav screen show, detach tab like what showNavScreen() do. + if (mShowNav) { + detachTab(mActiveTab); + } + BrowserWebView view = (BrowserWebView) tab.getWebView(); // TabControl.setCurrentTab has been called before this, // so the tab is guaranteed to have a webview @@ -254,6 +263,7 @@ public class PhoneUi extends BaseUi { } void showNavScreen() { + mShowNav = true; mUiController.setBlockEvents(true); if (mNavScreen == null) { mNavScreen = new NavScreen(mActivity, mUiController, this); @@ -334,6 +344,7 @@ public class PhoneUi extends BaseUi { } void hideNavScreen(int position, boolean animate) { + mShowNav = false; if (!showingNavScreen()) return; final Tab tab = mUiController.getTabControl().getTab(position); if ((tab == null) || !animate) { |