From 82db735196f7e5cd50a9ecbf525911c3fa5729e5 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Tue, 20 Feb 2018 10:19:46 -0800 Subject: [PATCH] Re-enable deferring recents animation on back button. Bug: 73242451 Test: Swipe up over back button, ensure that we don't start the animation until the threshold is crossed Change-Id: If84c39370428f8ea5bf9d5f7110d17227f00ccc0 --- .../quickstep/OtherActivityTouchConsumer.java | 14 ++++++++------ .../src/com/android/quickstep/TouchConsumer.java | 2 -- .../android/quickstep/TouchInteractionService.java | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java index 1e48a53b2b..19e1cca5e9 100644 --- a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java +++ b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java @@ -22,6 +22,7 @@ import static android.view.MotionEvent.ACTION_POINTER_UP; import static android.view.MotionEvent.ACTION_UP; import static android.view.MotionEvent.INVALID_POINTER_ID; import static com.android.quickstep.RemoteRunnable.executeSafely; +import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_BACK; import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_NONE; import android.app.ActivityManager.RunningTaskInfo; @@ -131,7 +132,8 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC public OtherActivityTouchConsumer(Context base, RunningTaskInfo runningTaskInfo, RecentsModel recentsModel, Intent homeIntent, ISystemUiProxy systemUiProxy, - MainThreadExecutor mainThreadExecutor, Choreographer backgroundThreadChoreographer) { + MainThreadExecutor mainThreadExecutor, Choreographer backgroundThreadChoreographer, + @HitTarget int downHitTarget) { super(base); mRunningTask = runningTaskInfo; mRecentsModel = recentsModel; @@ -140,10 +142,6 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC mISystemUiProxy = systemUiProxy; mMainThreadExecutor = mainThreadExecutor; mBackgroundThreadChoreographer = backgroundThreadChoreographer; - } - - @Override - public void setDownHitTarget(@HitTarget int downHitTarget) { mDownHitTarget = downHitTarget; } @@ -163,7 +161,7 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC // Start the window animation on down to give more time for launcher to draw if the // user didn't start the gesture over the back button - if (!isUsingScreenShot()) { + if (!isUsingScreenShot() && mDownHitTarget != HIT_TARGET_BACK) { startTouchTrackingForWindowAnimation(ev.getEventTime()); } @@ -205,6 +203,10 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC if (isUsingScreenShot()) { startTouchTrackingForScreenshotAnimation(); + } else if (mDownHitTarget == HIT_TARGET_BACK) { + // If we deferred starting the window animation on touch down, then + // start tracking now + startTouchTrackingForWindowAnimation(ev.getEventTime()); } notifyGestureStarted(); diff --git a/quickstep/src/com/android/quickstep/TouchConsumer.java b/quickstep/src/com/android/quickstep/TouchConsumer.java index aaea37957c..f35f6a6f45 100644 --- a/quickstep/src/com/android/quickstep/TouchConsumer.java +++ b/quickstep/src/com/android/quickstep/TouchConsumer.java @@ -49,8 +49,6 @@ public interface TouchConsumer extends Consumer { default void reset() { } - default void setDownHitTarget(@HitTarget int downHitTarget) { } - default void updateTouchTracking(@InteractionType int interactionType) { } default void onQuickScrubEnd() { } diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index 46ef528dcf..278ee9c0cd 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -188,7 +188,7 @@ public class TouchInteractionService extends Service { mEventQueue = new MotionEventQueue(mMainThreadChoreographer, new OtherActivityTouchConsumer(this, mRunningTask, mRecentsModel, mHomeIntent, mISystemUiProxy, mMainThreadExecutor, - mBackgroundThreadChoreographer)); + mBackgroundThreadChoreographer, downHitTarget)); } }