From 57751c35a0d4f25a817378b0a4b1d14336a0d4e8 Mon Sep 17 00:00:00 2001 From: linyuh Date: Wed, 28 Mar 2018 16:32:54 -0700 Subject: Create a common widget (ContactPhotoView) for a contact photo and its optional badge. Bug: 70988682 Test: ContactPhotoViewTest PiperOrigin-RevId: 190855440 Change-Id: Ib658efa6486b66548c710804049517905dc67b13 --- .../dialer/calllog/ui/NewCallLogViewHolder.java | 21 ++--- .../drawable/contact_photo_badge_background.xml | 23 ----- .../calllog/ui/res/layout/new_call_log_entry.xml | 50 +++-------- .../android/dialer/widget/ContactPhotoView.java | 97 ++++++++++++++++++++++ .../drawable/contact_photo_badge_background.xml | 23 +++++ .../widget/res/layout/contact_photo_view.xml | 50 +++++++++++ 6 files changed, 185 insertions(+), 79 deletions(-) delete mode 100644 java/com/android/dialer/calllog/ui/res/drawable/contact_photo_badge_background.xml create mode 100644 java/com/android/dialer/widget/ContactPhotoView.java create mode 100644 java/com/android/dialer/widget/res/drawable/contact_photo_badge_background.xml create mode 100644 java/com/android/dialer/widget/res/layout/contact_photo_view.xml (limited to 'java') diff --git a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java index aa71ec4e1..9809d97f5 100644 --- a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java +++ b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java @@ -24,9 +24,7 @@ import android.support.annotation.DrawableRes; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.View; -import android.widget.FrameLayout; import android.widget.ImageView; -import android.widget.QuickContactBadge; import android.widget.TextView; import com.android.dialer.calllog.model.CoalescedRow; import com.android.dialer.calllog.ui.menu.NewCallLogMenu; @@ -39,6 +37,7 @@ import com.android.dialer.compat.telephony.TelephonyManagerCompat; import com.android.dialer.glidephotomanager.GlidePhotoManager; import com.android.dialer.oem.MotorolaUtils; import com.android.dialer.time.Clock; +import com.android.dialer.widget.ContactPhotoView; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import java.util.Locale; @@ -48,11 +47,10 @@ import java.util.concurrent.ExecutorService; final class NewCallLogViewHolder extends RecyclerView.ViewHolder { private final Context context; + private final ContactPhotoView contactPhotoView; private final TextView primaryTextView; private final TextView callCountTextView; private final TextView secondaryTextView; - private final QuickContactBadge contactPhoto; - private final FrameLayout contactBadgeContainer; private final ImageView callTypeIcon; private final ImageView hdIcon; private final ImageView wifiIcon; @@ -75,11 +73,10 @@ final class NewCallLogViewHolder extends RecyclerView.ViewHolder { GlidePhotoManager glidePhotoManager) { super(view); this.context = view.getContext(); + contactPhotoView = view.findViewById(R.id.contact_photo_view); primaryTextView = view.findViewById(R.id.primary_text); callCountTextView = view.findViewById(R.id.call_count); secondaryTextView = view.findViewById(R.id.secondary_text); - contactPhoto = view.findViewById(R.id.quick_contact_photo); - contactBadgeContainer = view.findViewById(R.id.contact_badge_container); callTypeIcon = view.findViewById(R.id.call_type_icon); hdIcon = view.findViewById(R.id.hd_icon); wifiIcon = view.findViewById(R.id.wifi_icon); @@ -154,20 +151,12 @@ final class NewCallLogViewHolder extends RecyclerView.ViewHolder { } private void setPhoto(CoalescedRow row) { - glidePhotoManager.loadQuickContactBadge( - contactPhoto, + contactPhotoView.setPhoto( NumberAttributesConverter.toPhotoInfoBuilder(row.getNumberAttributes()) .setFormattedNumber(row.getFormattedNumber()) + .setIsVideo((row.getFeatures() & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO) .setIsVoicemail(row.getIsVoicemailCall()) .build()); - - contactBadgeContainer.setVisibility( - shouldShowVideoCallIcon(row) ? View.VISIBLE : View.INVISIBLE); - } - - private static boolean shouldShowVideoCallIcon(CoalescedRow row) { - return (row.getFeatures() & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO - && !row.getNumberAttributes().getIsSpam(); } private void setFeatureIcons(CoalescedRow row) { diff --git a/java/com/android/dialer/calllog/ui/res/drawable/contact_photo_badge_background.xml b/java/com/android/dialer/calllog/ui/res/drawable/contact_photo_badge_background.xml deleted file mode 100644 index 4dcc7057e..000000000 --- a/java/com/android/dialer/calllog/ui/res/drawable/contact_photo_badge_background.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml index 22854311d..672a9a35e 100644 --- a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml +++ b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml @@ -21,43 +21,13 @@ android:layout_height="wrap_content" android:minHeight="72dp"> - - - - - - - - - - - - + + + + + + \ No newline at end of file diff --git a/java/com/android/dialer/widget/res/layout/contact_photo_view.xml b/java/com/android/dialer/widget/res/layout/contact_photo_view.xml new file mode 100644 index 000000000..e505e5866 --- /dev/null +++ b/java/com/android/dialer/widget/res/layout/contact_photo_view.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3