summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/car/dialer/ui/common/UiCallLogLiveData.java3
-rw-r--r--src/com/android/car/dialer/ui/dialpad/DialpadFragment.java45
2 files changed, 43 insertions, 5 deletions
diff --git a/src/com/android/car/dialer/ui/common/UiCallLogLiveData.java b/src/com/android/car/dialer/ui/common/UiCallLogLiveData.java
index 9a5e8467..d200b602 100644
--- a/src/com/android/car/dialer/ui/common/UiCallLogLiveData.java
+++ b/src/com/android/car/dialer/ui/common/UiCallLogLiveData.java
@@ -149,7 +149,8 @@ public class UiCallLogLiveData extends MediatorLiveData<List<Object>> {
} else {
title = mContext.getString(R.string.unknown);
}
- PhoneNumber phoneNumber = contact != null ? contact.getPhoneNumber(number) : null;
+ PhoneNumber phoneNumber = contact != null
+ ? contact.getPhoneNumber(mContext, number) : null;
UiCallLog uiCallLog = new UiCallLog(
title,
diff --git a/src/com/android/car/dialer/ui/dialpad/DialpadFragment.java b/src/com/android/car/dialer/ui/dialpad/DialpadFragment.java
index e0a2f5a2..94a22d6e 100644
--- a/src/com/android/car/dialer/ui/dialpad/DialpadFragment.java
+++ b/src/com/android/car/dialer/ui/dialpad/DialpadFragment.java
@@ -28,6 +28,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
+import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -37,8 +38,10 @@ import com.android.car.apps.common.util.ViewUtils;
import com.android.car.dialer.R;
import com.android.car.dialer.log.L;
import com.android.car.dialer.telecom.UiCallManager;
+import com.android.car.dialer.ui.view.ContactAvatarOutputlineProvider;
import com.android.car.telephony.common.Contact;
import com.android.car.telephony.common.InMemoryPhoneBook;
+import com.android.car.telephony.common.PhoneNumber;
import com.android.car.telephony.common.TelecomUtils;
import com.google.common.annotations.VisibleForTesting;
@@ -74,7 +77,12 @@ public class DialpadFragment extends AbstractDialpadFragment {
.build();
private TextView mTitleView;
+ @Nullable
private TextView mDisplayName;
+ @Nullable
+ private TextView mLabel;
+ @Nullable
+ private ImageView mAvatar;
private ImageButton mDeleteButton;
private int mMode;
@@ -122,6 +130,11 @@ public class DialpadFragment extends AbstractDialpadFragment {
mMode == MODE_EMERGENCY ? R.style.TextAppearance_EmergencyDialNumber
: R.style.TextAppearance_DialNumber);
mDisplayName = rootView.findViewById(R.id.display_name);
+ mLabel = rootView.findViewById(R.id.label);
+ mAvatar = rootView.findViewById(R.id.dialpad_contact_avatar);
+ if (mAvatar != null) {
+ mAvatar.setOutlineProvider(ContactAvatarOutputlineProvider.get());
+ }
View callButton = rootView.findViewById(R.id.call_button);
callButton.setOnClickListener(v -> {
@@ -222,13 +235,37 @@ public class DialpadFragment extends AbstractDialpadFragment {
ViewUtils.setVisible(mDeleteButton, true);
}
- presentContactName(number);
+ presentContactInfo(number.toString());
}
- private void presentContactName(@NonNull StringBuffer number) {
- Contact contact = InMemoryPhoneBook.get().lookupContactEntry(number.toString());
- // OEM might remove the display name view.
+ private void presentContactInfo(@NonNull String number) {
+ Contact contact = InMemoryPhoneBook.get().lookupContactEntry(number);
ViewUtils.setText(mDisplayName, contact == null ? "" : contact.getDisplayName());
+ if (contact != null && getResources().getBoolean(
+ R.bool.config_show_detailed_user_profile_on_dialpad)) {
+ presentContactDetail(contact, number);
+ } else {
+ resetContactInfo();
+ }
+ }
+
+ private void presentContactDetail(@Nullable Contact contact, @NonNull String number) {
+ PhoneNumber phoneNumber = contact.getPhoneNumber(getContext(), number);
+ CharSequence readableLabel = phoneNumber.getReadableLabel(
+ getContext().getResources());
+ ViewUtils.setText(mLabel, phoneNumber.isPrimary() ? getContext().getString(
+ R.string.primary_number_description, readableLabel) : readableLabel);
+ ViewUtils.setVisible(mLabel, true);
+
+ if (mAvatar != null) {
+ TelecomUtils.setContactBitmapAsync(getContext(), mAvatar, contact, null);
+ }
+ ViewUtils.setVisible(mAvatar, true);
+ }
+
+ private void resetContactInfo() {
+ ViewUtils.setVisible(mLabel, false);
+ ViewUtils.setVisible(mAvatar, false);
}
private int getTopOffset() {