diff --git a/res/drawable-hdpi/fab_ic_call.png b/res/drawable-hdpi/fab_ic_call.png
index 548a391..7bf83fa 100644
--- a/res/drawable-hdpi/fab_ic_call.png
+++ b/res/drawable-hdpi/fab_ic_call.png
Binary files differ
diff --git a/res/drawable-hdpi/fab_ic_dial.png b/res/drawable-hdpi/fab_ic_dial.png
index a856632..3cad4c6 100644
--- a/res/drawable-hdpi/fab_ic_dial.png
+++ b/res/drawable-hdpi/fab_ic_dial.png
Binary files differ
diff --git a/res/drawable-hdpi/fab_teal_background.png b/res/drawable-hdpi/fab_teal_background.png
index 88e8495..e2f01e8 100644
--- a/res/drawable-hdpi/fab_teal_background.png
+++ b/res/drawable-hdpi/fab_teal_background.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_ab_search.png b/res/drawable-hdpi/ic_ab_search.png
index 3702846..d86b219 100644
--- a/res/drawable-hdpi/ic_ab_search.png
+++ b/res/drawable-hdpi/ic_ab_search.png
Binary files differ
diff --git a/res/drawable-mdpi/fab_ic_call.png b/res/drawable-mdpi/fab_ic_call.png
index ff7b345..790f935 100644
--- a/res/drawable-mdpi/fab_ic_call.png
+++ b/res/drawable-mdpi/fab_ic_call.png
Binary files differ
diff --git a/res/drawable-mdpi/fab_ic_dial.png b/res/drawable-mdpi/fab_ic_dial.png
index 3a23245..4c854e1 100644
--- a/res/drawable-mdpi/fab_ic_dial.png
+++ b/res/drawable-mdpi/fab_ic_dial.png
Binary files differ
diff --git a/res/drawable-mdpi/fab_teal_background.png b/res/drawable-mdpi/fab_teal_background.png
index 3a37b27..c95d124 100644
--- a/res/drawable-mdpi/fab_teal_background.png
+++ b/res/drawable-mdpi/fab_teal_background.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_ab_search.png b/res/drawable-mdpi/ic_ab_search.png
index cc9f911..2b23b1e 100644
--- a/res/drawable-mdpi/ic_ab_search.png
+++ b/res/drawable-mdpi/ic_ab_search.png
Binary files differ
diff --git a/res/drawable-xhdpi/fab_ic_call.png b/res/drawable-xhdpi/fab_ic_call.png
index 2bff65e..6bd53f5 100644
--- a/res/drawable-xhdpi/fab_ic_call.png
+++ b/res/drawable-xhdpi/fab_ic_call.png
Binary files differ
diff --git a/res/drawable-xhdpi/fab_ic_dial.png b/res/drawable-xhdpi/fab_ic_dial.png
index 3694017..398a03c 100644
--- a/res/drawable-xhdpi/fab_ic_dial.png
+++ b/res/drawable-xhdpi/fab_ic_dial.png
Binary files differ
diff --git a/res/drawable-xhdpi/fab_teal_background.png b/res/drawable-xhdpi/fab_teal_background.png
index b2ed8cd..f94f759 100644
--- a/res/drawable-xhdpi/fab_teal_background.png
+++ b/res/drawable-xhdpi/fab_teal_background.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_ab_search.png b/res/drawable-xhdpi/ic_ab_search.png
index 718ff49..71f7827 100644
--- a/res/drawable-xhdpi/ic_ab_search.png
+++ b/res/drawable-xhdpi/ic_ab_search.png
Binary files differ
diff --git a/res/drawable-xxhdpi/fab_ic_call.png b/res/drawable-xxhdpi/fab_ic_call.png
index a756b95..6866fa4 100644
--- a/res/drawable-xxhdpi/fab_ic_call.png
+++ b/res/drawable-xxhdpi/fab_ic_call.png
Binary files differ
diff --git a/res/drawable-xxhdpi/fab_ic_dial.png b/res/drawable-xxhdpi/fab_ic_dial.png
index 8f1f21e..5f1cd45 100644
--- a/res/drawable-xxhdpi/fab_ic_dial.png
+++ b/res/drawable-xxhdpi/fab_ic_dial.png
Binary files differ
diff --git a/res/drawable-xxhdpi/fab_teal_background.png b/res/drawable-xxhdpi/fab_teal_background.png
index 6bb4d20..cc0ba27 100644
--- a/res/drawable-xxhdpi/fab_teal_background.png
+++ b/res/drawable-xxhdpi/fab_teal_background.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_ab_search.png b/res/drawable-xxhdpi/ic_ab_search.png
index 4bb5165..142c545 100644
--- a/res/drawable-xxhdpi/ic_ab_search.png
+++ b/res/drawable-xxhdpi/ic_ab_search.png
Binary files differ
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 42d9118..5f45638 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -100,7 +100,7 @@
     <!-- Color for icons in the actionbar -->
     <color name="actionbar_icon_color">#ffffff</color>
 
