Match redlines in new call log.

This includes:

-Moved call count to after icons
-Bold PhoneAccount for new calls
-Fixed recycling issues in call type icons and phone account
-Fixed cropping at bottom of "y" character (see b/67913060)
-Reduced nesting in layout
-Removed dimens.xml as it shouldn't be shared by voicemail
-Set the alpha for Wifi/HD icons depending on read/unread status
-Don't color call type icons, except for missed
-Call type icons scale with display size
-Call type icons are larger (18dp) in new UI

Note that FrameLayout is used to ensure that icons/callCount view is not clipped, and instead contact name is ellipsized when the content is too wide to fit.

Bug: 67913060,70989593,70989611
Test: unit and manual
PiperOrigin-RevId: 184605728
Change-Id: Ie36c89354cbe4444ad2b42b6b0040430e396691c
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>