Update parameters for creating letter tile avatar

Bug: 142914836
Test: Manually
Change-Id: I06803dec593a1f3928cd81260ce83393ac4bdc69
diff --git a/src/com/android/car/dialer/notification/NotificationUtils.java b/src/com/android/car/dialer/notification/NotificationUtils.java
index 1812c3f..b185911 100644
--- a/src/com/android/car/dialer/notification/NotificationUtils.java
+++ b/src/com/android/car/dialer/notification/NotificationUtils.java
@@ -48,7 +48,8 @@
                             .getDimensionPixelSize(R.dimen.avatar_icon_size);
                     Icon largeIcon = loadContactAvatar(context, info.getAvatarUri(), size);
                     if (largeIcon == null) {
-                        largeIcon = createLetterTile(context, info.getDisplayName(), size);
+                        largeIcon = createLetterTile(context, info.getInitials(),
+                                /* identifier */ info.getDisplayName(), size);
                     }
 
                     return new Pair<>(info.getDisplayName(), largeIcon);
@@ -74,8 +75,10 @@
         return null;
     }
 
-    private static Icon createLetterTile(Context context, String displayName, int avatarSize) {
-        LetterTileDrawable letterTileDrawable = TelecomUtils.createLetterTile(context, displayName);
+    private static Icon createLetterTile(Context context, @Nullable String initials,
+            String identifier, int avatarSize) {
+        LetterTileDrawable letterTileDrawable = TelecomUtils.createLetterTile(context, initials,
+                identifier);
         RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(
                 context.getResources(), letterTileDrawable.toBitmap(avatarSize));
         return createFromRoundedBitmapDrawable(context, roundedBitmapDrawable, avatarSize);
diff --git a/src/com/android/car/dialer/ui/activecall/InCallFragment.java b/src/com/android/car/dialer/ui/activecall/InCallFragment.java
index 81e2b68..b16fe06 100644
--- a/src/com/android/car/dialer/ui/activecall/InCallFragment.java
+++ b/src/com/android/car/dialer/ui/activecall/InCallFragment.java
@@ -63,7 +63,7 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        mDefaultAvatar = TelecomUtils.createLetterTile(getContext(), null);
+        mDefaultAvatar = TelecomUtils.createLetterTile(getContext(), null, null);
     }
 
     /**
@@ -125,7 +125,7 @@
                 }
 
                 LetterTileDrawable letterTile = TelecomUtils.createLetterTile(
-                        getContext(), info.getDisplayName());
+                        getContext(), info.getInitials(), info.getDisplayName());
 
                 Glide.with(this)
                         .load(info.getAvatarUri())
diff --git a/src/com/android/car/dialer/ui/activecall/OnHoldCallUserProfileFragment.java b/src/com/android/car/dialer/ui/activecall/OnHoldCallUserProfileFragment.java
index 1ffebe2..9d6e38e 100644
--- a/src/com/android/car/dialer/ui/activecall/OnHoldCallUserProfileFragment.java
+++ b/src/com/android/car/dialer/ui/activecall/OnHoldCallUserProfileFragment.java
@@ -54,7 +54,7 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        mDefaultAvatar = TelecomUtils.createLetterTile(getContext(), null);
+        mDefaultAvatar = TelecomUtils.createLetterTile(getContext(), null, null);
     }
 
     @Nullable
@@ -91,11 +91,12 @@
         String number = callDetail.getNumber();
         mTitle.setText(TelecomUtils.getFormattedNumber(getContext(), number));
         mAvatarView.setImageDrawable(mDefaultAvatar);
+
         mPhoneNumberInfoFuture = TelecomUtils.getPhoneNumberInfo(getContext(), number)
                 .thenAcceptAsync((info) -> {
                     mTitle.setText(info.getDisplayName());
                     TelecomUtils.setContactBitmapAsync(getContext(), mAvatarView,
-                            info.getAvatarUri(), info.getDisplayName());
+                            info.getAvatarUri(), info.getInitials(), info.getDisplayName());
                 }, getContext().getMainExecutor());
     }
 
diff --git a/src/com/android/car/dialer/ui/calllog/CallLogViewHolder.java b/src/com/android/car/dialer/ui/calllog/CallLogViewHolder.java
index f28761a..677f750 100644
--- a/src/com/android/car/dialer/ui/calllog/CallLogViewHolder.java
+++ b/src/com/android/car/dialer/ui/calllog/CallLogViewHolder.java
@@ -74,6 +74,7 @@
                 mAvatarView.getContext(),
                 mAvatarView,
                 uiCallLog.getAvatarUri(),
+                uiCallLog.getInitials(),
                 uiCallLog.getTitle());
 
         mTitleView.setText(uiCallLog.getTitle());
diff --git a/src/com/android/car/dialer/ui/common/UiCallLogLiveData.java b/src/com/android/car/dialer/ui/common/UiCallLogLiveData.java
index d200b60..ab76514 100644
--- a/src/com/android/car/dialer/ui/common/UiCallLogLiveData.java
+++ b/src/com/android/car/dialer/ui/common/UiCallLogLiveData.java
@@ -134,8 +134,8 @@
             String relativeTime = getRelativeTime(phoneCallLog.getLastCallEndTimestamp());
             if (TelecomUtils.isVoicemailNumber(mContext, number)) {
                 String title = mContext.getString(R.string.voicemail);
-                UiCallLog uiCallLog = new UiCallLog(title,
-                        relativeTime, number, null, phoneCallLog.getAllCallRecords());
+                UiCallLog uiCallLog = new UiCallLog(title, relativeTime, number, null, null,
+                        phoneCallLog.getAllCallRecords());
                 uiCallLogs.add(uiCallLog);
                 continue;
             }
@@ -156,6 +156,7 @@
                     title,
                     getSecondaryText(getType(phoneNumber), relativeTime),
                     number,
+                    contact != null ? contact.getInitials() : null,
                     contact != null ? contact.getAvatarUri() : null,
                     phoneCallLog.getAllCallRecords());
 
diff --git a/src/com/android/car/dialer/ui/common/entity/UiCallLog.java b/src/com/android/car/dialer/ui/common/entity/UiCallLog.java
index 999d66e..9de9730 100644
--- a/src/com/android/car/dialer/ui/common/entity/UiCallLog.java
+++ b/src/com/android/car/dialer/ui/common/entity/UiCallLog.java
@@ -18,6 +18,8 @@
 
 import android.net.Uri;
 
+import androidx.annotation.Nullable;
+
 import com.android.car.dialer.livedata.CallHistoryLiveData;
 import com.android.car.telephony.common.PhoneCallLog;
 
@@ -31,20 +33,31 @@
 public class UiCallLog {
     private final String mTitle;
     private final String mNumber;
+    @Nullable
+    private final String mInitials;
     private final Uri mAvatarUri;
     private final List<PhoneCallLog.Record> mCallRecords;
     private String mText;
 
-    public UiCallLog(String title, String text, String number, Uri avatarUri,
-            List<PhoneCallLog.Record> callRecords) {
+    public UiCallLog(String title, String text, String number, @Nullable String initials,
+            Uri avatarUri, List<PhoneCallLog.Record> callRecords) {
         mTitle = title;
         mText = text;
         mNumber = number;
+        mInitials = initials;
         mAvatarUri = avatarUri;
         mCallRecords = new ArrayList<>(callRecords);
     }
 
     /**
+     * Returns the initials of a call log item. Returns null if this item is not a contact.
+     */
+    @Nullable
+    public String getInitials() {
+        return mInitials;
+    }
+
+    /**
      * Returns the title of a call log item.
      */
     public String getTitle() {
@@ -73,6 +86,7 @@
     }
 
     /** Returns the avatar of the contact associated with the number. */
+    @Nullable
     public Uri getAvatarUri() {
         return mAvatarUri;
     }
diff --git a/src/com/android/car/dialer/ui/contact/ContactDetailsFragment.java b/src/com/android/car/dialer/ui/contact/ContactDetailsFragment.java
index 9d0c63b..dcab2aa 100644
--- a/src/com/android/car/dialer/ui/contact/ContactDetailsFragment.java
+++ b/src/com/android/car/dialer/ui/contact/ContactDetailsFragment.java
@@ -109,7 +109,7 @@
         getArguments().clear();
         if (mAvatarView != null) {
             mAvatarView.setOutlineProvider(ContactAvatarOutputlineProvider.get());
-            TelecomUtils.setContactBitmapAsync(getContext(), mAvatarView, contact, null);
+            TelecomUtils.setContactBitmapAsync(getContext(), mAvatarView, contact);
         }
 
         if (mNameView != null) {
diff --git a/src/com/android/car/dialer/ui/contact/ContactDetailsViewHolder.java b/src/com/android/car/dialer/ui/contact/ContactDetailsViewHolder.java
index 44e6405..fb90eee 100644
--- a/src/com/android/car/dialer/ui/contact/ContactDetailsViewHolder.java
+++ b/src/com/android/car/dialer/ui/contact/ContactDetailsViewHolder.java
@@ -84,7 +84,7 @@
     public void bind(Context context, Contact contact) {
         if (contact == null) {
             ViewUtils.setText(mTitle, R.string.error_contact_deleted);
-            LetterTileDrawable letterTile = TelecomUtils.createLetterTile(context, null);
+            LetterTileDrawable letterTile = TelecomUtils.createLetterTile(context, null, null);
             if (mAvatarView != null) {
                 mAvatarView.setImageDrawable(letterTile);
             }
@@ -103,7 +103,7 @@
         }
 
         LetterTileDrawable letterTile = TelecomUtils.createLetterTile(context,
-                contact.getDisplayName());
+                contact.getInitials(), contact.getDisplayName());
         Glide.with(context)
                 .load(contact.getAvatarUri())
                 .apply(new RequestOptions().centerCrop().error(letterTile))
diff --git a/src/com/android/car/dialer/ui/contact/ContactListViewHolder.java b/src/com/android/car/dialer/ui/contact/ContactListViewHolder.java
index 0596b76..60d909f 100644
--- a/src/com/android/car/dialer/ui/contact/ContactListViewHolder.java
+++ b/src/com/android/car/dialer/ui/contact/ContactListViewHolder.java
@@ -65,7 +65,7 @@
      * Binds the view holder with relevant data.
      */
     public void onBind(Contact contact, boolean showHeader, String header) {
-        TelecomUtils.setContactBitmapAsync(mAvatarView.getContext(), mAvatarView, contact, null);
+        TelecomUtils.setContactBitmapAsync(mAvatarView.getContext(), mAvatarView, contact);
         ViewUtils.setVisible(mHeaderView, showHeader);
         if (showHeader) {
             ViewUtils.setText(mHeaderView, header);
diff --git a/src/com/android/car/dialer/ui/dialpad/DialpadFragment.java b/src/com/android/car/dialer/ui/dialpad/DialpadFragment.java
index aa22ba2..e8f22e2 100644
--- a/src/com/android/car/dialer/ui/dialpad/DialpadFragment.java
+++ b/src/com/android/car/dialer/ui/dialpad/DialpadFragment.java
@@ -258,9 +258,7 @@
                 R.string.primary_number_description, readableLabel) : readableLabel);
         ViewUtils.setVisible(mLabel, true);
 
-        if (mAvatar != null) {
-            TelecomUtils.setContactBitmapAsync(getContext(), mAvatar, contact, null);
-        }
+        TelecomUtils.setContactBitmapAsync(getContext(), mAvatar, contact);
         ViewUtils.setVisible(mAvatar, true);
     }
 
diff --git a/src/com/android/car/dialer/ui/favorite/FavoriteContactViewHolder.java b/src/com/android/car/dialer/ui/favorite/FavoriteContactViewHolder.java
index 93d36e2..137a150 100644
--- a/src/com/android/car/dialer/ui/favorite/FavoriteContactViewHolder.java
+++ b/src/com/android/car/dialer/ui/favorite/FavoriteContactViewHolder.java
@@ -83,6 +83,6 @@
         }
         mText.setText(secondaryText);
 
