diff --git a/res/anim/slide_in.xml b/res/anim/slide_in.xml
index 56318e4..b0eed37 100644
--- a/res/anim/slide_in.xml
+++ b/res/anim/slide_in.xml
@@ -15,6 +15,6 @@
 -->
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@interpolator/ease_in_interpolator"
-    android:duration="666"
+    android:duration="532"
     android:fromYDelta="67%p"
     android:toYDelta="0" />
\ No newline at end of file
diff --git a/res/anim/slide_out.xml b/res/anim/slide_out.xml
index 1cd39a7..231555e 100644
--- a/res/anim/slide_out.xml
+++ b/res/anim/slide_out.xml
@@ -15,6 +15,6 @@
 -->
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@interpolator/ease_out_interpolator"
-    android:duration="429"
+    android:duration="257"
     android:fromYDelta="0"
     android:toYDelta="80%p" />
\ No newline at end of file
diff --git a/res/values/styles.xml b/res/values/styles.xml
index e84f4b5..f90a406 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">8dip</item>
+        <item name="list_item_padding_top">12dip</item>
         <item name="list_item_padding_right">0dip</item>
-        <item name="list_item_padding_bottom">8dip</item>
+        <item name="list_item_padding_bottom">12dip</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,9 +55,10 @@
         <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_text_indent">@dimen/contact_browser_list_item_text_indent</item>
         <!-- CallLog -->
-        <item name="call_log_primary_text_color">#000000</item>
+        <item name="call_log_primary_text_color">@color/contact_list_name_text_color</item>
         <item name="call_log_primary_background_color">#000000</item>
         <item name="call_log_secondary_text_color">@color/dialtacts_secondary_text_color</item>
         <item name="call_log_secondary_background_color">#333333</item>
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 36ae894..82b7838 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -64,6 +64,7 @@
 
 import com.android.contacts.common.CallUtil;
 import com.android.contacts.common.activity.TransactionSafeActivity;
+import com.android.contacts.common.animation.AnimationListenerAdapter;
 import com.android.contacts.common.dialog.ClearFrequentsDialog;
 import com.android.contacts.common.interactions.ImportExportDialogFragment;
 import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
@@ -622,7 +623,7 @@
         updateFloatingActionButton();
         if (animate) {
             Animation slideOut = AnimationUtils.loadAnimation(this, R.anim.slide_out);
-            slideOut.setAnimationListener(new ActivityAnimationListener() {
+            slideOut.setAnimationListener(new AnimationListenerAdapter() {
                 @Override
                 public void onAnimationEnd(Animation animation) {
                     commitDialpadFragmentHide();
@@ -1113,23 +1114,6 @@
         mFloatingActionButtonContainer.setLayoutParams(params);
     }
 
-    /**
-     * Convenience class which implements AnimationListener interface as null-op methods.
-     */
-    private class ActivityAnimationListener implements AnimationListener {
-        @Override
-        public void onAnimationStart(Animation animation) {
-        }
-
-        @Override
-        public void onAnimationEnd(Animation animation) {
-        }
-
-        @Override
-        public void onAnimationRepeat(Animation animation) {
-        }
-    }
-
     @Override
     public boolean isActionBarShowing() {
         return mActionBarController.isActionBarShowing();
