Loading src/com/android/launcher3/views/FloatingIconView.java +20 −4 Original line number Diff line number Diff line Loading @@ -88,7 +88,6 @@ public class FloatingIconView extends FrameLayout implements private IconLoadResult mIconLoadResult; // Draw the drawable of the BubbleTextView behind ClipIconView to reveal the built in shadow. private View mBtvDrawable; private ClipIconView mClipIconView; Loading Loading @@ -349,10 +348,23 @@ public class FloatingIconView extends FrameLayout implements } } if (!mIsOpening && btvIcon != null) { setOriginalDrawableBackground(btvIcon); invalidate(); } /** * Draws the drawable of the BubbleTextView behind ClipIconView * * This is used to: * - Have icon displayed while Adaptive Icon is loading * - Displays the built in shadow to ensure a clean handoff * * Allows nullable as this may be cleared when drawing is deferred to ClipIconView. */ private void setOriginalDrawableBackground(@Nullable Drawable btvIcon) { if (!mIsOpening) { mBtvDrawable.setBackground(btvIcon); } invalidate(); } /** Loading Loading @@ -457,7 +469,9 @@ public class FloatingIconView extends FrameLayout implements @Override public void onAnimationStart(Animator animator) { if (mIconLoadResult != null && mIconLoadResult.isIconLoaded) { if ((mIconLoadResult != null && mIconLoadResult.isIconLoaded) || (!mIsOpening && mBtvDrawable.getBackground() != null)) { // No need to wait for icon load since we can display the BubbleTextView drawable. setVisibility(View.VISIBLE); } if (!mIsOpening && mOriginalIcon != null) { Loading Loading @@ -520,6 +534,7 @@ public class FloatingIconView extends FrameLayout implements IconLoadResult result = new IconLoadResult(info, btvIcon == null ? false : btvIcon.isThemed()); result.btvDrawable = btvIcon; final long fetchIconId = sFetchIconId++; MODEL_EXECUTOR.getHandler().postAtFrontOfQueue(() -> { Loading Loading @@ -558,6 +573,7 @@ public class FloatingIconView extends FrameLayout implements view.mIconLoadResult = fetchIcon(launcher, originalView, (ItemInfo) originalView.getTag(), isOpening); } view.setOriginalDrawableBackground(view.mIconLoadResult.btvDrawable); } sIconLoadResult = null; Loading Loading
src/com/android/launcher3/views/FloatingIconView.java +20 −4 Original line number Diff line number Diff line Loading @@ -88,7 +88,6 @@ public class FloatingIconView extends FrameLayout implements private IconLoadResult mIconLoadResult; // Draw the drawable of the BubbleTextView behind ClipIconView to reveal the built in shadow. private View mBtvDrawable; private ClipIconView mClipIconView; Loading Loading @@ -349,10 +348,23 @@ public class FloatingIconView extends FrameLayout implements } } if (!mIsOpening && btvIcon != null) { setOriginalDrawableBackground(btvIcon); invalidate(); } /** * Draws the drawable of the BubbleTextView behind ClipIconView * * This is used to: * - Have icon displayed while Adaptive Icon is loading * - Displays the built in shadow to ensure a clean handoff * * Allows nullable as this may be cleared when drawing is deferred to ClipIconView. */ private void setOriginalDrawableBackground(@Nullable Drawable btvIcon) { if (!mIsOpening) { mBtvDrawable.setBackground(btvIcon); } invalidate(); } /** Loading Loading @@ -457,7 +469,9 @@ public class FloatingIconView extends FrameLayout implements @Override public void onAnimationStart(Animator animator) { if (mIconLoadResult != null && mIconLoadResult.isIconLoaded) { if ((mIconLoadResult != null && mIconLoadResult.isIconLoaded) || (!mIsOpening && mBtvDrawable.getBackground() != null)) { // No need to wait for icon load since we can display the BubbleTextView drawable. setVisibility(View.VISIBLE); } if (!mIsOpening && mOriginalIcon != null) { Loading Loading @@ -520,6 +534,7 @@ public class FloatingIconView extends FrameLayout implements IconLoadResult result = new IconLoadResult(info, btvIcon == null ? false : btvIcon.isThemed()); result.btvDrawable = btvIcon; final long fetchIconId = sFetchIconId++; MODEL_EXECUTOR.getHandler().postAtFrontOfQueue(() -> { Loading Loading @@ -558,6 +573,7 @@ public class FloatingIconView extends FrameLayout implements view.mIconLoadResult = fetchIcon(launcher, originalView, (ItemInfo) originalView.getTag(), isOpening); } view.setOriginalDrawableBackground(view.mIconLoadResult.btvDrawable); } sIconLoadResult = null; Loading