Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f402808 authored by Tony's avatar Tony
Browse files

Fade original icon's text in as popup closes

Bug: 62444131
Change-Id: If8f91d8455a5952d252f9cdd1b211afb5ee035c7
parent f4087bba
Loading
Loading
Loading
Loading
+32 −3
Original line number Diff line number Diff line
@@ -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,12 +547,27 @@ 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
+3 −0
Original line number Diff line number Diff line
@@ -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) {