Smoother animations please

Change-Id: Ie27fef1678f758bdaf43f90d5baeabdeef3b9f83
diff --git a/res/layout/nav_screen.xml b/res/layout/nav_screen.xml
index eb5059c..2170154 100644
--- a/res/layout/nav_screen.xml
+++ b/res/layout/nav_screen.xml
@@ -62,7 +62,9 @@
         android:id="@+id/galleryholder"
         android:layout_width="match_parent"
         android:layout_height="0dip"
-        android:layout_weight="1" />
+        android:layout_weight="1"
+        android:paddingTop="5dp"
+        android:paddingBottom="5dp" />
     <LinearLayout
         android:id="@+id/navbar"
         android:orientation="horizontal"
diff --git a/res/layout/nav_tab_view.xml b/res/layout/nav_tab_view.xml
index f6af975..f9e471b 100644
--- a/res/layout/nav_tab_view.xml
+++ b/res/layout/nav_tab_view.xml
@@ -27,7 +27,7 @@
         android:id="@+id/titlebar"
         android:orientation="horizontal"
         android:layout_width="match_parent"
-        android:layout_height="44dip" >
+        android:layout_height="@dimen/toolbar_height" >
         <ImageView
             android:id="@+id/favicon"
             android:layout_width="22dip"
@@ -67,4 +67,4 @@
         android:layout_height="wrap_content"
         android:adjustViewBounds="true"
         android:scaleType="fitXY" />
-</com.android.browser.view.TabHolderView>
\ No newline at end of file
+</com.android.browser.view.TabHolderView>
diff --git a/res/values/dimensions.xml b/res/values/dimensions.xml
index 58fbe52..4d1c534 100644
--- a/res/values/dimensions.xml
+++ b/res/values/dimensions.xml
@@ -66,4 +66,5 @@
     <dimen name="preference_widget_width">56dp</dimen>
     <dimen name="nav_tab_spacing">8dp</dimen>
     <dimen name="menu_width">240dip</dimen>
+    <dimen name="toolbar_height">40dip</dimen>
 </resources>
diff --git a/src/com/android/browser/NavScreen.java b/src/com/android/browser/NavScreen.java
index edbaa3b..c61c39f 100644
--- a/src/com/android/browser/NavScreen.java
+++ b/src/com/android/browser/NavScreen.java
@@ -100,6 +100,10 @@
         mPopup = popup;
     }
 
+    protected float getToolbarHeight() {
+        return mActivity.getResources().getDimension(R.dimen.toolbar_height);
+    }
+
     protected void dismissMenu() {
         if (mPopup != null) {
             mPopup.dismiss();
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index fe13139..13a5257 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -298,10 +298,12 @@
         if (mAnimating) return;
         mAnimating = true;
         mNavScreen = new NavScreen(mActivity, mUiController, this);
+        float yoffset = 0;
         WebView web = getWebView();
         if (web != null) {
             int w = web.getWidth();
             int h = web.getHeight();
+            yoffset = mNavScreen.getToolbarHeight() -  web.getVisibleTitleHeight();
             mNavScreen.setTabDimensions((int) (w * NAV_TAB_SCALE),
                     (int) (h * NAV_TAB_SCALE));
         }
@@ -309,9 +311,11 @@
         mCustomViewContainer.addView(mNavScreen, COVER_SCREEN_GRAVITY_CENTER);
         mContentView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
         ObjectAnimator animx = ObjectAnimator.ofFloat(mContentView,
-                "scaleX", 1.0f, 0.85f);
+                "scaleX", 1.0f, NAV_TAB_SCALE);
         ObjectAnimator animy = ObjectAnimator.ofFloat(mContentView,
-                "scaleY", 1.0f, 0.85f);
+                "scaleY", 1.0f, NAV_TAB_SCALE);
+        ObjectAnimator translatey = ObjectAnimator.ofFloat(mContentView,
+                "translationY", 0, yoffset * NAV_TAB_SCALE);
         AnimatorSet anims = new AnimatorSet();
         anims.setDuration(200);
         anims.addListener(new AnimatorListener() {
@@ -333,7 +337,7 @@
             public void onAnimationStart(Animator animation) {
             }
         });
-        anims.playTogether(animx, animy);
+        anims.playTogether(animx, animy, translatey);
         anims.start();
     }
 
@@ -343,6 +347,7 @@
         mContentView.setVisibility(View.GONE);
         mContentView.setScaleX(1.0f);
         mContentView.setScaleY(1.0f);
+        mContentView.setTranslationY(0);
         BrowserWebView web = (BrowserWebView) getWebView();
         if (web != null) {
             mActiveTab.setScreenshot(web.capture());
@@ -358,10 +363,17 @@
         mAnimating = true;
         mNavScreen.setLayerType(View.LAYER_TYPE_HARDWARE, null);
         if (animateToPage) {
+            float yoffset = 0;
+            WebView web = mNavScreen.getSelectedTab().getWebView();
+            if (web != null) {
+                yoffset = mNavScreen.getToolbarHeight() -  web.getVisibleTitleHeight();
+            }
             ObjectAnimator animx = ObjectAnimator.ofFloat(mNavScreen, "scaleX",
-                    1.0f, 1.2f);
+                    1.0f, 1 / NAV_TAB_SCALE);
             ObjectAnimator animy = ObjectAnimator.ofFloat(mNavScreen, "scaleY",
-                    1.0f, 1.2f);
+                    1.0f, 1 / NAV_TAB_SCALE);
+            ObjectAnimator translatey = ObjectAnimator.ofFloat(mNavScreen,
+                    "translationY", 0, -yoffset);
             AnimatorSet anims = new AnimatorSet();
             anims.setDuration(200);
             anims.addListener(new AnimatorListener() {
@@ -383,7 +395,7 @@
                 public void onAnimationStart(Animator animation) {
                 }
             });
-            anims.playTogether(animx, animy);
+            anims.playTogether(animx, animy, translatey);
             anims.start();
         } else {
             finishHideNavScreen();