diff --git a/assets/quantum/res/drawable/quantum_ic_call_made_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_call_made_vd_theme_24.xml
new file mode 100644
index 0000000..6069227
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_call_made_vd_theme_24.xml
@@ -0,0 +1,25 @@
+<!--
+  ~ Copyright (C) 2018 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M9,5v2h6.59L4,18.59 5.41,20 17,8.41V15h2V5z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_call_missed_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_call_missed_vd_theme_24.xml
new file mode 100644
index 0000000..657dbf5
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_call_missed_vd_theme_24.xml
@@ -0,0 +1,25 @@
+<!--
+  ~ Copyright (C) 2018 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M19.59,7L12,14.59 6.41,9H11V7H3v8h2v-4.59l7,7 9,-9z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_call_received_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_call_received_vd_theme_24.xml
new file mode 100644
index 0000000..a489532
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_call_received_vd_theme_24.xml
@@ -0,0 +1,25 @@
+<!--
+  ~ Copyright (C) 2018 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M20,5.41L18.59,4 7,15.59V9H5v10h10v-2H8.41z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_signal_wifi_4_bar_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_signal_wifi_4_bar_vd_theme_24.xml
new file mode 100644
index 0000000..8f0b0d2
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_signal_wifi_4_bar_vd_theme_24.xml
@@ -0,0 +1,25 @@
+<!--
+  ~ Copyright (C) 2018 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12.01,21.49L23.64,7c-0.45,-0.34 -4.93,-4 -11.64,-4C5.28,3 0.81,6.66 0.36,7l11.63,14.49 0.01,0.01 0.01,-0.01z"/>
+</vector>
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
index ab94299..ee114b5 100644
--- a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
+++ b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
@@ -17,9 +17,11 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.ColorStateList;
 import android.database.Cursor;
 import android.net.Uri;
 import android.provider.CallLog.Calls;
+import android.support.annotation.DrawableRes;
 import android.support.annotation.Nullable;
 import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
@@ -32,8 +34,8 @@
 import com.android.dialer.calllogutils.CallLogContactTypes;
 import com.android.dialer.calllogutils.CallLogEntryText;
 import com.android.dialer.calllogutils.CallLogIntents;
-import com.android.dialer.calllogutils.CallTypeIconsView;
 import com.android.dialer.common.concurrent.DialerExecutorComponent;
+import com.android.dialer.compat.AppCompatConstants;
 import com.android.dialer.compat.telephony.TelephonyManagerCompat;
 import com.android.dialer.contactphoto.ContactPhotoManager;
 import com.android.dialer.contactphoto.NumberAttributeConverter;
@@ -49,10 +51,13 @@
 
   private final Context context;
   private final TextView primaryTextView;
+  private final TextView callCountTextView;
   private final TextView secondaryTextView;
   private final QuickContactBadge quickContactBadge;
-  private final CallTypeIconsView primaryCallTypeIconsView; // Used for Wifi, HD icons
-  private final CallTypeIconsView secondaryCallTypeIconsView; // Used for call types
+  private final ImageView callTypeIcon;
+  private final ImageView hdIcon;
+  private final ImageView wifiIcon;
+  private final ImageView assistedDialIcon;
   private final TextView phoneAccountView;
   private final ImageView menuButton;
 
@@ -66,10 +71,13 @@
     super(view);
     this.context = view.getContext();
     primaryTextView = view.findViewById(R.id.primary_text);
+    callCountTextView = view.findViewById(R.id.call_count);
     secondaryTextView = view.findViewById(R.id.secondary_text);
     quickContactBadge = view.findViewById(R.id.quick_contact_photo);
-    primaryCallTypeIconsView = view.findViewById(R.id.primary_call_type_icons);
-    secondaryCallTypeIconsView = view.findViewById(R.id.secondary_call_type_icons);
+    callTypeIcon = view.findViewById(R.id.call_type_icon);
+    hdIcon = view.findViewById(R.id.hd_icon);
+    wifiIcon = view.findViewById(R.id.wifi_icon);
+    assistedDialIcon = view.findViewById(R.id.assisted_dial_icon);
     phoneAccountView = view.findViewById(R.id.phone_account);
     menuButton = view.findViewById(R.id.menu_button);
 
