From 8b7afff3ef7195f344542f26b7d75fef6f94ed13 Mon Sep 17 00:00:00 2001 From: Mady Mellor Date: Tue, 16 Mar 2021 15:09:13 -0700 Subject: [PATCH] Remove the explicit callback, not all of them Test: manual - expand / collapse / switch between bubbles works fine Bug: 181896441 Change-Id: Ib724b2195aeb7748ade669964a65394e61f675a5 --- .../com/android/wm/shell/bubbles/BubbleStackView.java | 8 +++++--- .../com/android/wm/shell/common/HandlerExecutor.java | 6 ------ .../com/android/wm/shell/common/ShellExecutor.java | 11 ----------- .../src/com/android/wm/shell/TestShellExecutor.java | 7 ------- .../com/android/systemui/wmshell/SyncExecutor.java | 4 ---- 5 files changed, 5 insertions(+), 31 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java index 16ede735660f3..e5c9e2567ec5f 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java @@ -151,6 +151,7 @@ public class BubbleStackView extends FrameLayout * starting a new animation. */ private final ShellExecutor mDelayedAnimationExecutor; + private Runnable mDelayedAnimation; /** * Interface to synchronize {@link View} state and the screen. @@ -1865,7 +1866,7 @@ public class BubbleStackView extends FrameLayout mExpandedBubble.getExpandedView().setAlphaAnimating(true); } - mDelayedAnimationExecutor.executeDelayed(() -> { + mDelayedAnimation = () -> { mExpandedViewAlphaAnimator.start(); PhysicsAnimator.getInstance(mExpandedViewContainerMatrix).cancel(); @@ -1898,7 +1899,8 @@ public class BubbleStackView extends FrameLayout } }) .start(); - }, startDelay); + }; + mDelayedAnimationExecutor.executeDelayed(mDelayedAnimation, startDelay); } private void animateCollapse() { @@ -2097,7 +2099,7 @@ public class BubbleStackView extends FrameLayout * animating flags for those animations. */ private void cancelDelayedExpandCollapseSwitchAnimations() { - mDelayedAnimationExecutor.removeAllCallbacks(); + mDelayedAnimationExecutor.removeCallbacks(mDelayedAnimation); mIsExpansionAnimating = false; mIsBubbleSwitchAnimating = false; diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/HandlerExecutor.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/HandlerExecutor.java index a4cd3c5a583d0..bfee820870f10 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/HandlerExecutor.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/HandlerExecutor.java @@ -18,7 +18,6 @@ package com.android.wm.shell.common; import android.annotation.NonNull; import android.os.Handler; -import android.os.Looper; /** Executor implementation which is backed by a Handler. */ public class HandlerExecutor implements ShellExecutor { @@ -46,11 +45,6 @@ public class HandlerExecutor implements ShellExecutor { } } - @Override - public void removeAllCallbacks() { - mHandler.removeCallbacksAndMessages(null); - } - @Override public void removeCallbacks(@NonNull Runnable r) { mHandler.removeCallbacks(r); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/ShellExecutor.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/ShellExecutor.java index 6abc8f6dda89c..f729164ed3039 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/ShellExecutor.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/ShellExecutor.java @@ -16,16 +16,10 @@ package com.android.wm.shell.common; -import android.os.Looper; -import android.os.SystemClock; -import android.os.Trace; - import java.lang.reflect.Array; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; -import java.util.function.BooleanSupplier; -import java.util.function.Predicate; import java.util.function.Supplier; /** @@ -93,11 +87,6 @@ public interface ShellExecutor extends Executor { */ void executeDelayed(Runnable runnable, long delayMillis); - /** - * Removes all pending callbacks. - */ - void removeAllCallbacks(); - /** * See {@link android.os.Handler#removeCallbacks}. */ diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TestShellExecutor.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TestShellExecutor.java index bf84a6e30c98a..da95c77d2b89d 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TestShellExecutor.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TestShellExecutor.java @@ -16,8 +16,6 @@ package com.android.wm.shell; -import android.os.Looper; - import com.android.wm.shell.common.ShellExecutor; import java.util.ArrayList; @@ -39,11 +37,6 @@ public class TestShellExecutor implements ShellExecutor { mRunnables.add(r); } - @Override - public void removeAllCallbacks() { - mRunnables.clear(); - } - @Override public void removeCallbacks(Runnable r) { mRunnables.remove(r); diff --git a/packages/SystemUI/tests/src/com/android/systemui/wmshell/SyncExecutor.java b/packages/SystemUI/tests/src/com/android/systemui/wmshell/SyncExecutor.java index d40eecffb29e9..6b6894676e946 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/wmshell/SyncExecutor.java +++ b/packages/SystemUI/tests/src/com/android/systemui/wmshell/SyncExecutor.java @@ -33,10 +33,6 @@ public class SyncExecutor implements ShellExecutor { runnable.run(); } - @Override - public void removeAllCallbacks() { - } - @Override public void removeCallbacks(Runnable runnable) { }