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

Commit 5cfb887b authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix bug where PredictedIcon circle/dot flicker." into main

parents e7efecc5 9bcdb1cb
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -379,12 +379,7 @@ public class PredictedAppIcon extends DoubleShadowBubbleTextView {
    }

    @Override
    public void setIconVisible(boolean visible) {
        setForceHideRing(!visible);
        super.setIconVisible(visible);
    }

    private void setForceHideRing(boolean forceHideRing) {
    public void setForceHideRing(boolean forceHideRing) {
        if (mForceHideRing == forceHideRing) {
            return;
        }
@@ -417,7 +412,7 @@ public class PredictedAppIcon extends DoubleShadowBubbleTextView {

    private void drawEffect(Canvas canvas) {
        // Don't draw ring effect if item is about to be dragged or if the icon is not visible.
        if (mDrawForDrag || !mIsIconVisible) {
        if (mDrawForDrag || !mIsIconVisible || mForceHideRing) {
            return;
        }
        mIconRingPaint.setColor(RING_SHADOW_COLOR);
+2 −2
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ import com.android.launcher3.util.SafeCloseable;
import com.android.launcher3.util.ShortcutUtil;
import com.android.launcher3.util.Themes;
import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.views.IconLabelDotView;
import com.android.launcher3.views.FloatingIconViewCompanion;

import java.text.NumberFormat;
import java.util.HashMap;
@@ -101,7 +101,7 @@ import java.util.Locale;
 * too aggressive.
 */
public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver,
        IconLabelDotView, DraggableView, Reorderable {
        FloatingIconViewCompanion, DraggableView, Reorderable {

    public static final String TAG = "BubbleTextView";

+2 −2
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ import com.android.launcher3.util.Executors;
import com.android.launcher3.util.MultiTranslateDelegate;
import com.android.launcher3.util.Thunk;
import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.views.IconLabelDotView;
import com.android.launcher3.views.FloatingIconViewCompanion;
import com.android.launcher3.widget.PendingAddShortcutInfo;

import java.util.ArrayList;
@@ -93,7 +93,7 @@ import java.util.function.Predicate;
/**
 * An icon that can appear on in the workspace representing an {@link Folder}.
 */
public class FolderIcon extends FrameLayout implements FolderListener, IconLabelDotView,
public class FolderIcon extends FrameLayout implements FolderListener, FloatingIconViewCompanion,
        DraggableView, Reorderable {

    private final MultiTranslateDelegate mTranslateDelegate = new MultiTranslateDelegate(this);
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ import com.android.launcher3.BubbleTextView;
/**
 * Views that contain {@link BubbleTextView} should implement this interface.
 */
public interface BubbleTextHolder extends IconLabelDotView {
public interface BubbleTextHolder extends FloatingIconViewCompanion {
    BubbleTextView getBubbleText();

    @Override
+11 −3
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ import static com.android.launcher3.Flags.enableAdditionalHomeAnimations;
import static com.android.launcher3.Utilities.getFullDrawable;
import static com.android.launcher3.Utilities.mapToRange;
import static com.android.launcher3.util.Executors.MODEL_EXECUTOR;
import static com.android.launcher3.views.IconLabelDotView.setIconAndDotVisible;
import static com.android.launcher3.views.FloatingIconViewCompanion.setPropertiesVisible;

import android.animation.Animator;
import android.content.Context;
@@ -516,6 +516,10 @@ public class FloatingIconView extends FrameLayout implements
            // When closing an app, we want the item on the workspace to be invisible immediately
            updateViewsVisibility(false  /* isVisible */);
        }
        if (mFadeOutView instanceof FloatingIconViewCompanion fivc) {
            fivc.setForceHideDot(true);
            fivc.setForceHideRing(true);
        }
    }

    @Override
@@ -653,6 +657,10 @@ public class FloatingIconView extends FrameLayout implements
            if (view.mFadeOutView != null) {
                view.mFadeOutView.setAlpha(1f);
            }
            if (view.mFadeOutView instanceof FloatingIconViewCompanion fivc) {
                fivc.setForceHideDot(false);
                fivc.setForceHideRing(false);
            }

            if (hideOriginal) {
                view.updateViewsVisibility(true /* isVisible */);
@@ -674,10 +682,10 @@ public class FloatingIconView extends FrameLayout implements

    private void updateViewsVisibility(boolean isVisible) {
        if (mOriginalIcon != null) {
            setIconAndDotVisible(mOriginalIcon, isVisible);
            setPropertiesVisible(mOriginalIcon, isVisible);
        }
        if (mMatchVisibilityView != null) {
            setIconAndDotVisible(mMatchVisibilityView, isVisible);
            setPropertiesVisible(mMatchVisibilityView, isVisible);
        }
    }

Loading