Merge "Move the FAB in the dialpad down 4dp, in Dialer." into lmp-preview-dev
diff --git a/res/layout/call_log_list_item.xml b/res/layout/call_log_list_item.xml
index 9899424..31dcd88 100644
--- a/res/layout/call_log_list_item.xml
+++ b/res/layout/call_log_list_item.xml
@@ -81,6 +81,7 @@
                     android:id="@+id/name"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
+                    android:layout_marginBottom="@dimen/call_log_name_margin_bottom"
                     android:layout_marginEnd="@dimen/call_log_icon_margin"
                     android:textColor="?attr/call_log_primary_text_color"
                     android:textSize="@dimen/call_log_primary_text_size"
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 414e8f8..01ec969 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -33,6 +33,7 @@
     <dimen name="call_log_outer_margin">8dp</dimen>
     <dimen name="call_log_start_margin">16dp</dimen>
     <dimen name="call_log_indent_margin">24dip</dimen>
+    <dimen name="call_log_name_margin_bottom">2dp</dimen>
     <dimen name="call_log_list_item_height">56dip</dimen>
     <dimen name="call_log_list_contact_photo_size">40dip</dimen>
     <dimen name="call_detail_contact_name_margin">24dip</dimen>
@@ -63,9 +64,13 @@
 
     <!-- Dimensions for most recent call shortcut cards -->
     <dimen name="recent_call_log_item_translation_z">4dp</dimen>
-    <dimen name="recent_call_log_item_padding">8dp</dimen>
+    <dimen name="recent_call_log_item_margin">8dp</dimen>
+    <dimen name="recent_call_log_item_margin_bottom">6dp</dimen>
+
     <!-- The maximum amount to clip on the left and right of the recent call shortcut card -->
     <dimen name="recent_call_log_item_horizontal_clip_limit">20dp</dimen>
+    <dimen name="recent_call_log_item_padding_start">8dp</dimen>
+    <dimen name="recent_call_log_item_padding_bottom">7dp</dimen>
 
     <!-- Size of the star icon on the favorites tile. -->
     <dimen name="favorites_star_icon_size">12dp</dimen>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index e47c05e..1044a1e 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -33,9 +33,9 @@
         <item name="activated_background">@drawable/list_item_activated_background</item>
         <item name="section_header_background">@drawable/list_title_holo</item>
         <item name="list_section_header_height">32dip</item>
-        <item name="list_item_padding_top">12dip</item>
+        <item name="list_item_padding_top">12dp</item>
         <item name="list_item_padding_right">0dip</item>
-        <item name="list_item_padding_bottom">12dip</item>
+        <item name="list_item_padding_bottom">12dp</item>
         <item name="list_item_padding_left">0dip</item>
         <item name="list_item_gap_between_image_and_text">8dip</item>
         <item name="list_item_gap_between_label_and_data">5dip</item>
@@ -55,8 +55,9 @@
         <item name="contact_browser_list_padding_right">0dp</item>
         <item name="contact_browser_background">@color/contact_list_background_color</item>
         <item name="list_item_name_text_color">@color/contact_list_name_text_color</item>
-        <item name="list_item_name_text_size">@dimen/contact_browser_list_item_text_size</item>
+        <item name="list_item_name_text_size">16sp</item>
         <item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
+        <item name="list_item_text_offset_top">-2dp</item>
         <!-- CallLog -->
         <item name="call_log_primary_text_color">@color/contact_list_name_text_color</item>
         <item name="call_log_primary_background_color">#000000</item>
@@ -102,7 +103,7 @@
         <!-- CallLog -->
         <item name="call_log_primary_text_color">#404040</item>
         <item name="call_log_primary_background_color">#FFFFFF</item>
-        <item name="call_log_secondary_text_color">#9a9a9a</item>
+        <item name="call_log_secondary_text_color">#8f8f8f</item>
         <item name="call_log_secondary_background_color">#FFFFFF</item>
         <item name="call_log_header_color">#FFFFFF</item>
         <!-- VoicemailStatus -->
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index e8268c9..2d1e2a7 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -267,10 +267,11 @@
                 // no need to do anything here.
                 return;
             }
