Don't embed titlebar in WebView

    Bug: 5032345

The titlebar gets attached to an overlay and tracks the scrolling
of the WebView at the top of the page.

Change-Id: I60b2163bb7a3642813823995278722455f566f36
diff --git a/src/com/android/browser/TitleBar.java b/src/com/android/browser/TitleBar.java
index 8fa4d43..bb0eec5 100644
--- a/src/com/android/browser/TitleBar.java
+++ b/src/com/android/browser/TitleBar.java
@@ -21,7 +21,6 @@
 import android.animation.ObjectAnimator;
 import android.content.Context;
 import android.content.res.Resources;
-import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -31,7 +30,6 @@
 import android.view.animation.AnimationUtils;
 import android.view.animation.DecelerateInterpolator;
 import android.webkit.WebView;
-import android.widget.AbsoluteLayout;
 import android.widget.FrameLayout;
 import android.widget.RelativeLayout;
 
@@ -67,6 +65,7 @@
         mBaseUi = ui;
         mParent = parent;
         initLayout(context);
+        mParent.addView(this, makeLayoutParams());
     }
 
     private void initLayout(Context context) {
@@ -107,7 +106,11 @@
 
     public void setUseQuickControls(boolean use) {
         mUseQuickControls = use;
-        setLayoutParams(makeLayoutParams());
+        if (use) {
+            this.setVisibility(View.GONE);
+        } else {
+            this.setVisibility(View.VISIBLE);
+        }
     }
 
     void setShowProgressOnly(boolean progress) {
@@ -132,7 +135,8 @@
 
     void show() {
         if (mUseQuickControls) {
-            mParent.addView(this);
+            this.setVisibility(View.VISIBLE);
+            this.setTranslationY(0);
         } else {
             if (!mSkipTitleBarAnimations) {
                 cancelTitleBarAnimation(false);
@@ -147,14 +151,13 @@
                 setupTitleBarAnimator(mTitleBarAnimator);
                 mTitleBarAnimator.start();
             }
-            mBaseUi.setTitleGravity(Gravity.TOP);
         }
         mShowing = true;
     }
 
     void hide() {
         if (mUseQuickControls) {
-            mParent.removeView(this);
+            this.setVisibility(View.GONE);
         } else {
             if (!mSkipTitleBarAnimations) {
                 cancelTitleBarAnimation(false);
@@ -166,7 +169,7 @@
                 setupTitleBarAnimator(mTitleBarAnimator);
                 mTitleBarAnimator.start();
             } else {
-                mBaseUi.setTitleGravity(Gravity.NO_GRAVITY);
+                onScrollChanged();
             }
         }
         mShowing = false;
@@ -188,10 +191,8 @@
 
     private AnimatorListener mHideTileBarAnimatorListener = new AnimatorListener() {
 
-        boolean mWasCanceled;
         @Override
         public void onAnimationStart(Animator animation) {
-            mWasCanceled = false;
         }
 
         @Override
@@ -200,15 +201,12 @@
 
         @Override
         public void onAnimationEnd(Animator animation) {
-            if (!mWasCanceled) {
-                setTranslationY(0);
-            }
-            mBaseUi.setTitleGravity(Gravity.NO_GRAVITY);
+            // update position
+            onScrollChanged();
         }
 
         @Override
         public void onAnimationCancel(Animator animation) {
-            mWasCanceled = true;
         }
     };
 
@@ -252,6 +250,7 @@
     }
 
     public int getEmbeddedHeight() {
+        if (mUseQuickControls) return 0;
         int height = mNavBar.getHeight();
         if (mAutoLogin != null && mAutoLogin.getVisibility() == View.VISIBLE) {
             height += mAutoLogin.getHeight();
@@ -355,14 +354,8 @@
     }
 
     private ViewGroup.LayoutParams makeLayoutParams() {
-        if (mUseQuickControls) {
-            return new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT,
-                    LayoutParams.WRAP_CONTENT);
-        } else {
-            return new AbsoluteLayout.LayoutParams(
-                    LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT,
-                    0, 0);
-        }
+        return new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT,
+                LayoutParams.WRAP_CONTENT);
     }
 
     @Override
@@ -390,4 +383,10 @@
         }
     }
 
+    public void onScrollChanged() {
+        if (!mShowing) {
+            setTranslationY(getVisibleTitleHeight() - getEmbeddedHeight());
+        }
+    }
+
 }