diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-01-17 20:23:57 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-01-17 20:23:57 +0000 |
commit | 81acc3f02a35648cf7843683beea4feaccc0cd24 (patch) | |
tree | 0e4f6cf9c383a6183b056440415187f5eca2bf66 | |
parent | 594a9bfeaa1109f40d62c15bcfe3037077d2151d (diff) | |
parent | bb41b26b5d8b438f6d163c56e31f0ff3801c7ed0 (diff) |
Merge changes I6eb4bf23,If020b83c
* changes:
Correctly show the contact's photo in CallDetailsActivity when launched from the new call log.
Handle hiding bubble right after showing it.
-rw-r--r-- | java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java | 4 | ||||
-rw-r--r-- | java/com/android/dialer/calllog/ui/menu/Modules.java | 20 | ||||
-rw-r--r-- | java/com/android/newbubble/NewBubble.java | 19 |
3 files changed, 24 insertions, 19 deletions
diff --git a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java index 604a5e8dc..647c6edb6 100644 --- a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java +++ b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java @@ -136,9 +136,9 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder ContactPhotoManager.getInstance(context) .loadDialerThumbnailOrPhoto( contactPhoto, - contact.hasContactUri() ? Uri.parse(contact.getContactUri()) : null, + contact.getContactUri().isEmpty() ? null : Uri.parse(contact.getContactUri()), contact.getPhotoId(), - contact.hasPhotoUri() ? Uri.parse(contact.getPhotoUri()) : null, + contact.getPhotoUri().isEmpty() ? null : Uri.parse(contact.getPhotoUri()), contact.getNameOrNumber(), contact.getContactType()); diff --git a/java/com/android/dialer/calllog/ui/menu/Modules.java b/java/com/android/dialer/calllog/ui/menu/Modules.java index 92dd41163..fd0606ee0 100644 --- a/java/com/android/dialer/calllog/ui/menu/Modules.java +++ b/java/com/android/dialer/calllog/ui/menu/Modules.java @@ -23,13 +23,13 @@ import android.text.TextUtils; import com.android.dialer.calldetails.CallDetailsActivity; import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.calllog.model.CoalescedRow; +import com.android.dialer.calllogutils.CallLogContactTypes; import com.android.dialer.calllogutils.PhoneAccountUtils; import com.android.dialer.contactactions.ContactActionModule; import com.android.dialer.contactactions.DividerModule; import com.android.dialer.contactactions.IntentModule; import com.android.dialer.contactactions.SharedModules; import com.android.dialer.dialercontact.DialerContact; -import com.android.dialer.lettertile.LetterTileDrawable; import java.util.ArrayList; import java.util.List; @@ -125,23 +125,19 @@ final class Modules { DialerContact.Builder dialerContactBuilder = DialerContact.newBuilder() .setNumber(originalNumber) - .setContactType(LetterTileDrawable.TYPE_DEFAULT) // TODO(zachh): Use proper type. + .setContactType(CallLogContactTypes.getContactType(row)) .setPhotoId(row.numberAttributes().getPhotoId()); - if (!TextUtils.isEmpty(row.numberAttributes().getName())) { + if (!row.numberAttributes().getName().isEmpty()) { dialerContactBuilder.setNameOrNumber(row.numberAttributes().getName()); } else if (!TextUtils.isEmpty(originalNumber)) { dialerContactBuilder.setNameOrNumber(originalNumber); } - if (row.numberAttributes().hasNumberTypeLabel()) { - dialerContactBuilder.setNumberLabel(row.numberAttributes().getNumberTypeLabel()); - } - if (row.numberAttributes().hasPhotoUri()) { - dialerContactBuilder.setPhotoUri(row.numberAttributes().getPhotoUri()); - } - if (row.numberAttributes().hasLookupUri()) { - dialerContactBuilder.setContactUri(row.numberAttributes().getLookupUri()); - } + + dialerContactBuilder.setNumberLabel(row.numberAttributes().getNumberTypeLabel()); + dialerContactBuilder.setPhotoUri(row.numberAttributes().getPhotoUri()); + dialerContactBuilder.setContactUri(row.numberAttributes().getLookupUri()); + if (row.formattedNumber() != null) { dialerContactBuilder.setDisplayNumber(row.formattedNumber()); } diff --git a/java/com/android/newbubble/NewBubble.java b/java/com/android/newbubble/NewBubble.java index cb7a09469..65f7a0aab 100644 --- a/java/com/android/newbubble/NewBubble.java +++ b/java/com/android/newbubble/NewBubble.java @@ -103,7 +103,7 @@ public class NewBubble { @NonNull private NewBubbleInfo currentInfo; - @Visibility private int visibility; + @VisibleForTesting @Visibility int visibility; private boolean expanded; private CharSequence textAfterShow; private int collapseEndAction; @@ -112,6 +112,7 @@ public class NewBubble { private AnimatorSet collapseAnimatorSet; private Integer overrideGravity; @VisibleForTesting AnimatorSet exitAnimatorSet; + @VisibleForTesting AnimatorSet enterAnimatorSet; private final int primaryIconMoveDistance; private final int leftBoundary; @@ -120,15 +121,15 @@ public class NewBubble { /** Type of action after bubble collapse */ @Retention(RetentionPolicy.SOURCE) @IntDef({CollapseEnd.NOTHING, CollapseEnd.HIDE}) - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) - public @interface CollapseEnd { + private @interface CollapseEnd { int NOTHING = 0; int HIDE = 1; } @Retention(RetentionPolicy.SOURCE) + @VisibleForTesting @IntDef({Visibility.ENTERING, Visibility.SHOWING, Visibility.EXITING, Visibility.HIDDEN}) - private @interface Visibility { + @interface Visibility { int HIDDEN = 0; int ENTERING = 1; int SHOWING = 2; @@ -440,7 +441,7 @@ public class NewBubble { ObjectAnimator.ofFloat(viewHolder.getPrimaryAvatar(), "alpha", 1); ObjectAnimator iconAlphaAnimator = ObjectAnimator.ofFloat(viewHolder.getPrimaryIcon(), "alpha", 1); - AnimatorSet enterAnimatorSet = new AnimatorSet(); + enterAnimatorSet = new AnimatorSet(); enterAnimatorSet.playTogether( scaleXAnimator, scaleYAnimator, avatarAlphaAnimator, iconAlphaAnimator); enterAnimatorSet.setInterpolator(new OvershootInterpolator()); @@ -609,6 +610,14 @@ public class NewBubble { // Make bubble non clickable to prevent further buggy actions viewHolder.setChildClickable(false); + if (visibility == Visibility.ENTERING) { + enterAnimatorSet.removeAllListeners(); + enterAnimatorSet.cancel(); + enterAnimatorSet = null; + afterHiding.run(); + return; + } + if (collapseAnimatorSet != null) { collapseEndAction = CollapseEnd.HIDE; return; |