From 2517dfd123534d3f4907700c51ff6c24ac85926a Mon Sep 17 00:00:00 2001 From: Schneider Victor-tulias Date: Fri, 25 Sep 2020 10:13:57 -0700 Subject: [PATCH] Update TutorialFragments to work without hand gesture animations. Test: manual TutorialFragments needed to implement getHandAnimationResId, however not all TutorialFragments will need a hand gesture animation. Updated TutorialFragment to remove this requirement. Change-Id: I2f75d6447dcceb226569181176deed1d5e80fa5f --- .../AssistantGestureTutorialFragment.java | 2 +- .../BackGestureTutorialFragment.java | 2 +- .../HomeGestureTutorialFragment.java | 2 +- .../OverviewGestureTutorialFragment.java | 2 +- .../interaction/TutorialController.java | 7 +++++-- .../interaction/TutorialFragment.java | 20 +++++++++++++------ 6 files changed, 23 insertions(+), 12 deletions(-) diff --git a/quickstep/src/com/android/quickstep/interaction/AssistantGestureTutorialFragment.java b/quickstep/src/com/android/quickstep/interaction/AssistantGestureTutorialFragment.java index 70181fb9ca..16886ec177 100644 --- a/quickstep/src/com/android/quickstep/interaction/AssistantGestureTutorialFragment.java +++ b/quickstep/src/com/android/quickstep/interaction/AssistantGestureTutorialFragment.java @@ -24,7 +24,7 @@ import com.android.quickstep.interaction.TutorialController.TutorialType; /** Shows the Home gesture interactive tutorial. */ public class AssistantGestureTutorialFragment extends TutorialFragment { @Override - int getHandAnimationResId() { + Integer getHandAnimationResId() { return R.drawable.assistant_gesture; } diff --git a/quickstep/src/com/android/quickstep/interaction/BackGestureTutorialFragment.java b/quickstep/src/com/android/quickstep/interaction/BackGestureTutorialFragment.java index bef50ea8df..41db684d44 100644 --- a/quickstep/src/com/android/quickstep/interaction/BackGestureTutorialFragment.java +++ b/quickstep/src/com/android/quickstep/interaction/BackGestureTutorialFragment.java @@ -24,7 +24,7 @@ import com.android.quickstep.interaction.TutorialController.TutorialType; /** Shows the Back gesture interactive tutorial. */ public class BackGestureTutorialFragment extends TutorialFragment { @Override - int getHandAnimationResId() { + Integer getHandAnimationResId() { return R.drawable.back_gesture; } diff --git a/quickstep/src/com/android/quickstep/interaction/HomeGestureTutorialFragment.java b/quickstep/src/com/android/quickstep/interaction/HomeGestureTutorialFragment.java index e2a9d1276c..63595a5283 100644 --- a/quickstep/src/com/android/quickstep/interaction/HomeGestureTutorialFragment.java +++ b/quickstep/src/com/android/quickstep/interaction/HomeGestureTutorialFragment.java @@ -21,7 +21,7 @@ import com.android.quickstep.interaction.TutorialController.TutorialType; /** Shows the Home gesture interactive tutorial. */ public class HomeGestureTutorialFragment extends TutorialFragment { @Override - int getHandAnimationResId() { + Integer getHandAnimationResId() { return R.drawable.home_gesture; } diff --git a/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialFragment.java b/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialFragment.java index 3357b70497..93200bb21d 100644 --- a/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialFragment.java +++ b/quickstep/src/com/android/quickstep/interaction/OverviewGestureTutorialFragment.java @@ -21,7 +21,7 @@ import com.android.quickstep.interaction.TutorialController.TutorialType; /** Shows the Overview gesture interactive tutorial. */ public class OverviewGestureTutorialFragment extends TutorialFragment { @Override - int getHandAnimationResId() { + Integer getHandAnimationResId() { return R.drawable.overview_gesture; } diff --git a/quickstep/src/com/android/quickstep/interaction/TutorialController.java b/quickstep/src/com/android/quickstep/interaction/TutorialController.java index db80342673..d0a12679c0 100644 --- a/quickstep/src/com/android/quickstep/interaction/TutorialController.java +++ b/quickstep/src/com/android/quickstep/interaction/TutorialController.java @@ -52,7 +52,7 @@ abstract class TutorialController implements BackGestureAttemptCallback, final View mFakeTaskView; final View mRippleView; final RippleDrawable mRippleDrawable; - final TutorialHandAnimation mHandCoachingAnimation; + @Nullable final TutorialHandAnimation mHandCoachingAnimation; final ImageView mHandCoachingView; final Button mActionTextButton; final Button mActionButton; @@ -145,13 +145,16 @@ abstract class TutorialController implements BackGestureAttemptCallback, void onActionTextButtonClicked(View button) {} void showHandCoachingAnimation() { - if (isComplete()) { + if (isComplete() || mHandCoachingAnimation == null) { return; } mHandCoachingAnimation.startLoopedAnimation(mTutorialType); } void hideHandCoachingAnimation() { + if (mHandCoachingAnimation == null) { + return; + } mHandCoachingAnimation.stop(); mHandCoachingView.setVisibility(View.INVISIBLE); } diff --git a/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java b/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java index c90ad94b8c..559ba354d2 100644 --- a/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java +++ b/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java @@ -43,7 +43,7 @@ abstract class TutorialFragment extends Fragment implements OnTouchListener { TutorialType mTutorialType; @Nullable TutorialController mTutorialController = null; View mRootView; - TutorialHandAnimation mHandCoachingAnimation; + @Nullable TutorialHandAnimation mHandCoachingAnimation = null; EdgeBackGestureHandler mEdgeBackGestureHandler; NavBarGestureHandler mNavBarGestureHandler; private View mLauncherView; @@ -82,7 +82,9 @@ abstract class TutorialFragment extends Fragment implements OnTouchListener { return null; } - abstract int getHandAnimationResId(); + @Nullable Integer getHandAnimationResId() { + return null; + } abstract TutorialController createController(TutorialType type); @@ -116,8 +118,11 @@ abstract class TutorialFragment extends Fragment implements OnTouchListener { return insets; }); mRootView.setOnTouchListener(this); - mHandCoachingAnimation = - new TutorialHandAnimation(getContext(), mRootView, getHandAnimationResId()); + Integer handAnimationResId = getHandAnimationResId(); + if (handAnimationResId != null) { + mHandCoachingAnimation = + new TutorialHandAnimation(getContext(), mRootView, handAnimationResId); + } InvariantDeviceProfile dp = InvariantDeviceProfile.INSTANCE.get(getContext()); mLauncherView = new SandboxLauncherRenderer(getContext(), dp, true).getRenderedView(); ((ViewGroup) mRootView).addView(mLauncherView, 0); @@ -133,7 +138,10 @@ abstract class TutorialFragment extends Fragment implements OnTouchListener { @Override public void onPause() { super.onPause(); - mHandCoachingAnimation.stop(); + + if (mHandCoachingAnimation != null) { + mHandCoachingAnimation.stop(); + } } @Override @@ -183,7 +191,7 @@ abstract class TutorialFragment extends Fragment implements OnTouchListener { return mLauncherView; } - TutorialHandAnimation getHandAnimation() { + @Nullable TutorialHandAnimation getHandAnimation() { return mHandCoachingAnimation; }