DO NOT MERGE Add fading edge to text views in contacts list

Bug: 4471416
Change-Id: Iaeb0df9e2c7624beb7b57592542971228d7fe1af
diff --git a/res/values-sw580dp-w720dp/styles.xml b/res/values-sw580dp-w720dp/styles.xml
index ad21632..7a507fc 100644
--- a/res/values-sw580dp-w720dp/styles.xml
+++ b/res/values-sw580dp-w720dp/styles.xml
@@ -25,6 +25,7 @@
         <item name="list_item_padding_right">24dip</item>
         <item name="list_item_padding_bottom">0dip</item>
         <item name="list_item_padding_left">0dip</item>
+        <item name="list_item_fading_edge_length">15dip</item>
         <item name="list_item_gap_between_image_and_text">16dip</item>
         <item name="list_item_gap_between_label_and_data">5dip</item>
         <item name="list_item_call_button_padding">14dip</item>
diff --git a/res/values-sw580dp/styles.xml b/res/values-sw580dp/styles.xml
index caa5283..cf30df7 100644
--- a/res/values-sw580dp/styles.xml
+++ b/res/values-sw580dp/styles.xml
@@ -25,6 +25,7 @@
         <item name="list_item_padding_right">20dip</item>
         <item name="list_item_padding_bottom">0dip</item>
         <item name="list_item_padding_left">0dip</item>
+        <item name="list_item_fading_edge_length">15dip</item>
         <item name="list_item_gap_between_image_and_text">8dip</item>
         <item name="list_item_gap_between_label_and_data">5dip</item>
         <item name="list_item_call_button_padding">14dip</item>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 8aa527d..561e591 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -95,6 +95,7 @@
         <attr name="list_item_padding_right" format="dimension"/>
         <attr name="list_item_padding_bottom" format="dimension"/>
         <attr name="list_item_padding_left" format="dimension"/>
+        <attr name="list_item_fading_edge_length" format="dimension"/>
         <attr name="list_item_gap_between_image_and_text" format="dimension"/>
         <attr name="list_item_gap_between_label_and_data" format="dimension"/>
         <attr name="list_item_call_button_padding" format="dimension"/>
@@ -117,6 +118,7 @@
         <item name="list_item_padding_right">11dip</item>
         <item name="list_item_padding_bottom">4dip</item>
         <item name="list_item_padding_left">4dip</item>
+        <item name="list_item_fading_edge_length">15dip</item>
         <item name="list_item_gap_between_image_and_text">8dip</item>
         <item name="list_item_gap_between_label_and_data">5dip</item>
         <item name="list_item_call_button_padding">14dip</item>
diff --git a/src/com/android/contacts/list/ContactListItemView.java b/src/com/android/contacts/list/ContactListItemView.java
index fe5f8e2..116f3f6 100644
--- a/src/com/android/contacts/list/ContactListItemView.java
+++ b/src/com/android/contacts/list/ContactListItemView.java
@@ -63,6 +63,7 @@
     private final int mPaddingRight;
     private final int mPaddingBottom;
     private final int mPaddingLeft;
+    private final int mFadingEdgeLength;
     private final int mGapBetweenImageAndText;
     private final int mGapBetweenLabelAndData;
     private final int mCallButtonPadding;
@@ -168,6 +169,8 @@
                 R.styleable.ContactListItemView_list_item_padding_left, 0);
         mPaddingRight = a.getDimensionPixelOffset(
                 R.styleable.ContactListItemView_list_item_padding_right, 0);
+        mFadingEdgeLength = a.getDimensionPixelOffset(
+                R.styleable.ContactListItemView_list_item_fading_edge_length, 0);
         mGapBetweenImageAndText = a.getDimensionPixelOffset(
                 R.styleable.ContactListItemView_list_item_gap_between_image_and_text, 0);
         mGapBetweenLabelAndData = a.getDimensionPixelOffset(
@@ -614,6 +617,8 @@
         if (mNameTextView == null) {
             mNameTextView = new TextView(mContext);
             mNameTextView.setSingleLine(true);
+            mNameTextView.setHorizontalFadingEdgeEnabled(true);
+            mNameTextView.setFadingEdgeLength(mFadingEdgeLength);
             mNameTextView.setEllipsize(getTextEllipsis());
             mNameTextView.setTextAppearance(mContext, android.R.style.TextAppearance_Medium);
             mNameTextView.setGravity(Gravity.CENTER_VERTICAL);
@@ -669,6 +674,8 @@
         if (mPhoneticNameTextView == null) {
             mPhoneticNameTextView = new TextView(mContext);
             mPhoneticNameTextView.setSingleLine(true);
+            mPhoneticNameTextView.setHorizontalFadingEdgeEnabled(true);
+            mPhoneticNameTextView.setFadingEdgeLength(mFadingEdgeLength);
             mPhoneticNameTextView.setEllipsize(getTextEllipsis());
             mPhoneticNameTextView.setTextAppearance(mContext, android.R.style.TextAppearance_Small);
             mPhoneticNameTextView.setTypeface(mPhoneticNameTextView.getTypeface(), Typeface.BOLD);
@@ -714,6 +721,8 @@
         if (mLabelView == null) {
             mLabelView = new TextView(mContext);
             mLabelView.setSingleLine(true);
+            mLabelView.setHorizontalFadingEdgeEnabled(true);
+            mLabelView.setFadingEdgeLength(mFadingEdgeLength);
             mLabelView.setEllipsize(getTextEllipsis());
             mLabelView.setTextAppearance(mContext, android.R.style.TextAppearance_Small);
             mLabelView.setTypeface(mLabelView.getTypeface(), Typeface.BOLD);
@@ -745,6 +754,8 @@
         if (mDataView == null) {
             mDataView = new TextView(mContext);
             mDataView.setSingleLine(true);
+            mDataView.setHorizontalFadingEdgeEnabled(true);
+            mDataView.setFadingEdgeLength(mFadingEdgeLength);
             mDataView.setEllipsize(getTextEllipsis());
             mDataView.setTextAppearance(mContext, android.R.style.TextAppearance_Small);
             addView(mDataView);
@@ -774,6 +785,8 @@
         if (mSnippetView == null) {
             mSnippetView = new TextView(mContext);
             mSnippetView.setSingleLine(true);
+            mSnippetView.setHorizontalFadingEdgeEnabled(true);
+            mSnippetView.setFadingEdgeLength(mFadingEdgeLength);
             mSnippetView.setEllipsize(getTextEllipsis());
             mSnippetView.setTextAppearance(mContext, android.R.style.TextAppearance_Small);
             mSnippetView.setTypeface(mSnippetView.getTypeface(), Typeface.BOLD);