-    <color name="dialer_dialpad_touch_tint">#1a1dc7db</color>
+    <color name="dialer_dialpad_touch_tint">#331dc7db</color>
 
     <color name="tab_ripple_color">@color/dialer_accent_color</color>
     <color name="tab_selected_underline_color">@color/dialer_accent_color</color>
diff --git a/src/com/android/dialer/list/ShortcutCardsAdapter.java b/src/com/android/dialer/list/ShortcutCardsAdapter.java
index 128871d..088535a 100644
--- a/src/com/android/dialer/list/ShortcutCardsAdapter.java
+++ b/src/com/android/dialer/list/ShortcutCardsAdapter.java
@@ -31,6 +31,7 @@
 
 import com.android.dialer.R;
 import com.android.dialer.calllog.CallLogAdapter;
+import com.android.dialer.calllog.CallLogListItemView;
 import com.android.dialer.calllog.CallLogNotificationsHelper;
 import com.android.dialer.calllog.CallLogQueryHandler;
 import com.android.dialer.list.SwipeHelper.OnItemGestureListener;
@@ -188,10 +189,7 @@
         final View view = mCallLogAdapter.getView(position, convertView == null ?
                 null : wrapper.getChildAt(0), parent);
         wrapper.removeAllViews();
-        final View callLogItem = view.findViewById(R.id.call_log_list_item);
-        // Reset the internal call log item view if it is being recycled
-        callLogItem.setTranslationX(0);
-        callLogItem.setAlpha(1);
+        wrapper.prepareChildView(view);
         wrapper.addView(view);
         return wrapper;
     }
@@ -225,8 +223,7 @@
                     densityScale, pagingTouchSlop);
         }
 
-        @Override
-        public void addView(View view) {
+        private void prepareChildView(View view) {
             view.setBackgroundResource(R.drawable.rounded_corner_bg);
 
             final FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
@@ -251,7 +248,13 @@
                     R.dimen.recent_call_log_item_translation_z);
             view.setTranslationZ(mPreviousTranslationZ);
 
-            super.addView(view);
+            final CallLogListItemView callLogItem =
+                    (CallLogListItemView) view.findViewById(R.id.call_log_list_item);
+            // Reset the internal call log item view if it is being recycled
+            callLogItem.setTranslationX(0);
+            callLogItem.setAlpha(1);
+            callLogItem.setClipBounds(null);
+            setChildrenOpacity(callLogItem, 1.0f);
         }
 
         @Override
@@ -346,9 +349,13 @@
 
             // If the view has any children, fade them out of view.
             final ViewGroup viewGroup = (ViewGroup) viewToClip;
+            setChildrenOpacity(viewGroup, Math.max(0, 1 - 3 * ratioHidden));
+        }
+
+        private void setChildrenOpacity(ViewGroup viewGroup, float alpha) {
             final int count = viewGroup.getChildCount();
             for (int i = 0; i < count; i++) {
-                viewGroup.getChildAt(i).setAlpha(Math.max(0, 1 - 3 * ratioHidden));
+                viewGroup.getChildAt(i).setAlpha(alpha);
             }
         }
     }
