Move the FAB in the dialpad down 4dp, in Dialer.

Bug: 15328499
Change-Id: I71b227f3233ada7e3f1fd65bc9cce7c919b35cbb
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 82b7838..e8268c9 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -26,6 +26,7 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
+import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.net.Uri;
 import android.os.Bundle;
@@ -168,7 +169,6 @@
     private View mFloatingActionButtonContainer;
     private ImageButton mFloatingActionButton;
 
-    private int mActionBarHeight;
     private boolean mInDialpadSearch;
     private boolean mInRegularSearch;
     private boolean mClearSearchOnPause;
@@ -215,6 +215,10 @@
     private DragDropController mDragDropController;
     private ActionBarController mActionBarController;
 
+    private int mActionBarHeight;
+    private int mFloatingActionButtonMarginBottom;
+    private int mFloatingActionButtonDialpadMarginBottom;
+
     private class OptionsPopupMenu extends PopupMenu {
         public OptionsPopupMenu(Context context, View anchor) {
             super(context, anchor);
@@ -324,6 +328,13 @@
         super.onCreate(savedInstanceState);
         mFirstLaunch = true;
 
+        final Resources resources = getResources();
+        mActionBarHeight = resources.getDimensionPixelSize(R.dimen.action_bar_height);
+        mFloatingActionButtonMarginBottom =
+                resources.getDimensionPixelOffset(R.dimen.floating_action_button_margin_bottom);
+        mFloatingActionButtonDialpadMarginBottom = resources.getDimensionPixelOffset(
+                R.dimen.floating_action_button_dialpad_margin_bottom);
+
         setContentView(R.layout.dialtacts_activity);
         getWindow().setBackgroundDrawable(null);
 
@@ -356,8 +367,6 @@
         final OptionsPopupMenu optionsMenu = buildOptionsMenu(optionsMenuButton);
         optionsMenuButton.setOnTouchListener(optionsMenu.getDragToOpenListener());
 
-        mActionBarHeight = getResources().getDimensionPixelSize(R.dimen.action_bar_height);
-
         // Add the favorites fragment, and the dialpad fragment, but only if savedInstanceState
         // is null. Otherwise the fragment manager takes care of recreating these fragments.
         if (savedInstanceState == null) {
@@ -1103,6 +1112,7 @@
                 (RelativeLayout.LayoutParams) mFloatingActionButtonContainer.getLayoutParams();
         params.removeRule(RelativeLayout.CENTER_HORIZONTAL);
         params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
+        updateFloatingActionButtonMargin(params);
         mFloatingActionButtonContainer.setLayoutParams(params);
     }
 
@@ -1111,9 +1121,20 @@
                 (RelativeLayout.LayoutParams) mFloatingActionButtonContainer.getLayoutParams();
         params.removeRule(RelativeLayout.ALIGN_PARENT_RIGHT);
         params.addRule(RelativeLayout.CENTER_HORIZONTAL);
+        updateFloatingActionButtonMargin(params);
         mFloatingActionButtonContainer.setLayoutParams(params);
     }
 
+    private void updateFloatingActionButtonMargin(RelativeLayout.LayoutParams params) {
+        params.setMarginsRelative(
+                params.getMarginStart(),
+                params.topMargin,
+                params.getMarginEnd(),
+                mIsDialpadShown ?
+                        mFloatingActionButtonDialpadMarginBottom :
+                        mFloatingActionButtonMarginBottom);
+    }
+
     @Override
     public boolean isActionBarShowing() {
         return mActionBarController.isActionBarShowing();