Init FloatingIconView properties before fetching drawable.

& Make sure properties are reset when recycled.

This fixes the bug that causes BubbleTextView drawable not to get set.

Bug: 207389002
Test: locally disable loading AdaptiveIcons, ensure BubbleTextView
      drawable always gets drawn for closing animation

Change-Id: Ifdbf3e733e27918c57a5e9b23e5a11b65f8f338c
(cherry picked from commit b2670d2051)
Merged-In: Ifdbf3e733e27918c57a5e9b23e5a11b65f8f338c
This commit is contained in:
Jon Miranda
2022-02-14 14:39:01 -08:00
parent 144b0504ad
commit 35d294387c
@@ -564,6 +564,12 @@ public class FloatingIconView extends FrameLayout implements
launcher, parent);
view.recycle();
// Init properties before getting the drawable.
view.mIsVerticalBarLayout = launcher.getDeviceProfile().isVerticalBarLayout();
view.mIsOpening = isOpening;
view.mOriginalIcon = originalView;
view.mPositionOut = positionOut;
// Get the drawable on the background thread
boolean shouldLoadIcon = originalView.getTag() instanceof ItemInfo && hideOriginal;
if (shouldLoadIcon) {
@@ -577,11 +583,6 @@ public class FloatingIconView extends FrameLayout implements
}
sIconLoadResult = null;
view.mIsVerticalBarLayout = launcher.getDeviceProfile().isVerticalBarLayout();
view.mIsOpening = isOpening;
view.mOriginalIcon = originalView;
view.mPositionOut = positionOut;
// Match the position of the original view.
view.matchPositionOf(launcher, originalView, isOpening, positionOut);
@@ -639,6 +640,7 @@ public class FloatingIconView extends FrameLayout implements
mLoadIconSignal = null;
mEndRunnable = null;
mFinalDrawableBounds.setEmpty();
mIsOpening = false;
mPositionOut = null;
mListenerView.setListener(null);
mOriginalIcon = null;