-        TelecomUtils.setContactBitmapAsync(context, mIcon, contact, null);
+        TelecomUtils.setContactBitmapAsync(context, mIcon, contact);
     }
 }
diff --git a/src/com/android/car/dialer/ui/search/ContactResultViewHolder.java b/src/com/android/car/dialer/ui/search/ContactResultViewHolder.java
index 121be99..ad1d139 100644
--- a/src/com/android/car/dialer/ui/search/ContactResultViewHolder.java
+++ b/src/com/android/car/dialer/ui/search/ContactResultViewHolder.java
@@ -59,7 +59,6 @@
                 v -> mOnShowContactDetailListener.onShowContactDetail(contact));
 
         mContactName.setText(contact.getDisplayName());
-        TelecomUtils.setContactBitmapAsync(mContext, mContactPicture, contact.getAvatarUri(),
-                contact.getDisplayName());
+        TelecomUtils.setContactBitmapAsync(mContext, mContactPicture, contact);
     }
 }
diff --git a/tests/robotests/src/com/android/car/dialer/ui/calllog/CallHistoryFragmentTest.java b/tests/robotests/src/com/android/car/dialer/ui/calllog/CallHistoryFragmentTest.java
index d249e4b..7dd42b9 100644
--- a/tests/robotests/src/com/android/car/dialer/ui/calllog/CallHistoryFragmentTest.java
+++ b/tests/robotests/src/com/android/car/dialer/ui/calllog/CallHistoryFragmentTest.java
@@ -86,8 +86,8 @@
                 CallHistoryLiveData.CallType.INCOMING_TYPE);
         PhoneCallLog.Record record2 = new PhoneCallLog.Record(TIME_STAMP_2,
                 CallHistoryLiveData.CallType.OUTGOING_TYPE);
-        UiCallLog uiCallLog = new UiCallLog(UI_CALLOG_TITLE, UI_CALLOG_TEXT, PHONE_NUMBER, mMockUri,
-                Arrays.asList(record1, record2));
+        UiCallLog uiCallLog = new UiCallLog(UI_CALLOG_TITLE, UI_CALLOG_TEXT, PHONE_NUMBER, null,
+                mMockUri, Arrays.asList(record1, record2));
 
         MutableLiveData<List<Object>> callLog = new MutableLiveData<>();
         callLog.setValue(Arrays.asList(HEADER, uiCallLog));