summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJon Miranda <jonmiranda@google.com>2019-11-20 12:31:15 -0800
committerJonathan Miranda <jonmiranda@google.com>2019-11-21 22:16:36 +0000
commita3ea27de3941f2802361aff1d46547122f096c7d (patch)
tree3cfa5ca3ee0c0f6619559960fddb7ecb4f9bed55 /src
parentf3761296a1a94086a3f7bc37cc6d3cada73d5d87 (diff)
downloadandroid_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.java28
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));