Merge "Display in-memory icon for app close while AdaptiveIcon loads." into sc-v2-dev
This commit is contained in:
commit
b788f9f7f7
|
@ -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;
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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) {
|
||||
|
@ -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(() -> {
|
||||
|
@ -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…
Reference in New Issue