From b2339e37d7199e9493923a6b2f262a3e971a3dd6 Mon Sep 17 00:00:00 2001 From: Schneider Victor-tulias Date: Wed, 22 Sep 2021 12:04:24 -0700 Subject: [PATCH] Fix stalled gesture navigation tutorial. Touching the screen after completing the gesture removed all callbacks, preventing the tutorial to progess. Added logic to only remove logic if the gesture is incomplete. Fixes: 198285152 Test: manual, touched screen and attempted all gestures after completing a step Change-Id: I320b13cd9b7632a9fb722bc10d3d0a96dc111144 --- .../interaction/BackGestureTutorialController.java | 4 ++-- .../interaction/HomeGestureTutorialController.java | 4 ++-- .../interaction/OverviewGestureTutorialController.java | 4 ++-- .../interaction/SwipeUpGestureTutorialController.java | 4 ++-- .../android/quickstep/interaction/TutorialController.java | 6 +++++- .../com/android/quickstep/interaction/TutorialFragment.java | 2 +- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/quickstep/src/com/android/quickstep/interaction/BackGestureTutorialController.java b/quickstep/src/com/android/quickstep/interaction/BackGestureTutorialController.java index f2402e31de..30f900873e 100644 --- a/quickstep/src/com/android/quickstep/interaction/BackGestureTutorialController.java +++ b/quickstep/src/com/android/quickstep/interaction/BackGestureTutorialController.java @@ -59,7 +59,7 @@ final class BackGestureTutorialController extends TutorialController { @Override public void onBackGestureAttempted(BackGestureResult result) { - if (mGestureCompleted) { + if (isGestureCompleted()) { return; } switch (mTutorialType) { @@ -101,7 +101,7 @@ final class BackGestureTutorialController extends TutorialController { @Override public void onNavBarGestureAttempted(NavBarGestureResult result, PointF finalVelocity) { - if (mGestureCompleted) { + if (isGestureCompleted()) { return; } if (mTutorialType == BACK_NAVIGATION_COMPLETE) { diff --git a/quickstep/src/com/android/quickstep/interaction/HomeGestureTutorialController.java b/quickstep/src/com/android/quickstep/interaction/HomeGestureTutorialController.java index 307a8fd230..3ad84f0cce 100644 --- a/quickstep/src/com/android/quickstep/interaction/HomeGestureTutorialController.java +++ b/quickstep/src/com/android/quickstep/interaction/HomeGestureTutorialController.java @@ -48,7 +48,7 @@ final class HomeGestureTutorialController extends SwipeUpGestureTutorialControll @Override public void onBackGestureAttempted(BackGestureResult result) { - if (mGestureCompleted) { + if (isGestureCompleted()) { return; } switch (mTutorialType) { @@ -73,7 +73,7 @@ final class HomeGestureTutorialController extends SwipeUpGestureTutorialControll @Override public void onNavBarGestureAttempted(NavBarGestureResult result, PointF finalVelocity) { - if (mGestureCompleted) { + if (isGestureCompleted()) { return; } switch (mTutorialType) { diff --git a/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialController.java b/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialController.java index b38a641b0e..ff1743f726 100644 --- a/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialController.java +++ b/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialController.java @@ -55,7 +55,7 @@ final class OverviewGestureTutorialController extends SwipeUpGestureTutorialCont @Override public void onBackGestureAttempted(BackGestureResult result) { - if (mGestureCompleted) { + if (isGestureCompleted()) { return; } switch (mTutorialType) { @@ -80,7 +80,7 @@ final class OverviewGestureTutorialController extends SwipeUpGestureTutorialCont @Override public void onNavBarGestureAttempted(NavBarGestureResult result, PointF finalVelocity) { - if (mGestureCompleted) { + if (isGestureCompleted()) { return; } switch (mTutorialType) { diff --git a/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java b/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java index ce8047ec9e..30430ff3f4 100644 --- a/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java +++ b/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java @@ -214,7 +214,7 @@ abstract class SwipeUpGestureTutorialController extends TutorialController { @Override public void setNavBarGestureProgress(@Nullable Float displacement) { - if (mGestureCompleted) { + if (isGestureCompleted()) { return; } if (mTutorialType == HOME_NAVIGATION_COMPLETE @@ -235,7 +235,7 @@ abstract class SwipeUpGestureTutorialController extends TutorialController { @Override public void onMotionPaused(boolean unused) { - if (mGestureCompleted) { + if (isGestureCompleted()) { return; } if (mShowTasks) { diff --git a/quickstep/src/com/android/quickstep/interaction/TutorialController.java b/quickstep/src/com/android/quickstep/interaction/TutorialController.java index 77bfc31c30..ef62fd6704 100644 --- a/quickstep/src/com/android/quickstep/interaction/TutorialController.java +++ b/quickstep/src/com/android/quickstep/interaction/TutorialController.java @@ -95,7 +95,7 @@ abstract class TutorialController implements BackGestureAttemptCallback, final ImageView mFingerDotView; private final AlertDialog mSkipTutorialDialog; - protected boolean mGestureCompleted = false; + private boolean mGestureCompleted = false; // These runnables should be used when posting callbacks to their views and cleared from their // views before posting new callbacks. @@ -286,6 +286,10 @@ abstract class TutorialController implements BackGestureAttemptCallback, mFeedbackView.post(mFeedbackViewCallback); } + public boolean isGestureCompleted() { + return mGestureCompleted; + } + void hideFeedback() { cancelQueuedGestureAnimation(); mFeedbackView.clearAnimation(); diff --git a/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java b/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java index 52ec9b39f0..1d78c6bcca 100644 --- a/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java +++ b/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java @@ -237,7 +237,7 @@ abstract class TutorialFragment extends Fragment implements OnTouchListener { } void releaseFeedbackAnimation() { - if (mTutorialController != null) { + if (mTutorialController != null && !mTutorialController.isGestureCompleted()) { mTutorialController.cancelQueuedGestureAnimation(); } if (mGestureAnimation != null && mGestureAnimation.isRunning()) {