Merge "Fade original icon's text in as popup closes" into ub-launcher3-dorval-polish

This commit is contained in:
Tony Wickham
2017-06-17 01:31:09 +00:00
committed by Android (Google) Code Review
2 changed files with 35 additions and 3 deletions
+32 -3
View File
@@ -16,10 +16,10 @@
package com.android.launcher3;
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
@@ -30,6 +30,7 @@ import android.graphics.Rect;
import android.graphics.Region;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.support.v4.graphics.ColorUtils;
import android.util.AttributeSet;
import android.util.Property;
import android.util.TypedValue;
@@ -119,6 +120,19 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver {
}
};
private static final Property<BubbleTextView, Integer> TEXT_ALPHA_PROPERTY
= new Property<BubbleTextView, Integer>(Integer.class, "textAlpha") {
@Override
public Integer get(BubbleTextView bubbleTextView) {
return bubbleTextView.getTextAlpha();
}
@Override
public void set(BubbleTextView bubbleTextView, Integer alpha) {
bubbleTextView.setTextAlpha(alpha);
}
};
@ViewDebug.ExportedProperty(category = "launcher")
private boolean mStayPressed;
@ViewDebug.ExportedProperty(category = "launcher")
@@ -533,14 +547,29 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver {
}
public void setTextVisibility(boolean visible) {
Resources res = getResources();
if (visible) {
super.setTextColor(mTextColor);
} else {
super.setTextColor(res.getColor(android.R.color.transparent));
setTextAlpha(0);
}
}
private void setTextAlpha(int alpha) {
super.setTextColor(ColorUtils.setAlphaComponent(mTextColor, alpha));
}
private int getTextAlpha() {
return Color.alpha(getCurrentTextColor());
}
/**
* Creates an animator to fade the text in or out.
* @param fadeIn Whether the text should fade in or fade out.
*/
public Animator createTextAlphaAnimator(boolean fadeIn) {
return ObjectAnimator.ofInt(this, TEXT_ALPHA_PROPERTY, fadeIn ? Color.alpha(mTextColor) : 0);
}
@Override
public void cancelLongPress() {
super.cancelLongPress();
@@ -827,6 +827,9 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra
revealAnim.setDuration((long) res.getInteger(R.integer.config_popupOpenCloseDuration));
revealAnim.setInterpolator(new AccelerateDecelerateInterpolator());
// Animate original icon's text back in.
closeAnim.play(mOriginalIcon.createTextAlphaAnimator(true /* fadeIn */));
closeAnim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {