Merge "Fix bug where icon is no present during app close animation." into ub-launcher3-qt-r1-dev
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java
index f1d1141..ac7ba3f 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java
@@ -505,7 +505,8 @@
initAnimFactory.run();
}
}
- AbstractFloatingView.closeAllOpenViews(activity, mWasLauncherAlreadyVisible);
+ AbstractFloatingView.closeAllOpenViewsExcept(activity, mWasLauncherAlreadyVisible,
+ AbstractFloatingView.TYPE_LISTENER);
if (mWasLauncherAlreadyVisible) {
mStateCallback.setState(STATE_LAUNCHER_DRAWN);
diff --git a/src/com/android/launcher3/views/BaseDragLayer.java b/src/com/android/launcher3/views/BaseDragLayer.java
index 53686ca..1e70c7f 100644
--- a/src/com/android/launcher3/views/BaseDragLayer.java
+++ b/src/com/android/launcher3/views/BaseDragLayer.java
@@ -224,12 +224,10 @@
if (child instanceof AbstractFloatingView) {
// Handles the case where the view is removed without being properly closed.
// This can happen if something goes wrong during a state change/transition.
- postDelayed(() -> {
- AbstractFloatingView floatingView = (AbstractFloatingView) child;
- if (floatingView.isOpen()) {
- floatingView.close(false);
- }
- }, SINGLE_FRAME_MS);
+ AbstractFloatingView floatingView = (AbstractFloatingView) child;
+ if (floatingView.isOpen()) {
+ postDelayed(() -> floatingView.close(false), SINGLE_FRAME_MS);
+ }
}
}
diff --git a/src/com/android/launcher3/views/FloatingIconView.java b/src/com/android/launcher3/views/FloatingIconView.java
index b6c4fed..ab4b576 100644
--- a/src/com/android/launcher3/views/FloatingIconView.java
+++ b/src/com/android/launcher3/views/FloatingIconView.java
@@ -574,17 +574,17 @@
if (cancellationSignal.isCanceled()) {
return;
}
- if (mIconLoadResult.isIconLoaded) {
- setIcon(originalView, mIconLoadResult.drawable, mIconLoadResult.badge,
- mIconLoadResult.iconOffset);
- }
+
+ setIcon(originalView, mIconLoadResult.drawable, mIconLoadResult.badge,
+ mIconLoadResult.iconOffset);
+
// Delay swapping views until the icon is loaded to prevent a flash.
setVisibility(VISIBLE);
originalView.setVisibility(INVISIBLE);
};
+ mLoadIconSignal = cancellationSignal;
}
}
- mLoadIconSignal = cancellationSignal;
}
private void setBackgroundDrawableBounds(float scale) {