@@ -103,27 +111,32 @@
 
     if (isNewMissedCall(row)) {
       primaryTextView.setTextAppearance(R.style.primary_textview_new_call);
-      // TODO(zachh): Styling for call type icons when the call is new.
+      callCountTextView.setTextAppearance(R.style.primary_textview_new_call);
       secondaryTextView.setTextAppearance(R.style.secondary_textview_new_call);
+      phoneAccountView.setTextAppearance(R.style.phoneaccount_textview_new_call);
     } else {
       primaryTextView.setTextAppearance(R.style.primary_textview);
+      callCountTextView.setTextAppearance(R.style.primary_textview);
       secondaryTextView.setTextAppearance(R.style.secondary_textview);
+      phoneAccountView.setTextAppearance(R.style.phoneaccount_textview);
     }
 
     setNumberCalls(row);
     setPhoto(row);
-    setPrimaryCallTypes(row);
-    setSecondaryCallTypes(row);
+    setFeatureIcons(row);
+    setCallTypeIcon(row);
     setPhoneAccounts(row);
     setOnClickListenerForRow(row);
     setOnClickListenerForMenuButon(row);
   }
 
   private void setNumberCalls(CoalescedRow row) {
-    // TODO(zachh): Number of calls shouldn't be text, but a circle with a number inside.
     int numberCalls = row.coalescedIds().getCoalescedIdCount();
     if (numberCalls > 1) {
-      primaryTextView.append(String.format(Locale.getDefault(), " (%d)", numberCalls));
+      callCountTextView.setText(String.format(Locale.getDefault(), "(%d)", numberCalls));
+      callCountTextView.setVisibility(View.VISIBLE);
+    } else {
+      callCountTextView.setVisibility(View.GONE);
     }
   }
 
@@ -149,22 +162,75 @@
     return TextUtils.isEmpty(uri) ? null : Uri.parse(uri);
   }
 
