From 814deadc2c0f48e9a6153928d51399d4892d3086 Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 15 Jun 2017 18:30:41 -0700 Subject: [PATCH] Animate badge after folder closes Bug: 62586079 Change-Id: I17d7b88730c16f5cce36972dd485fd10b823f742 --- src/com/android/launcher3/folder/Folder.java | 3 +++ src/com/android/launcher3/folder/FolderIcon.java | 12 +++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher3/folder/Folder.java b/src/com/android/launcher3/folder/Folder.java index 80338ca721..9e3055036f 100644 --- a/src/com/android/launcher3/folder/Folder.java +++ b/src/com/android/launcher3/folder/Folder.java @@ -790,6 +790,9 @@ public class Folder extends AbstractFloatingView implements DragSource, View.OnC mFolderIcon.setVisibility(View.VISIBLE); if (wasAnimated) { mFolderIcon.mBackground.animateBackgroundStroke(); + if (mFolderIcon.hasBadge()) { + mFolderIcon.createBadgeScaleAnimator(0f, 1f).start(); + } mFolderIcon.requestFocus(); } } diff --git a/src/com/android/launcher3/folder/FolderIcon.java b/src/com/android/launcher3/folder/FolderIcon.java index 236bf24a18..e538b5fbf5 100644 --- a/src/com/android/launcher3/folder/FolderIcon.java +++ b/src/com/android/launcher3/folder/FolderIcon.java @@ -38,8 +38,6 @@ import android.graphics.drawable.Drawable; import android.os.Parcelable; import android.support.v4.graphics.ColorUtils; import android.util.AttributeSet; -import android.util.DisplayMetrics; -import android.util.Log; import android.util.Property; import android.view.LayoutInflater; import android.view.MotionEvent; @@ -420,13 +418,21 @@ public class FolderIcon extends FrameLayout implements FolderListener { float newBadgeScale = isBadged ? 1f : 0f; // Animate when a badge is first added or when it is removed. if ((wasBadged ^ isBadged) && isShown()) { - ObjectAnimator.ofFloat(this, BADGE_SCALE_PROPERTY, newBadgeScale).start(); + createBadgeScaleAnimator(newBadgeScale).start(); } else { mBadgeScale = newBadgeScale; invalidate(); } } + public Animator createBadgeScaleAnimator(float... badgeScales) { + return ObjectAnimator.ofFloat(this, BADGE_SCALE_PROPERTY, badgeScales); + } + + public boolean hasBadge() { + return mBadgeInfo != null && mBadgeInfo.hasBadge(); + } + static class PreviewItemDrawingParams { PreviewItemDrawingParams(float transX, float transY, float scale, float overlayAlpha) { this.transX = transX;