From 21b13e2975180744020b0fb8c150e4a74c45e30c Mon Sep 17 00:00:00 2001 From: linyuh Date: Thu, 8 Feb 2018 10:44:50 -0800 Subject: Show icon and label for a spam number in the new call log. Bug: 73077158 Test: CallLogEntryTextTest, GlidePhotoManagerImplTest, PhoneLookupInfoConsolidatorTest PiperOrigin-RevId: 185017362 Change-Id: I113472482da2213d17a847054272a22249edc578 --- .../voicemail/listui/NewVoicemailAdapter.java | 11 +++++-- .../voicemail/listui/NewVoicemailFragment.java | 6 +++- .../voicemail/listui/NewVoicemailViewHolder.java | 34 ++++++++++------------ .../voicemail/listui/menu/NewVoicemailMenu.java | 6 ++-- .../voicemail/listui/menu/PrimaryAction.java | 15 ++-------- 5 files changed, 36 insertions(+), 36 deletions(-) (limited to 'java/com/android/dialer/voicemail') diff --git a/java/com/android/dialer/voicemail/listui/NewVoicemailAdapter.java b/java/com/android/dialer/voicemail/listui/NewVoicemailAdapter.java index 318f79783..05a3bc951 100644 --- a/java/com/android/dialer/voicemail/listui/NewVoicemailAdapter.java +++ b/java/com/android/dialer/voicemail/listui/NewVoicemailAdapter.java @@ -42,6 +42,7 @@ import com.android.dialer.common.concurrent.DialerExecutor.SuccessListener; import com.android.dialer.common.concurrent.DialerExecutor.Worker; import com.android.dialer.common.concurrent.DialerExecutorComponent; import com.android.dialer.common.concurrent.ThreadUtil; +import com.android.dialer.glidephotomanager.GlidePhotoManager; import com.android.dialer.time.Clock; import com.android.dialer.voicemail.listui.NewVoicemailViewHolder.NewVoicemailViewHolderListener; import com.android.dialer.voicemail.listui.error.VoicemailErrorMessage; @@ -75,6 +76,7 @@ final class NewVoicemailAdapter extends RecyclerView.Adapter private Cursor cursor; private Cursor voicemailStatusCursor; private final Clock clock; + private final GlidePhotoManager glidePhotoManager; /** {@link Integer#MAX_VALUE} when the "Today" header should not be displayed. */ private int todayHeaderPosition = Integer.MAX_VALUE; @@ -117,11 +119,16 @@ final class NewVoicemailAdapter extends RecyclerView.Adapter new NewVoicemailMediaPlayer(new MediaPlayer()); /** @param cursor whose projection is {@link VoicemailCursorLoader#VOICEMAIL_COLUMNS} */ - NewVoicemailAdapter(Cursor cursor, Clock clock, FragmentManager fragmentManager) { + NewVoicemailAdapter( + Cursor cursor, + Clock clock, + FragmentManager fragmentManager, + GlidePhotoManager glidePhotoManager) { LogUtil.enterBlock("NewVoicemailAdapter"); this.cursor = cursor; this.clock = clock; this.fragmentManager = fragmentManager; + this.glidePhotoManager = glidePhotoManager; initializeMediaPlayerListeners(); updateHeaderPositions(); } @@ -223,7 +230,7 @@ final class NewVoicemailAdapter extends RecyclerView.Adapter case NewVoicemailAdapter.RowType.VOICEMAIL_ENTRY: view = inflater.inflate(R.layout.new_voicemail_entry, viewGroup, false); NewVoicemailViewHolder newVoicemailViewHolder = - new NewVoicemailViewHolder(view, clock, this); + new NewVoicemailViewHolder(view, clock, this, glidePhotoManager); newVoicemailViewHolderSet.add(newVoicemailViewHolder); return newVoicemailViewHolder; default: diff --git a/java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java b/java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java index 8812bcc2f..45a544323 100644 --- a/java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java +++ b/java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java @@ -37,6 +37,7 @@ import com.android.dialer.common.concurrent.ThreadUtil; import com.android.dialer.common.concurrent.UiListener; import com.android.dialer.database.CallLogQueryHandler; import com.android.dialer.database.CallLogQueryHandler.Listener; +import com.android.dialer.glidephotomanager.GlidePhotoManagerComponent; import com.google.common.util.concurrent.ListenableFuture; // TODO(uabdullah): Register content observer for VoicemailContract.Status.CONTENT_URI in onStart @@ -175,7 +176,10 @@ public final class NewVoicemailFragment extends Fragment // TODO(uabdullah): Replace getActivity().getFragmentManager() with getChildFragment() recyclerView.setAdapter( new NewVoicemailAdapter( - data, System::currentTimeMillis, getActivity().getFragmentManager())); + data, + System::currentTimeMillis, + getActivity().getFragmentManager(), + GlidePhotoManagerComponent.get(getContext()).glidePhotoManager())); } else { // This would only be called in cases such as when voicemail has been fetched from the server // or a changed occurred in the annotated table changed (e.g deletes). To check if the change diff --git a/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java b/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java index b0c07df66..5328dd33e 100644 --- a/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java +++ b/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java @@ -27,7 +27,6 @@ import android.graphics.Typeface; import android.net.Uri; import android.provider.VoicemailContract.Voicemails; import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import android.support.annotation.WorkerThread; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; @@ -38,15 +37,14 @@ import android.widget.ImageView; import android.widget.QuickContactBadge; import android.widget.TextView; import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog; +import com.android.dialer.calllogutils.NumberAttributesConverter; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; import com.android.dialer.common.concurrent.DialerExecutor.SuccessListener; import com.android.dialer.common.concurrent.DialerExecutor.Worker; import com.android.dialer.common.concurrent.DialerExecutorComponent; import com.android.dialer.compat.android.provider.VoicemailCompat; -import com.android.dialer.contactphoto.ContactPhotoManager; -import com.android.dialer.contactphoto.NumberAttributeConverter; -import com.android.dialer.lettertile.LetterTileDrawable; +import com.android.dialer.glidephotomanager.GlidePhotoManager; import com.android.dialer.time.Clock; import com.android.dialer.voicemail.listui.menu.NewVoicemailMenu; import com.android.dialer.voicemail.model.VoicemailEntry; @@ -69,9 +67,13 @@ final class NewVoicemailViewHolder extends RecyclerView.ViewHolder implements On private VoicemailEntry voicemailEntryOfViewHolder; @NonNull private Uri viewHolderVoicemailUri; private final NewVoicemailViewHolderListener voicemailViewHolderListener; + private final GlidePhotoManager glidePhotoManager; NewVoicemailViewHolder( - View view, Clock clock, NewVoicemailViewHolderListener newVoicemailViewHolderListener) { + View view, + Clock clock, + NewVoicemailViewHolderListener newVoicemailViewHolderListener, + GlidePhotoManager glidePhotoManager) { super(view); LogUtil.enterBlock("NewVoicemailViewHolder"); this.context = view.getContext(); @@ -84,6 +86,7 @@ final class NewVoicemailViewHolder extends RecyclerView.ViewHolder implements On menuButton = view.findViewById(R.id.menu_button); this.clock = clock; voicemailViewHolderListener = newVoicemailViewHolderListener; + this.glidePhotoManager = glidePhotoManager; viewHolderId = -1; isViewHolderExpanded = false; @@ -144,7 +147,8 @@ final class NewVoicemailViewHolder extends RecyclerView.ViewHolder implements On itemView.setOnClickListener(this); menuButton.setOnClickListener( - NewVoicemailMenu.createOnClickListener(context, voicemailEntryOfViewHolder)); + NewVoicemailMenu.createOnClickListener( + context, voicemailEntryOfViewHolder, glidePhotoManager)); setPhoto(voicemailEntryOfViewHolder); @@ -206,19 +210,11 @@ final class NewVoicemailViewHolder extends RecyclerView.ViewHolder implements On } private void setPhoto(VoicemailEntry voicemailEntry) { - ContactPhotoManager.getInstance(context) - .loadDialerThumbnailOrPhoto( - quickContactBadge, - parseUri(voicemailEntry.numberAttributes().getLookupUri()), - voicemailEntry.numberAttributes().getPhotoId(), - NumberAttributeConverter.getPhotoUri(context, voicemailEntry.numberAttributes()), - VoicemailEntryText.buildPrimaryVoicemailText(context, voicemailEntry), - LetterTileDrawable.TYPE_DEFAULT); - } - - @Nullable - private static Uri parseUri(@Nullable String string) { - return TextUtils.isEmpty(string) ? null : Uri.parse(string); + glidePhotoManager.loadQuickContactBadge( + quickContactBadge, + NumberAttributesConverter.toPhotoInfoBuilder(voicemailEntry.numberAttributes()) + .setFormattedNumber(voicemailEntry.formattedNumber()) + .build()); } void collapseViewHolder() { diff --git a/java/com/android/dialer/voicemail/listui/menu/NewVoicemailMenu.java b/java/com/android/dialer/voicemail/listui/menu/NewVoicemailMenu.java index 9af8de6f5..fbd7fe854 100644 --- a/java/com/android/dialer/voicemail/listui/menu/NewVoicemailMenu.java +++ b/java/com/android/dialer/voicemail/listui/menu/NewVoicemailMenu.java @@ -19,6 +19,7 @@ package com.android.dialer.voicemail.listui.menu; import android.content.Context; import android.view.View; import com.android.dialer.contactactions.ContactActionBottomSheet; +import com.android.dialer.glidephotomanager.GlidePhotoManager; import com.android.dialer.voicemail.model.VoicemailEntry; /** Handles configuration of the bottom sheet menus for voicemail entries. */ @@ -26,11 +27,12 @@ public final class NewVoicemailMenu { /** Creates and returns the OnClickListener which opens the menu for the provided row. */ public static View.OnClickListener createOnClickListener( - Context context, VoicemailEntry voicemailEntry) { + Context context, VoicemailEntry voicemailEntry, GlidePhotoManager glidePhotoManager) { return (view) -> ContactActionBottomSheet.show( context, PrimaryAction.fromVoicemailEntry(context, voicemailEntry), - Modules.fromVoicemailEntry(context, voicemailEntry)); + Modules.fromVoicemailEntry(context, voicemailEntry), + glidePhotoManager); } } diff --git a/java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java b/java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java index ffc53e779..91f505cb0 100644 --- a/java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java +++ b/java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java @@ -18,10 +18,8 @@ package com.android.dialer.voicemail.listui.menu; import android.content.Context; import android.text.TextUtils; +import com.android.dialer.calllogutils.NumberAttributesConverter; import com.android.dialer.contactactions.ContactPrimaryActionInfo; -import com.android.dialer.contactactions.ContactPrimaryActionInfo.PhotoInfo; -import com.android.dialer.contactphoto.NumberAttributeConverter; -import com.android.dialer.lettertile.LetterTileDrawable; import com.android.dialer.voicemail.model.VoicemailEntry; /** Configures the primary action row (top row) for theottom sheet for the Voicemail Tab */ @@ -38,15 +36,8 @@ final class PrimaryAction { return ContactPrimaryActionInfo.builder() .setNumber(voicemailEntry.number()) .setPhotoInfo( - PhotoInfo.builder() - .setPhotoId(voicemailEntry.numberAttributes().getPhotoId()) - .setPhotoUri( - NumberAttributeConverter.getPhotoUri( - context, voicemailEntry.numberAttributes())) - .setIsVideo(false) - .setContactType( - LetterTileDrawable.TYPE_DEFAULT) // TODO(uabdullah): Use proper type. - .setDisplayName(voicemailEntry.numberAttributes().getName()) + NumberAttributesConverter.toPhotoInfoBuilder(voicemailEntry.numberAttributes()) + .setFormattedNumber(voicemailEntry.formattedNumber()) .build()) .setPrimaryText(buildPrimaryVoicemailText(context, voicemailEntry)) .setSecondaryText(buildSecondaryVoicemailText(voicemailEntry)) -- cgit v1.2.3