Calls cancel on mDimAnimator to ensure that ref counts are accurate.
When we used cancelAnimationWithoutCallbacks on mDimAnimator,
the decrementOnAnimationEnd listener is removed. This created
a bug where the ReferenceCountedTrigger was not able to
flush its last decrement runnables.
ie. The Close icon was not always visible for the apps in Recents/Overview.
Bug: 37132803
Test: Manual testing.
Change-Id: Idbb1a1e42313db71328990577b3163b0d16b28d6
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
index e34987b..4b614ed 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
@@ -362,11 +362,17 @@
* Cancels any current transform animations.
*/
public void cancelTransformAnimation() {
+ cancelDimAnimationIfExists();
Utilities.cancelAnimationWithoutCallbacks(mTransformAnimation);
- Utilities.cancelAnimationWithoutCallbacks(mDimAnimator);
Utilities.cancelAnimationWithoutCallbacks(mOutlineAnimator);
}
+ private void cancelDimAnimationIfExists() {
+ if (mDimAnimator != null) {
+ mDimAnimator.cancel();
+ }
+ }
+
/** Enables/disables handling touch on this task view. */
public void setTouchEnabled(boolean enabled) {
setOnClickListener(enabled ? this : null);
@@ -546,7 +552,7 @@
@Override
public void onStartLaunchTargetEnterAnimation(TaskViewTransform transform, int duration,
boolean screenPinningEnabled, ReferenceCountedTrigger postAnimationTrigger) {
- Utilities.cancelAnimationWithoutCallbacks(mDimAnimator);
+ cancelDimAnimationIfExists();
// Dim the view after the app window transitions down into recents
postAnimationTrigger.increment();