Merge "Fade original icon's text in as popup closes" into ub-launcher3-dorval-polish
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user