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));