Changing contact name ellipsis to TruncateAt.END on tablet

Change-Id: Id3b17fda68cf8dcdc8ab4b6e211b68365a3039db
diff --git a/src/com/android/contacts/list/ContactListAdapter.java b/src/com/android/contacts/list/ContactListAdapter.java
index 2b1970e..4b34323 100644
--- a/src/com/android/contacts/list/ContactListAdapter.java
+++ b/src/com/android/contacts/list/ContactListAdapter.java
@@ -221,6 +221,7 @@
         view.setUnknownNameText(mUnknownNameText);
         view.setTextWithHighlightingFactory(getTextWithHighlightingFactory());
         view.setQuickContactEnabled(isQuickContactEnabled());
+        view.setActivatedStateSupported(isSelectionVisible());
         return view;
     }
 
diff --git a/src/com/android/contacts/list/ContactListItemView.java b/src/com/android/contacts/list/ContactListItemView.java
index ecfa8e9..2c37242 100644
--- a/src/com/android/contacts/list/ContactListItemView.java
+++ b/src/com/android/contacts/list/ContactListItemView.java
@@ -110,6 +110,8 @@
 
     private CharSequence mUnknownNameText;
 
+    private boolean mActivatedStateSupported;
+
     /**
      * Special class to allow the parent to be pressed without being pressed itself.
      * This way the line of a tab can be pressed, but the image itself is not.
@@ -600,7 +602,7 @@
         if (mNameTextView == null) {
             mNameTextView = new TextView(mContext);
             mNameTextView.setSingleLine(true);
-            mNameTextView.setEllipsize(TruncateAt.MARQUEE);
+            mNameTextView.setEllipsize(getTextEllipsis());
             mNameTextView.setTextAppearance(mContext, android.R.style.TextAppearance_Large);
             mNameTextView.setGravity(Gravity.CENTER_VERTICAL);
             addView(mNameTextView);
@@ -655,7 +657,7 @@
         if (mPhoneticNameTextView == null) {
             mPhoneticNameTextView = new TextView(mContext);
             mPhoneticNameTextView.setSingleLine(true);
-            mPhoneticNameTextView.setEllipsize(TruncateAt.MARQUEE);
+            mPhoneticNameTextView.setEllipsize(getTextEllipsis());
             mPhoneticNameTextView.setTextAppearance(mContext, android.R.style.TextAppearance_Small);
             mPhoneticNameTextView.setTypeface(mPhoneticNameTextView.getTypeface(), Typeface.BOLD);
             addView(mPhoneticNameTextView);
@@ -700,7 +702,7 @@
         if (mLabelView == null) {
             mLabelView = new TextView(mContext);
             mLabelView.setSingleLine(true);
-            mLabelView.setEllipsize(TruncateAt.MARQUEE);
+            mLabelView.setEllipsize(getTextEllipsis());
             mLabelView.setTextAppearance(mContext, android.R.style.TextAppearance_Small);
             mLabelView.setTypeface(mLabelView.getTypeface(), Typeface.BOLD);
             addView(mLabelView);
@@ -731,7 +733,7 @@
         if (mDataView == null) {
             mDataView = new TextView(mContext);
             mDataView.setSingleLine(true);
-            mDataView.setEllipsize(TruncateAt.MARQUEE);
+            mDataView.setEllipsize(getTextEllipsis());
             mDataView.setTextAppearance(mContext, android.R.style.TextAppearance_Small);
             addView(mDataView);
         }
@@ -760,7 +762,7 @@
         if (mSnippetView == null) {
             mSnippetView = new TextView(mContext);
             mSnippetView.setSingleLine(true);
-            mSnippetView.setEllipsize(TruncateAt.MARQUEE);
+            mSnippetView.setEllipsize(getTextEllipsis());
             mSnippetView.setTextAppearance(mContext, android.R.style.TextAppearance_Small);
             mSnippetView.setTypeface(mSnippetView.getTypeface(), Typeface.BOLD);
             addView(mSnippetView);
@@ -787,6 +789,10 @@
         }
     }
 
+    private TruncateAt getTextEllipsis() {
+        return mActivatedStateSupported ? TruncateAt.START : TruncateAt.MARQUEE;
+    }
+
     public void showDisplayName(Cursor cursor, int nameColumnIndex, boolean highlightingEnabled,
             int alternativeNameColumnIndex) {
         cursor.copyStringToBuffer(nameColumnIndex, nameBuffer);
@@ -881,6 +887,10 @@
         setData(dataBuffer.data, dataBuffer.sizeCopied);
     }
 
+    public void setActivatedStateSupported(boolean flag) {
+        this.mActivatedStateSupported = flag;
+    }
+
     @Override
     public void requestLayout() {
         // We will assume that once measured this will not need to resize