diff options
author | Jon Miranda <jonmiranda@google.com> | 2019-11-20 12:31:15 -0800 |
---|---|---|
committer | Jonathan Miranda <jonmiranda@google.com> | 2019-11-21 22:16:36 +0000 |
commit | a3ea27de3941f2802361aff1d46547122f096c7d (patch) | |
tree | 3cfa5ca3ee0c0f6619559960fddb7ecb4f9bed55 /src | |
parent | f3761296a1a94086a3f7bc37cc6d3cada73d5d87 (diff) | |
download | android_packages_apps_Trebuchet-a3ea27de3941f2802361aff1d46547122f096c7d.tar.gz android_packages_apps_Trebuchet-a3ea27de3941f2802361aff1d46547122f096c7d.tar.bz2 android_packages_apps_Trebuchet-a3ea27de3941f2802361aff1d46547122f096c7d.zip |
Fix bug where icon remains invisible after returning home.
- The bug is caused by cancelling of the RectFSpringAnim before the
StaggeredWorkspaceAnim has started.
- Instead of having logic in StaggeredWorkspaceAnim control the visibility
of the icon, we instead maintain all the visibility within the
FloatingIconView class itself.
Bug: 142120338
Change-Id: I94f3a066d395f9c3b97dc6ee9fc836e9401650a5
Merged-In: I082291ca9b288f57701cc00d61a9b3a84da8b084
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher3/views/FloatingIconView.java | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/com/android/launcher3/views/FloatingIconView.java b/src/com/android/launcher3/views/FloatingIconView.java index 45c0d9097..49d94f06e 100644 --- a/src/com/android/launcher3/views/FloatingIconView.java +++ b/src/com/android/launcher3/views/FloatingIconView.java @@ -560,7 +560,7 @@ public class FloatingIconView extends View implements * Checks if the icon result is loaded. If true, we set the icon immediately. Else, we add a * callback to set the icon once the icon result is loaded. */ - private void checkIconResult(View originalView, boolean isOpening) { + private void checkIconResult(View originalView) { CancellationSignal cancellationSignal = new CancellationSignal(); if (mIconLoadResult == null) { @@ -572,9 +572,7 @@ public class FloatingIconView extends View implements if (mIconLoadResult.isIconLoaded) { setIcon(originalView, mIconLoadResult.drawable, mIconLoadResult.badge, mIconLoadResult.iconOffset); - if (isOpening) { - hideOriginalView(originalView); - } + hideOriginalView(originalView); } else { mIconLoadResult.onIconLoaded = () -> { if (cancellationSignal.isCanceled()) { @@ -583,12 +581,8 @@ public class FloatingIconView extends View implements setIcon(originalView, mIconLoadResult.drawable, mIconLoadResult.badge, mIconLoadResult.iconOffset); - setVisibility(VISIBLE); - if (isOpening) { - // Delay swapping views until the icon is loaded to prevent a flash. - hideOriginalView(originalView); - } + hideOriginalView(originalView); }; mLoadIconSignal = cancellationSignal; } @@ -596,9 +590,9 @@ public class FloatingIconView extends View implements } private void hideOriginalView(View originalView) { - if (originalView instanceof BubbleTextView) { - ((BubbleTextView) originalView).setIconVisible(false); - ((BubbleTextView) originalView).setForceHideDot(true); + if (originalView instanceof IconLabelDotView) { + ((IconLabelDotView) originalView).setIconVisible(false); + ((IconLabelDotView) originalView).setForceHideDot(true); } else { originalView.setVisibility(INVISIBLE); } @@ -674,6 +668,9 @@ public class FloatingIconView extends View implements } public void fastFinish() { + if (mLoadIconSignal != null) { + mLoadIconSignal.cancel(); + } if (mEndRunnable != null) { mEndRunnable.run(); mEndRunnable = null; @@ -689,6 +686,10 @@ public class FloatingIconView extends View implements if (mIconLoadResult != null && mIconLoadResult.isIconLoaded) { setVisibility(View.VISIBLE); } + if (!mIsOpening) { + // When closing an app, we want the item on the workspace to be invisible immediately + hideOriginalView(mOriginalIcon); + } } @Override @@ -798,7 +799,7 @@ public class FloatingIconView extends View implements // Must be called after the fastFinish listener and end runnable is created so that // the icon is not left in a hidden state. if (shouldLoadIcon) { - view.checkIconResult(originalView, isOpening); + view.checkIconResult(originalView); } return view; @@ -842,6 +843,7 @@ public class FloatingIconView extends View implements @Override public void onAnimationStart(Animator animation) { btv.setIconVisible(true); + btv.setForceHideDot(true); } }); fade.play(ObjectAnimator.ofInt(btv.getIcon(), DRAWABLE_ALPHA, 0, 255)); |