-  private void setPrimaryCallTypes(CoalescedRow row) {
-    primaryCallTypeIconsView.setShowHd(
-        (row.features() & Calls.FEATURES_HD_CALL) == Calls.FEATURES_HD_CALL);
-    primaryCallTypeIconsView.setShowWifi(
-        MotorolaUtils.shouldShowWifiIconInCallLog(context, row.features()));
-    primaryCallTypeIconsView.setShowAssistedDialed(
-        (row.features() & TelephonyManagerCompat.FEATURES_ASSISTED_DIALING)
-            == TelephonyManagerCompat.FEATURES_ASSISTED_DIALING);
+  private void setFeatureIcons(CoalescedRow row) {
+    ColorStateList colorStateList =
+        ColorStateList.valueOf(
+            context.getColor(
+                isNewMissedCall(row)
+                    ? R.color.feature_icon_unread_color
+                    : R.color.feature_icon_read_color));
+
+    // Handle HD Icon
+    if ((row.features() & Calls.FEATURES_HD_CALL) == Calls.FEATURES_HD_CALL) {
+      hdIcon.setVisibility(View.VISIBLE);
+      hdIcon.setImageTintList(colorStateList);
+    } else {
+      hdIcon.setVisibility(View.GONE);
+    }
+
+    // Handle Wifi Icon
+    if (MotorolaUtils.shouldShowWifiIconInCallLog(context, row.features())) {
+      wifiIcon.setVisibility(View.VISIBLE);
+      wifiIcon.setImageTintList(colorStateList);
+    } else {
+      wifiIcon.setVisibility(View.GONE);
+    }
+
+    // Handle Assisted Dialing Icon
+    if ((row.features() & TelephonyManagerCompat.FEATURES_ASSISTED_DIALING)
+        == TelephonyManagerCompat.FEATURES_ASSISTED_DIALING) {
+      assistedDialIcon.setVisibility(View.VISIBLE);
+      assistedDialIcon.setImageTintList(colorStateList);
+    } else {
+      assistedDialIcon.setVisibility(View.GONE);
+    }
   }
 
-  private void setSecondaryCallTypes(CoalescedRow row) {
-    // Only call type icon is shown before the secondary text.
-    secondaryCallTypeIconsView.clear();
-    secondaryCallTypeIconsView.add(row.callType());
+  private void setCallTypeIcon(CoalescedRow row) {
+    @DrawableRes int resId;
+    switch (row.callType()) {
+      case AppCompatConstants.CALLS_INCOMING_TYPE:
+      case AppCompatConstants.CALLS_ANSWERED_EXTERNALLY_TYPE:
+        resId = R.drawable.quantum_ic_call_received_vd_theme_24;
+        break;
+      case AppCompatConstants.CALLS_OUTGOING_TYPE:
+        resId = R.drawable.quantum_ic_call_made_vd_theme_24;
+        break;
+      case AppCompatConstants.CALLS_MISSED_TYPE:
+        resId = R.drawable.quantum_ic_call_missed_vd_theme_24;
+        break;
+      case AppCompatConstants.CALLS_VOICEMAIL_TYPE:
+        throw new IllegalStateException("Voicemails not expected in call log");
+      case AppCompatConstants.CALLS_BLOCKED_TYPE:
+        resId = R.drawable.quantum_ic_block_vd_theme_24;
+        break;
+      default:
+        // It is possible for users to end up with calls with unknown call types in their
+        // call history, possibly due to 3rd party call log implementations (e.g. to
+        // distinguish between rejected and missed calls). Instead of crashing, just
+        // assume that all unknown call types are missed calls.
+        resId = R.drawable.quantum_ic_call_missed_vd_theme_24;
+        break;
+    }
+    callTypeIcon.setImageResource(resId);
 
-    // TODO(zachh): Per new mocks, may need to add method to CallTypeIconsView to disable coloring.
+    if (isNewMissedCall(row)) {
+      callTypeIcon.setImageTintList(
+          ColorStateList.valueOf(context.getColor(R.color.call_type_icon_unread_color)));
+    } else {
+      callTypeIcon.setImageTintList(
+          ColorStateList.valueOf(context.getColor(R.color.call_type_icon_read_color)));
+    }
   }
 
   private void setPhoneAccounts(CoalescedRow row) {
@@ -172,6 +238,8 @@
       phoneAccountView.setText(row.phoneAccountLabel());
       phoneAccountView.setTextColor(row.phoneAccountColor());
       phoneAccountView.setVisibility(View.VISIBLE);
+    } else {
+      phoneAccountView.setVisibility(View.GONE);
     }
   }
 
diff --git a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
index 77ba681..093f866 100644
--- a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
+++ b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
@@ -19,33 +19,31 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginTop="@dimen/call_log_entry_top_margin"
-    android:paddingTop="@dimen/call_log_entry_padding_top_start"
-    android:paddingBottom="@dimen/call_log_entry_padding_bottom_end"
-    android:paddingStart="@dimen/call_log_entry_padding_top_start"
-    android:paddingEnd="@dimen/call_log_entry_padding_bottom_end"
-    android:gravity="center_vertical">
+    android:minHeight="72dp">
 
   <QuickContactBadge
       android:id="@+id/quick_contact_photo"
-      android:layout_width="@dimen/call_log_entry_photo_size"
-      android:layout_height="@dimen/call_log_entry_photo_size"
+      android:layout_width="40dp"
+      android:layout_height="40dp"
+      android:layout_marginStart="16dp"
+      android:layout_marginEnd="16dp"
       android:layout_centerVertical="true"
-      android:padding="@dimen/call_log_entry_photo_padding"
       android:focusable="true"/>
 
-  <LinearLayout
+  <!-- The frame layout is necessary to avoid clipping the icons and ellipsize the text when the
+       content is too wide to fit.
+   -->
+  <FrameLayout
+      android:id="@+id/primary_row"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
-      android:layout_centerVertical="true"
       android:layout_toEndOf="@+id/quick_contact_photo"
-      android:layout_toStartOf="@+id/menu_button"
-      android:orientation="vertical">
+      android:layout_toStartOf="@+id/menu_button">
 
-    <!-- TODO(zachh): Optimize this layout -->
     <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_marginTop="14dp"
         android:orientation="horizontal">
 
       <TextView
@@ -53,57 +51,95 @@
           style="@style/PrimaryText"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
-          android:layout_marginStart="@dimen/call_log_entry_photo_text_margin"/>
+          android:layout_weight="1"
+          android:layout_marginEnd="6dp"
+          android:ellipsize="end"
+          android:lineSpacingMultiplier="1.5"
+          android:singleLine="true"/>
 
-      <!-- HD and Wifi icons are shown adjacent to primary text. Call types are shown adjacent to
-           secondary text (below). -->
-      <com.android.dialer.calllogutils.CallTypeIconsView
-          android:id="@+id/primary_call_type_icons"
+
+      <ImageView
+          android:id="@+id/hd_icon"
           android:layout_width="wrap_content"
-          android:layout_height="wrap_content"
-          android:layout_marginStart="12dp"
-          android:layout_gravity="center_vertical"/>
+          android:layout_height="18dp"
+          android:layout_gravity="center_vertical"
+          android:src="@drawable/quantum_ic_hd_vd_theme_24"
+          />
 
-    </LinearLayout>
-
-    <!-- TODO(zachh): Optimize this layout -->
-    <LinearLayout
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal">
-
-      <!-- Only call types are shown adjacent to secondary text. HD and Wifi icons are shown
-           adjacent to primary text (above). -->
-      <com.android.dialer.calllogutils.CallTypeIconsView
-          android:id="@+id/secondary_call_type_icons"
+      <ImageView
+          android:id="@+id/wifi_icon"
           android:layout_width="wrap_content"
-          android:layout_height="wrap_content"
-          android:layout_marginStart="12dp"
-          android:layout_gravity="center_vertical"/>
+          android:layout_height="18dp"
+          android:layout_gravity="center_vertical"
+          android:src="@drawable/quantum_ic_signal_wifi_4_bar_vd_theme_24"
+          />
+
+      <ImageView
+          android:id="@+id/assisted_dial_icon"
+          android:layout_width="wrap_content"
+          android:layout_height="18dp"
+          android:layout_gravity="center_vertical"
+          android:src="@drawable/quantum_ic_language_vd_theme_24"
+          />
 
       <TextView
-          android:id="@+id/secondary_text"
-          style="@style/SecondaryText"
+          android:id="@+id/call_count"
+          style="@style/PrimaryText"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
-          android:layout_marginStart="@dimen/call_log_entry_photo_text_margin"/>
+          android:layout_marginEnd="6dp"
+          android:lineSpacingMultiplier="1.5"/>
+
     </LinearLayout>
+  </FrameLayout>
+
+  <LinearLayout
+      android:id="@+id/secondary_row"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_below="@+id/primary_row"
+      android:layout_toEndOf="@+id/quick_contact_photo"
+      android:orientation="horizontal">
+
+    <ImageView
+        android:id="@+id/call_type_icon"
+        android:layout_width="wrap_content"
+        android:layout_height="18dp"
+        android:layout_gravity="center_vertical"
+        />
 
     <TextView
-        android:id="@+id/phone_account"
+        android:id="@+id/secondary_text"
         style="@style/SecondaryText"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/call_log_entry_photo_text_margin"
-        android:visibility="gone"/>
+        android:ellipsize="end"
+        android:lineSpacingMultiplier="1.4"
+        android:singleLine="true"/>
   </LinearLayout>
 
+  <TextView
+      android:id="@+id/phone_account"
+      style="@style/SecondaryText"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_below="@+id/secondary_row"
+      android:layout_toEndOf="@+id/quick_contact_photo"
+      android:ellipsize="end"
+      android:singleLine="true"
+      android:visibility="gone"/>
+
   <ImageView
       android:id="@+id/menu_button"
-      android:layout_width="@dimen/call_log_entry_menu_button_size"
-      android:layout_height="@dimen/call_log_entry_menu_button_size"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginTop="12dp"
+      android:layout_marginBottom="12dp"
+      android:layout_marginStart="4dp"
+      android:layout_marginEnd="4dp"
       android:layout_alignParentEnd="true"
       android:layout_centerVertical="true"
+      android:padding="12dp"
       android:background="?android:attr/selectableItemBackgroundBorderless"
       android:scaleType="center"
       android:src="@drawable/quantum_ic_more_vert_vd_theme_24"
diff --git a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_header.xml b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_header.xml
index 13575db..e86ece5 100644
--- a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_header.xml
+++ b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_header.xml
@@ -16,14 +16,16 @@
   -->
 <RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    android:minHeight="48dp"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:height="48dp">
+    android:layout_height="wrap_content">
   <TextView
       android:id="@+id/new_call_log_header_text"
-      style="@style/SecondaryText"
+      style="@style/SubHeader"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
-      android:layout_marginStart="@dimen/call_log_action_icon_margin_start"
-      android:layout_centerVertical="true"/>
+      android:layout_marginStart="16dp"
+      android:layout_marginTop="8dp"
+      android:layout_centerVertical="true"
+      android:layout_gravity="center_vertical"/>
 </RelativeLayout>
diff --git a/java/com/android/dialer/calllog/ui/res/values/colors.xml b/java/com/android/dialer/calllog/ui/res/values/colors.xml
new file mode 100644
index 0000000..0a6d512
--- /dev/null
+++ b/java/com/android/dialer/calllog/ui/res/values/colors.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2018 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<resources>
+  <color name="feature_icon_read_color">#9E9E9E</color>
+  <color name="feature_icon_unread_color">#474747</color>
+
+  <color name="call_type_icon_read_color">#757575</color>
+  <color name="call_type_icon_unread_color">#D32F2F</color>
+</resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/calllog/ui/res/values/dimens.xml b/java/com/android/dialer/calllog/ui/res/values/dimens.xml
deleted file mode 100644
index bfb4c99..0000000
--- a/java/com/android/dialer/calllog/ui/res/values/dimens.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-
-  <!-- call log entries -->
-  <dimen name="call_log_entry_top_margin">6dp</dimen>
-  <dimen name="call_log_entry_padding_bottom_end">16dp</dimen>
-  <dimen name="call_log_entry_padding_top_start">12dp</dimen>
-  <dimen name="call_log_entry_photo_size">48dp</dimen>
-  <dimen name="call_log_entry_photo_padding">4dp</dimen>
-  <dimen name="call_log_entry_photo_text_margin">8dp</dimen>
-  <dimen name="call_log_entry_menu_button_size">48dp</dimen>
-
-</resources>
diff --git a/java/com/android/dialer/calllog/ui/res/values/styles.xml b/java/com/android/dialer/calllog/ui/res/values/styles.xml
index f850237..d521fee 100644
--- a/java/com/android/dialer/calllog/ui/res/values/styles.xml
+++ b/java/com/android/dialer/calllog/ui/res/values/styles.xml
@@ -31,9 +31,17 @@
     <item name="android:fontFamily">sans-serif</item>
   </style>
 
+  <style name="phoneaccount_textview">
+    <item name="android:fontFamily">sans-serif</item>
+  </style>
+
   <style name="secondary_textview_new_call">
     <item name="android:textColor">@color/missed_call</item>
     <item name="android:fontFamily">sans-serif-medium</item>
   </style>
 
+  <style name="phoneaccount_textview_new_call">
+    <item name="android:fontFamily">sans-serif-medium</item>
+  </style>
+
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/MotorolaUtils.java b/java/com/android/dialer/oem/MotorolaUtils.java
index 5a0800e..c1e2da2 100644
--- a/java/com/android/dialer/oem/MotorolaUtils.java
+++ b/java/com/android/dialer/oem/MotorolaUtils.java
@@ -18,6 +18,7 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.provider.CallLog.Calls;
+import android.support.annotation.VisibleForTesting;
 import android.telephony.TelephonyManager;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.PackageUtils;
@@ -40,7 +41,7 @@
   private static final String HD_CALL_FEATRURE = "com.motorola.software.sprint.hd_call";
   // This is used to check if a Motorola device supports WiFi call feature, by checking if a certain
   // package is enabled.
-  private static final String WIFI_CALL_PACKAGE_NAME = "com.motorola.sprintwfc";
+  @VisibleForTesting public static final String WIFI_CALL_PACKAGE_NAME = "com.motorola.sprintwfc";
   // Thi is used to check if a Motorola device supports hidden menu feature.
   private static final String HIDDEN_MENU_FEATURE = "com.motorola.software.sprint.hidden_menu";
 
@@ -126,4 +127,10 @@
     }
     return supportSprintWifiCall;
   }
+
+  @VisibleForTesting
+  public static void resetForTest() {
+    hasCheckedSprintWifiCall = false;
+    supportSprintWifiCall = false;
+  }
 }
diff --git a/java/com/android/dialer/theme/res/values/themes.xml b/java/com/android/dialer/theme/res/values/themes.xml
index 0c07f37..1c57066 100644
--- a/java/com/android/dialer/theme/res/values/themes.xml
+++ b/java/com/android/dialer/theme/res/values/themes.xml
@@ -69,4 +69,11 @@
     <item name="android:ellipsize">end</item>
     <item name="android:maxLines">1</item>
   </style>
+
+  <style name="SubHeader" parent="TextAppearance.AppCompat">
+    <item name="android:textColor">#212121</item>
+    <item name="android:textSize">14sp</item>
+    <item name="android:lineSpacingMultiplier">1.1</item>
+  </style>
+
 </resources>