-            mSearchQuery = newText;
             if (DEBUG) {
                 Log.d(TAG, "onTextChange for mSearchView called with new query: " + newText);
+                Log.d(TAG, "Previous Query: " + mSearchQuery);
             }
+            mSearchQuery = newText;
 
             // Show search fragment only when the query string is changed to non-empty text.
             if (!TextUtils.isEmpty(newText)) {
@@ -696,8 +697,11 @@
     }
 
     private void hideDialpadAndSearchUi() {
-        mSearchView.setText(null);
-        hideDialpadFragment(false, true);
+        if (mIsDialpadShown) {
+            hideDialpadFragment(false, true);
+        } else {
+            exitSearchUi();
+        }
     }
 
     private void hideInputMethod(View view) {
@@ -882,7 +886,6 @@
         setNotInSearchUi();
 
         final FragmentTransaction transaction = getFragmentManager().beginTransaction();
-        transaction.setCustomAnimations(0, android.R.animator.fade_out);
         if (mSmartDialSearchFragment != null) {
             transaction.remove(mSmartDialSearchFragment);
         }
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 4752620..924a17f 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -578,7 +578,15 @@
     protected View newChildView(Context context, ViewGroup parent) {
         LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         View view = inflater.inflate(R.layout.call_log_list_item, parent, false);
-        findAndCacheViews(view);
+
+        // Get the views to bind to and cache them.
+        CallLogListItemViews views = CallLogListItemViews.fromView(view);
+        view.setTag(views);
+
+        // Set text height to false on the TextViews so they don't have extra padding.
+        views.phoneCallDetailsViews.nameView.setElegantTextHeight(false);
+        views.phoneCallDetailsViews.callLocationAndDate.setElegantTextHeight(false);
+
         return view;
     }
 
@@ -599,9 +607,6 @@
     }
 
     private void findAndCacheViews(View view) {
-        // Get the views to bind to.
-        CallLogListItemViews views = CallLogListItemViews.fromView(view);
-        view.setTag(views);
     }
 
     /**
diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java
index 229f7f3..30e0e0f 100644
--- a/src/com/android/dialer/list/ListsFragment.java
+++ b/src/com/android/dialer/list/ListsFragment.java
@@ -52,6 +52,9 @@
 public class ListsFragment extends Fragment implements CallLogQueryHandler.Listener,
         CallLogAdapter.CallFetcher, ViewPager.OnPageChangeListener {
 
+    private static final boolean DEBUG = DialtactsActivity.DEBUG;
+    private static final String TAG = "ListsFragment";
+
     public static final int TAB_INDEX_SPEED_DIAL = 0;
     public static final int TAB_INDEX_RECENTS = 1;
     public static final int TAB_INDEX_ALL_CONTACTS = 2;
@@ -154,11 +157,17 @@
 
         @Override
         public void onPanelOpened(View panel) {
+            if (DEBUG) {
+                Log.d(TAG, "onPanelOpened");
+            }
             mIsPanelOpen = true;
         }
 
         @Override
         public void onPanelClosed(View panel) {
+            if (DEBUG) {
+                Log.d(TAG, "onPanelClosed");
+            }
             mIsPanelOpen = false;
         }
     };
@@ -232,7 +241,6 @@
         // Wipe the cache to refresh the call shortcut item. This is not that expensive because
         // it only contains one item.
         mCallLogAdapter.invalidateCache();
-        mActionBar = null;
         super.onPause();
     }
 
diff --git a/src/com/android/dialer/list/ShortcutCardsAdapter.java b/src/com/android/dialer/list/ShortcutCardsAdapter.java
index 4df44f0..a39bed5 100644
--- a/src/com/android/dialer/list/ShortcutCardsAdapter.java
+++ b/src/com/android/dialer/list/ShortcutCardsAdapter.java
@@ -27,6 +27,7 @@
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
 import android.widget.FrameLayout;
+import android.widget.LinearLayout;
 
 import com.android.dialer.R;
 import com.android.dialer.calllog.CallLogAdapter;
@@ -54,7 +55,10 @@
 
     private final ListsFragment mFragment;
 
-    private final int mCallLogPadding;
+    private final int mCallLogMargin;
+    private final int mCallLogMarginBottom;
+    private final int mCallLogPaddingStart;
+    private final int mCallLogPaddingBottom;
     private final int mCardMaxHorizontalClip;
 
     private final Context mContext;
@@ -104,7 +108,14 @@
         mFragment = fragment;
         mCardMaxHorizontalClip = resources.getDimensionPixelSize(
                 R.dimen.recent_call_log_item_horizontal_clip_limit);
-        mCallLogPadding = resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding);
+        mCallLogMargin = resources.getDimensionPixelSize(R.dimen.recent_call_log_item_margin);
+        mCallLogMarginBottom =
+                resources.getDimensionPixelSize(R.dimen.recent_call_log_item_margin_bottom);
+        mCallLogPaddingStart =
+                resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding_start);
+        mCallLogPaddingBottom =
+                resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding_bottom);
+
         mCallLogAdapter = callLogAdapter;
         mObserver = new CustomDataSetObserver();
         mCallLogAdapter.registerDataSetObserver(mObserver);
@@ -211,8 +222,15 @@
             final FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
                     FrameLayout.LayoutParams.MATCH_PARENT,
                     FrameLayout.LayoutParams.WRAP_CONTENT);
-            params.setMargins(mCallLogPadding, mCallLogPadding, mCallLogPadding, mCallLogPadding);
+            params.setMargins(mCallLogMargin, mCallLogMargin, mCallLogMargin, mCallLogMarginBottom);
             view.setLayoutParams(params);
+
+            LinearLayout actionView =
+                    (LinearLayout)view.findViewById(R.id.primary_action_view);
+            actionView.setPaddingRelative(
+                    mCallLogPaddingStart, actionView.getPaddingTop(),
+                    actionView.getPaddingEnd(), mCallLogPaddingBottom);
+
             view.setTranslationZ(getResources().getDimensionPixelSize(
                     R.dimen.recent_call_log_item_translation_z));
 
diff --git a/src/com/android/dialer/widget/ActionBarController.java b/src/com/android/dialer/widget/ActionBarController.java
index 49506f4..67037a2 100644
--- a/src/com/android/dialer/widget/ActionBarController.java
+++ b/src/com/android/dialer/widget/ActionBarController.java
@@ -7,6 +7,8 @@
 import android.os.Bundle;
 import android.util.Log;
 
+import com.android.contacts.common.animation.AnimUtils;
+import com.android.contacts.common.animation.AnimUtils.AnimationCallback;
 import com.android.dialer.DialtactsActivity;
 
 /**
@@ -26,6 +28,18 @@
 
     private boolean mIsActionBarSlidUp;
 
+    private final AnimationCallback mFadeOutCallback = new AnimationCallback() {
+        @Override
+        public void onAnimationEnd() {
+            slideActionBarUp(false);
+        }
+
+        @Override
+        public void onAnimationCancel() {
+            slideActionBarUp(false);
+        }
+    };
+
     public interface ActivityUi {
         public boolean isInSearchUi();
         public boolean hasSearchQuery();
@@ -127,7 +141,7 @@
             slideActionBarUp(true);
         } else {
             // From the lists fragment
-            mSearchBox.fadeOut();
+            mSearchBox.fadeOut(mFadeOutCallback);
         }
     }
 
diff --git a/src/com/android/dialer/widget/SearchEditTextLayout.java b/src/com/android/dialer/widget/SearchEditTextLayout.java
index ef3ddcc..311d2af 100644
--- a/src/com/android/dialer/widget/SearchEditTextLayout.java
+++ b/src/com/android/dialer/widget/SearchEditTextLayout.java
@@ -123,7 +123,11 @@
     }
 
     public void fadeOut() {
-        AnimUtils.fadeOut(this, ANIMATION_DURATION);
+        fadeOut(null);
+    }
+
+    public void fadeOut(AnimUtils.AnimationCallback callback) {
+        AnimUtils.fadeOut(this, ANIMATION_DURATION, callback);
         mIsFadedOut = true;
     }