diff --git a/quickstep/src/com/android/quickstep/interaction/GestureSandboxActivity.java b/quickstep/src/com/android/quickstep/interaction/GestureSandboxActivity.java index 4198e2da1d..4f1dbbe87b 100644 --- a/quickstep/src/com/android/quickstep/interaction/GestureSandboxActivity.java +++ b/quickstep/src/com/android/quickstep/interaction/GestureSandboxActivity.java @@ -59,7 +59,6 @@ public class GestureSandboxActivity extends FragmentActivity { @Nullable private TutorialType[] mTutorialSteps; private GestureSandboxFragment mCurrentFragment; - private GestureSandboxFragment mPendingFragment; private int mCurrentStep; private int mNumSteps; @@ -177,22 +176,16 @@ public class GestureSandboxActivity extends FragmentActivity { && getResources().getConfiguration().orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; - GestureSandboxFragment recreatedFragment = - showRotationPrompt || mPendingFragment == null - ? null : mPendingFragment.recreateFragment(); showFragment(showRotationPrompt ? new RotationPromptFragment() - : recreatedFragment == null - ? mCurrentFragment : recreatedFragment); + : mCurrentFragment.canRecreateFragment() + ? mCurrentFragment.recreateFragment() : mCurrentFragment); } else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } } private void showFragment(@NonNull GestureSandboxFragment fragment) { - if (mCurrentFragment.recreateFragment() != null) { - mPendingFragment = mCurrentFragment; - } mCurrentFragment = fragment; getSupportFragmentManager().beginTransaction() .replace(R.id.gesture_tutorial_fragment_container, mCurrentFragment) diff --git a/quickstep/src/com/android/quickstep/interaction/GestureSandboxFragment.java b/quickstep/src/com/android/quickstep/interaction/GestureSandboxFragment.java index 08f298965c..03bdd5d7e6 100644 --- a/quickstep/src/com/android/quickstep/interaction/GestureSandboxFragment.java +++ b/quickstep/src/com/android/quickstep/interaction/GestureSandboxFragment.java @@ -28,6 +28,10 @@ public abstract class GestureSandboxFragment extends Fragment { void onDetachedFromWindow() {} + boolean canRecreateFragment() { + return false; + } + @Nullable GestureSandboxFragment recreateFragment() { return null; diff --git a/quickstep/src/com/android/quickstep/interaction/MenuFragment.java b/quickstep/src/com/android/quickstep/interaction/MenuFragment.java index dbf141b987..8ead3dd8bd 100644 --- a/quickstep/src/com/android/quickstep/interaction/MenuFragment.java +++ b/quickstep/src/com/android/quickstep/interaction/MenuFragment.java @@ -38,6 +38,11 @@ public final class MenuFragment extends GestureSandboxFragment { return new MenuFragment(); } + @Override + boolean canRecreateFragment() { + return true; + } + @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { diff --git a/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java b/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java index c91ee81067..0fafb94d1e 100644 --- a/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java +++ b/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java @@ -114,6 +114,11 @@ abstract class TutorialFragment extends GestureSandboxFragment implements OnTouc return newInstance(tutorialType, isGestureComplete(), mFromTutorialMenu); } + @Override + boolean canRecreateFragment() { + return true; + } + @NonNull abstract TutorialType getDefaultTutorialType();