diff options
Diffstat (limited to 'src/com/android/browser/XLargeUi.java')
-rw-r--r-- | src/com/android/browser/XLargeUi.java | 216 |
1 files changed, 26 insertions, 190 deletions
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java index 8c34fc9..4bfd3cf 100644 --- a/src/com/android/browser/XLargeUi.java +++ b/src/com/android/browser/XLargeUi.java @@ -16,26 +16,19 @@ package com.android.browser; -import com.android.browser.ScrollWebView.ScrollListener; +import com.android.browser.BrowserWebView.ScrollListener; -import android.animation.Animator; -import android.animation.Animator.AnimatorListener; -import android.animation.ObjectAnimator; import android.app.ActionBar; import android.app.Activity; -import android.content.pm.PackageManager; -import android.graphics.Bitmap; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.ActionMode; import android.view.Gravity; import android.view.KeyEvent; -import android.view.Menu; import android.view.View; import android.webkit.WebChromeClient.CustomViewCallback; import android.webkit.WebView; -import android.widget.FrameLayout; import java.util.List; @@ -50,8 +43,6 @@ public class XLargeUi extends BaseUi implements ScrollListener { private TabBar mTabBar; private TitleBarXLarge mTitleBar; - private Animator mTitleBarAnimator; - private boolean mSkipTitleBarAnimations; private boolean mUseQuickControls; private PieControl mPieControl; @@ -64,7 +55,8 @@ public class XLargeUi extends BaseUi implements ScrollListener { public XLargeUi(Activity browser, UiController controller) { super(browser, controller); mHandler = new Handler(); - mTitleBar = new TitleBarXLarge(mActivity, mUiController, this); + mTitleBar = new TitleBarXLarge(mActivity, mUiController, this, + mContentView); mTitleBar.setProgress(100); mTabBar = new TabBar(mActivity, mUiController, this); mActionBar = mActivity.getActionBar(); @@ -103,16 +95,16 @@ public class XLargeUi extends BaseUi implements ScrollListener { checkTabCount(); mPieControl = new PieControl(mActivity, mUiController, this); mPieControl.attachToContainer(mContentView); - Tab tab = getActiveTab(); - if ((tab != null) && (tab.getWebView() != null)) { - tab.getWebView().setEmbeddedTitleBar(null); + WebView web = getWebView(); + if (web != null) { + web.setEmbeddedTitleBar(null); } } else { mActivity.getActionBar().show(); if (mPieControl != null) { mPieControl.removeFromContainer(mContentView); } - WebView web = mTabControl.getCurrentWebView(); + WebView web = getWebView(); if (web != null) { web.setEmbeddedTitleBar(mTitleBar); } @@ -134,7 +126,7 @@ public class XLargeUi extends BaseUi implements ScrollListener { @Override public void onResume() { super.onResume(); - if (!BrowserSettings.getInstance().useInstant()) { + if (!BrowserSettings.getInstance().useInstantSearch()) { mTitleBar.clearCompletions(); } } @@ -149,23 +141,14 @@ public class XLargeUi extends BaseUi implements ScrollListener { @Override public WebView createWebView(boolean privateBrowsing) { // Create a new WebView - ScrollWebView w = new ScrollWebView(mActivity, null, - android.R.attr.webViewStyle, privateBrowsing); - initWebViewSettings(w); + BrowserWebView w = (BrowserWebView) super.createWebView(privateBrowsing); w.setScrollListener(this); - boolean supportsMultiTouch = mActivity.getPackageManager() - .hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH); - w.getSettings().setDisplayZoomControls(!supportsMultiTouch); - w.setExpandedTileBounds(true); // smoother scrolling return w; } @Override public WebView createSubWebView(boolean privateBrowsing) { - ScrollWebView web = (ScrollWebView) createWebView(privateBrowsing); - // no scroll listener for subview - web.setScrollListener(null); - return web; + return super.createWebView(privateBrowsing); } @Override @@ -174,7 +157,7 @@ public class XLargeUi extends BaseUi implements ScrollListener { } void stopWebViewScrolling() { - ScrollWebView web = (ScrollWebView) mUiController.getCurrentWebView(); + BrowserWebView web = (BrowserWebView) mUiController.getCurrentWebView(); if (web != null) { web.stopScroll(); } @@ -188,31 +171,10 @@ public class XLargeUi extends BaseUi implements ScrollListener { mTabBar.onProgress(tab, progress); if (tab.inForeground()) { mTitleBar.setProgress(progress); - if (progress == 100) { - if (!mTitleBar.isEditingUrl() && !mTitleBar.inAutoLogin()) { - hideTitleBar(); - if (mUseQuickControls) { - mTitleBar.setShowProgressOnly(false); - } - } - } else { - if (!isTitleBarShowing()) { - if (mUseQuickControls && !mTitleBar.isEditingUrl()) { - mTitleBar.setShowProgressOnly(true); - setTitleGravity(Gravity.TOP); - } - showTitleBar(); - } - } } } @Override - public boolean needsRestoreAllTabs() { - return true; - } - - @Override public void addTab(Tab tab) { mTabBar.onNewTab(tab); } @@ -223,9 +185,8 @@ public class XLargeUi extends BaseUi implements ScrollListener { @Override public void setActiveTab(final Tab tab) { - cancelTitleBarAnimation(true); - mSkipTitleBarAnimations = true; - stopEditingUrl(); + mTitleBar.cancelTitleBarAnimation(true); + mTitleBar.setSkipTitleBarAnimations(true); if (mUseQuickControls) { if (mActiveTab != null) { captureTab(mActiveTab); @@ -233,12 +194,12 @@ public class XLargeUi extends BaseUi implements ScrollListener { } super.setActiveTab(tab, true); setActiveTab(tab, true); - mSkipTitleBarAnimations = false; + mTitleBar.setSkipTitleBarAnimations(false); } @Override void setActiveTab(Tab tab, boolean needsAttaching) { - ScrollWebView view = (ScrollWebView) tab.getWebView(); + BrowserWebView view = (BrowserWebView) tab.getWebView(); // TabControl.setCurrentTab has been called before this, // so the tab is guaranteed to have a webview if (view == null) { @@ -259,7 +220,7 @@ public class XLargeUi extends BaseUi implements ScrollListener { } mTabBar.onSetActiveTab(tab); if (tab.isInVoiceSearchMode()) { - showVoiceTitleBar(tab.getVoiceDisplayTitle()); + showVoiceTitleBar(tab.getVoiceDisplayTitle(), tab.getVoiceSearchResults()); } else { revertVoiceTitleBar(tab); } @@ -267,15 +228,6 @@ public class XLargeUi extends BaseUi implements ScrollListener { tab.getTopWindow().requestFocus(); } - public void captureTab(final Tab tab) { - Bitmap sshot = Controller.createScreenshot(tab, - (int) mActivity.getResources() - .getDimension(R.dimen.qc_thumb_width), - (int) mActivity.getResources() - .getDimension(R.dimen.qc_thumb_height)); - tab.setScreenshot(sshot); - } - @Override public void updateTabs(List<Tab> tabs) { mTabBar.updateTabs(tabs); @@ -284,11 +236,11 @@ public class XLargeUi extends BaseUi implements ScrollListener { @Override public void removeTab(Tab tab) { - cancelTitleBarAnimation(true); - mSkipTitleBarAnimations = true; + mTitleBar.cancelTitleBarAnimation(true); + mTitleBar.setSkipTitleBarAnimations(true); super.removeTab(tab); mTabBar.onRemoveTab(tab); - mSkipTitleBarAnimations = false; + mTitleBar.setSkipTitleBarAnimations(false); } protected void onRemoveTabCompleted(Tab tab) { @@ -304,17 +256,10 @@ public class XLargeUi extends BaseUi implements ScrollListener { @Override public void editUrl(boolean clearInput) { - if (mUiController.isInCustomActionMode()) { - mUiController.endActionMode(); + if (mUseQuickControls) { + getTitleBar().setShowProgressOnly(false); } - showTitleBar(); - mTitleBar.startEditingUrl(clearInput); - } - - void showTitleBarAndEdit() { - mTitleBar.setShowProgressOnly(false); - showTitleBar(); - mTitleBar.startEditingUrl(false); + super.editUrl(clearInput); } void stopEditingUrl() { @@ -324,24 +269,7 @@ public class XLargeUi extends BaseUi implements ScrollListener { @Override protected void showTitleBar() { if (canShowTitleBar()) { - if (mUseQuickControls) { - mContentView.addView(mTitleBar); - } else { - if (!mSkipTitleBarAnimations) { - cancelTitleBarAnimation(false); - int visibleHeight = getVisibleTitleHeight(); - float startPos = (-mTitleBar.getEmbeddedHeight() + visibleHeight); - if (mTitleBar.getTranslationY() != 0) { - startPos = Math.max(startPos, mTitleBar.getTranslationY()); - } - mTitleBarAnimator = ObjectAnimator.ofFloat(mTitleBar, - "translationY", - startPos, 0); - mTitleBarAnimator.start(); - } - setTitleGravity(Gravity.TOP); - } - super.showTitleBar(); + mTitleBar.show(); mTabBar.onShowTitleBar(); } } @@ -350,66 +278,10 @@ public class XLargeUi extends BaseUi implements ScrollListener { protected void hideTitleBar() { if (isTitleBarShowing()) { mTabBar.onHideTitleBar(); - if (mUseQuickControls) { - mContentView.removeView(mTitleBar); - } else { - if (!mSkipTitleBarAnimations) { - cancelTitleBarAnimation(false); - int visibleHeight = getVisibleTitleHeight(); - mTitleBarAnimator = ObjectAnimator.ofFloat(mTitleBar, - "translationY", mTitleBar.getTranslationY(), - (-mTitleBar.getEmbeddedHeight() + visibleHeight)); - mTitleBarAnimator.addListener(mHideTileBarAnimatorListener); - mTitleBarAnimator.start(); - } else { - setTitleGravity(Gravity.NO_GRAVITY); - } - } - super.hideTitleBar(); + mTitleBar.hide(); } } - private void cancelTitleBarAnimation(boolean reset) { - if (mTitleBarAnimator != null) { - mTitleBarAnimator.cancel(); - mTitleBarAnimator = null; - } - if (reset) { - mTitleBar.setTranslationY(0); - } - } - - private int getVisibleTitleHeight() { - WebView webview = mActiveTab != null ? mActiveTab.getWebView() : null; - return webview != null ? webview.getVisibleTitleHeight() : 0; - } - - private AnimatorListener mHideTileBarAnimatorListener = new AnimatorListener() { - - boolean mWasCanceled; - @Override - public void onAnimationStart(Animator animation) { - mWasCanceled = false; - } - - @Override - public void onAnimationRepeat(Animator animation) { - } - - @Override - public void onAnimationEnd(Animator animation) { - if (!mWasCanceled) { - mTitleBar.setTranslationY(0); - } - setTitleGravity(Gravity.NO_GRAVITY); - } - - @Override - public void onAnimationCancel(Animator animation) { - mWasCanceled = true; - } - }; - public boolean isEditingUrl() { return mTitleBar.isEditingUrl(); } @@ -421,12 +293,7 @@ public class XLargeUi extends BaseUi implements ScrollListener { @Override protected void setTitleGravity(int gravity) { - if (mUseQuickControls) { - FrameLayout.LayoutParams lp = - (FrameLayout.LayoutParams) mTitleBar.getLayoutParams(); - lp.gravity = gravity; - mTitleBar.setLayoutParams(lp); - } else { + if (!mUseQuickControls) { super.setTitleGravity(gravity); } } @@ -460,18 +327,6 @@ public class XLargeUi extends BaseUi implements ScrollListener { } @Override - protected void updateAutoLogin(Tab tab, boolean animate) { - mTitleBar.updateAutoLogin(tab, animate); - } - - protected void refreshWebView() { - Tab tab = getActiveTab(); - if ((tab != null) && (tab.getWebView() != null)) { - tab.getWebView().invalidate(); - } - } - - @Override public void setUrlTitle(Tab tab) { super.setUrlTitle(tab); mTabBar.onUrlAndTitle(tab, tab.getUrl(), tab.getTitle()); @@ -485,11 +340,7 @@ public class XLargeUi extends BaseUi implements ScrollListener { } @Override - public void showVoiceTitleBar(String title) { - List<String> vsresults = null; - if (getActiveTab() != null) { - vsresults = getActiveTab().getVoiceSearchResults(); - } + public void showVoiceTitleBar(String title, List<String> vsresults) { mTitleBar.setInVoiceMode(true, vsresults); mTitleBar.setDisplayTitle(title); } @@ -549,19 +400,4 @@ public class XLargeUi extends BaseUi implements ScrollListener { return mTabBar; } - @Override - public void registerDropdownChangeListener(DropdownChangeListener d) { - mTitleBar.registerDropdownChangeListener(d); - } - - @Override - public boolean onPrepareOptionsMenu(Menu menu) { - if (mUseQuickControls) { - mPieControl.onMenuOpened(menu); - return false; - } else { - return true; - } - } - } |