From 7be061ae13582b0c64251d99a206589a6901bf20 Mon Sep 17 00:00:00 2001 From: calderwoodra Date: Wed, 11 Apr 2018 21:43:49 -0700 Subject: Added context menu for favorite contacts in new speed dial. Bug: 36841782,77761023 Test: WIP PiperOrigin-RevId: 192556602 Change-Id: I50c0baef7ef6c8ae533545567ec797283a9a870f --- .../dialer/speeddial/FavoritesViewHolder.java | 34 +++++++++------------- 1 file changed, 13 insertions(+), 21 deletions(-) (limited to 'java/com/android/dialer/speeddial/FavoritesViewHolder.java') diff --git a/java/com/android/dialer/speeddial/FavoritesViewHolder.java b/java/com/android/dialer/speeddial/FavoritesViewHolder.java index 92ffb0a46..4f0cf65a0 100644 --- a/java/com/android/dialer/speeddial/FavoritesViewHolder.java +++ b/java/com/android/dialer/speeddial/FavoritesViewHolder.java @@ -30,7 +30,6 @@ import com.android.dialer.glidephotomanager.GlidePhotoManagerComponent; import com.android.dialer.glidephotomanager.PhotoInfo; import com.android.dialer.speeddial.database.SpeedDialEntry.Channel; import com.android.dialer.speeddial.loader.SpeedDialUiItem; -import java.util.ArrayList; import java.util.List; /** ViewHolder for starred/favorite contacts in {@link SpeedDialFragment}. */ @@ -44,10 +43,7 @@ public class FavoritesViewHolder extends RecyclerView.ViewHolder private final TextView phoneType; private final FrameLayout videoCallIcon; - private boolean hasDefaultNumber; - private boolean isVideoCall; - private String number; - private List channels; + private SpeedDialUiItem speedDialUiItem; public FavoritesViewHolder(View view, FavoriteContactsListener listener) { super(view); @@ -62,20 +58,15 @@ public class FavoritesViewHolder extends RecyclerView.ViewHolder } public void bind(Context context, SpeedDialUiItem speedDialUiItem) { + this.speedDialUiItem = Assert.isNotNull(speedDialUiItem); Assert.checkArgument(speedDialUiItem.isStarred()); nameView.setText(speedDialUiItem.name()); - hasDefaultNumber = speedDialUiItem.defaultChannel() != null; - if (hasDefaultNumber) { - channels = new ArrayList<>(); - isVideoCall = speedDialUiItem.defaultChannel().isVideoTechnology(); - number = speedDialUiItem.defaultChannel().number(); + if (speedDialUiItem.defaultChannel() != null) { phoneType.setText(speedDialUiItem.defaultChannel().label()); - videoCallIcon.setVisibility(isVideoCall ? View.VISIBLE : View.GONE); + videoCallIcon.setVisibility( + speedDialUiItem.defaultChannel().isVideoTechnology() ? View.VISIBLE : View.GONE); } else { - channels = speedDialUiItem.channels(); - isVideoCall = false; - number = null; phoneType.setText(""); videoCallIcon.setVisibility(View.GONE); } @@ -96,17 +87,18 @@ public class FavoritesViewHolder extends RecyclerView.ViewHolder @Override public void onClick(View v) { - if (hasDefaultNumber) { - listener.onClick(number, isVideoCall); + if (speedDialUiItem.defaultChannel() != null) { + listener.onClick(speedDialUiItem.defaultChannel()); } else { - listener.onAmbiguousContactClicked(channels); + listener.onAmbiguousContactClicked(speedDialUiItem.channels()); } } @Override - public boolean onLongClick(View v) { + public boolean onLongClick(View view) { // TODO(calderwoodra): implement drag and drop logic - listener.onLongClick(number); + // TODO(calderwoodra): add bounce/sin wave scale animation + listener.onLongClick(photoView, speedDialUiItem); return true; } @@ -117,9 +109,9 @@ public class FavoritesViewHolder extends RecyclerView.ViewHolder void onAmbiguousContactClicked(List channels); /** Called when the user clicks on a favorite contact. */ - void onClick(String number, boolean isVideoCall); + void onClick(Channel channel); /** Called when the user long clicks on a favorite contact. */ - void onLongClick(String number); + void onLongClick(View view, SpeedDialUiItem speedDialUiItem); } } -- cgit v1.2.3