diff options
Diffstat (limited to 'src/com/android/browser/BaseUi.java')
-rw-r--r-- | src/com/android/browser/BaseUi.java | 93 |
1 files changed, 15 insertions, 78 deletions
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java index 939874f..cdfc5a2 100644 --- a/src/com/android/browser/BaseUi.java +++ b/src/com/android/browser/BaseUi.java @@ -34,6 +34,7 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.view.GestureDetector; import android.view.Gravity; import android.view.LayoutInflater; import android.view.Menu; @@ -87,16 +88,13 @@ public abstract class BaseUi implements UI { protected Tab mActiveTab; private InputMethodManager mInputManager; - private Drawable mLockIconSecure; - private Drawable mLockIconMixed; - protected Drawable mGenericFavicon; - protected FrameLayout mContentView; protected FrameLayout mCustomViewContainer; protected FrameLayout mFullscreenContainer; private FrameLayout mFixedTitlebarContainer; private View mCustomView; + private View mDecorView; private WebChromeClient.CustomViewCallback mCustomViewCallback; private int mOriginalOrientation; @@ -125,8 +123,6 @@ public abstract class BaseUi implements UI { Resources res = mActivity.getResources(); mInputManager = (InputMethodManager) browser.getSystemService(Activity.INPUT_METHOD_SERVICE); - mLockIconSecure = res.getDrawable(R.drawable.ic_secure_dark); - mLockIconMixed = res.getDrawable(R.drawable.ic_secure_partial_dark); FrameLayout frameLayout = (FrameLayout) mActivity.getWindow() .getDecorView().findViewById(android.R.id.content); LayoutInflater.from(mActivity) @@ -139,9 +135,7 @@ public abstract class BaseUi implements UI { R.id.fullscreen_custom_content); mErrorConsoleContainer = (LinearLayout) frameLayout .findViewById(R.id.error_console); - setFullscreen(false); - mGenericFavicon = res.getDrawable( - R.drawable.app_web_browser_sm); + setImmersiveFullscreen(BrowserSettings.getInstance().useFullscreen()); mTitleBar = new TitleBar(mActivity, mUiController, this, mContentView); mTitleBar.setProgress(100); @@ -149,6 +143,8 @@ public abstract class BaseUi implements UI { mUrlBarAutoShowManager = new UrlBarAutoShowManager(this); } + + private void cancelStopToast() { if (mStopToast != null) { mStopToast.cancel(); @@ -223,8 +219,6 @@ public abstract class BaseUi implements UI { @Override public void onTabDataChanged(Tab tab) { setUrlTitle(tab); - setFavicon(tab); - updateLockIconToLatest(tab); updateNavigationState(tab); mTitleBar.onTabDataChanged(tab); mNavigationBar.onTabDataChanged(tab); @@ -603,31 +597,6 @@ public abstract class BaseUi implements UI { mTitleBar.updateAutoLogin(tab, animate); } - /** - * Update the lock icon to correspond to our latest state. - */ - protected void updateLockIconToLatest(Tab t) { - if (t != null && t.inForeground()) { - updateLockIconImage(t.getSecurityState()); - } - } - - /** - * Updates the lock-icon image in the title-bar. - */ - private void updateLockIconImage(SecurityState securityState) { - Drawable d = null; - if (securityState == SecurityState.SECURITY_STATE_SECURE) { - d = mLockIconSecure; - } else if (securityState == SecurityState.SECURITY_STATE_MIXED - || securityState == SecurityState.SECURITY_STATE_BAD_CERTIFICATE) { - // TODO: It would be good to have different icons for insecure vs mixed content. - // See http://b/5403800 - d = mLockIconMixed; - } - mNavigationBar.setLock(d); - } - protected void setUrlTitle(Tab tab) { String url = tab.getUrl(); String title = tab.getTitle(); @@ -639,14 +608,6 @@ public abstract class BaseUi implements UI { } } - // Set the favicon in the title bar. - protected void setFavicon(Tab tab) { - if (tab.inForeground()) { - Bitmap icon = tab.getFavicon(); - mNavigationBar.setFavicon(icon); - } - } - @Override public void onActionModeFinished(boolean inLoad) { } @@ -775,27 +736,19 @@ public abstract class BaseUi implements UI { } public void setFullscreen(boolean enabled) { - Window win = mActivity.getWindow(); - WindowManager.LayoutParams winParams = win.getAttributes(); - final int bits = WindowManager.LayoutParams.FLAG_FULLSCREEN; + FrameLayout decor = (FrameLayout) mActivity.getWindow().getDecorView(); + int systemUiVisibility = decor.getSystemUiVisibility(); + final int bits = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_FULLSCREEN + | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; if (enabled) { - winParams.flags |= bits; + systemUiVisibility |= bits; } else { - winParams.flags &= ~bits; - if (mCustomView != null) { - mCustomView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); - } else { - mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); - } + systemUiVisibility &= ~bits; } - win.setAttributes(winParams); - } - - public boolean isFullscreen() { - Window win = mActivity.getWindow(); - WindowManager.LayoutParams winParams = win.getAttributes(); - final int bits = WindowManager.LayoutParams.FLAG_FULLSCREEN; - return (winParams.flags & bits) == bits; + decor.setSystemUiVisibility(systemUiVisibility); } protected void setImmersiveFullscreen (boolean enabled) { @@ -814,22 +767,6 @@ public abstract class BaseUi implements UI { decor.setSystemUiVisibility(systemUiVisibility); } - public Drawable getFaviconDrawable(Bitmap icon) { - Drawable[] array = new Drawable[3]; - array[0] = new PaintDrawable(Color.BLACK); - PaintDrawable p = new PaintDrawable(Color.WHITE); - array[1] = p; - if (icon == null) { - array[2] = mGenericFavicon; - } else { - array[2] = new BitmapDrawable(icon); - } - LayerDrawable d = new LayerDrawable(array); - d.setLayerInset(1, 1, 1, 1, 1); - d.setLayerInset(2, 2, 2, 2, 2); - return d; - } - public boolean isLoading() { return mActiveTab != null ? mActiveTab.inPageLoad() : false; } |