diff options
author | Cassie(Yitong) Wang <cassieyw@google.com> | 2019-10-31 17:23:09 -0700 |
---|---|---|
committer | Cassie(Yitong) Wang <cassieyw@google.com> | 2019-11-14 15:58:56 -0800 |
commit | 44bd972d8fefb1b5ae80a79dc41ab3c4fa9dcbce (patch) | |
tree | a3efb121b92934b8a7b60e82c29e5291a5545c8e | |
parent | fed92cafce7e07ef57b8f4ffac3e7a194b98009f (diff) | |
download | platform_packages_apps_Car_Dialer-44bd972d8fefb1b5ae80a79dc41ab3c4fa9dcbce.tar.gz platform_packages_apps_Car_Dialer-44bd972d8fefb1b5ae80a79dc41ab3c4fa9dcbce.tar.bz2 platform_packages_apps_Car_Dialer-44bd972d8fefb1b5ae80a79dc41ab3c4fa9dcbce.zip |
Update parameters for creating letter tile avatar
Bug: 142914836
Test: Manually
Change-Id: I06803dec593a1f3928cd81260ce83393ac4bdc69
13 files changed, 40 insertions, 23 deletions
diff --git a/src/com/android/car/dialer/notification/NotificationUtils.java b/src/com/android/car/dialer/notification/NotificationUtils.java index 1812c3fc..b185911d 100644 --- a/src/com/android/car/dialer/notification/NotificationUtils.java +++ b/src/com/android/car/dialer/notification/NotificationUtils.java @@ -48,7 +48,8 @@ final class NotificationUtils { .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 @@ final class NotificationUtils { 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 81e2b68d..b16fe067 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 @@ public abstract class InCallFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mDefaultAvatar = TelecomUtils.createLetterTile(getContext(), null); + mDefaultAvatar = TelecomUtils.createLetterTile(getContext(), null, null); } /** @@ -125,7 +125,7 @@ public abstract class InCallFragment extends Fragment { } 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 1ffebe27..9d6e38e0 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 @@ public class OnHoldCallUserProfileFragment extends Fragment { @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 @@ public class OnHoldCallUserProfileFragment extends Fragment { 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 f28761a2..677f7503 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 @@ public class CallLogViewHolder extends RecyclerView.ViewHolder { 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 d200b602..ab76514c 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 @@ public class UiCallLogLiveData extends MediatorLiveData<List<Object>> { 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 @@ public class UiCallLogLiveData extends MediatorLiveData<List<Object>> { 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 999d66e1..9de97309 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 @@ package com.android.car.dialer.ui.common.entity; 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 @@ import java.util.List; 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 @@ public class UiCallLog { } /** 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 9d0c63bc..dcab2aab 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 @@ public class ContactDetailsFragment extends DialerListBaseFragment implements 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 44e64052..fb90eee8 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 @@ class ContactDetailsViewHolder extends RecyclerView.ViewHolder { 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 @@ class ContactDetailsViewHolder extends RecyclerView.ViewHolder { } 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 0596b766..60d909ff 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 @@ public class ContactListViewHolder extends RecyclerView.ViewHolder { * 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 aa22ba2e..e8f22e2c 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 @@ public class DialpadFragment extends AbstractDialpadFragment { 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 93d36e2c..137a150f 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 @@ class FavoriteContactViewHolder extends RecyclerView.ViewHolder { } 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 121be99a..ad1d1391 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 @@ public class ContactResultViewHolder extends RecyclerView.ViewHolder { 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 d249e4b4..7dd42b9a 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 @@ public class CallHistoryFragmentTest { 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)); |