Merge "Fix incorrect fragment in gesture tutorial when rotating the screen" into main
diff --git a/quickstep/src/com/android/quickstep/interaction/GestureSandboxActivity.java b/quickstep/src/com/android/quickstep/interaction/GestureSandboxActivity.java
index 4198e2d..4f1dbbe 100644
--- a/quickstep/src/com/android/quickstep/interaction/GestureSandboxActivity.java
+++ b/quickstep/src/com/android/quickstep/interaction/GestureSandboxActivity.java
@@ -59,7 +59,6 @@
@Nullable private TutorialType[] mTutorialSteps;
private GestureSandboxFragment mCurrentFragment;
- private GestureSandboxFragment mPendingFragment;
private int mCurrentStep;
private int mNumSteps;
@@ -177,22 +176,16 @@
&& 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 08f2989..03bdd5d 100644
--- a/quickstep/src/com/android/quickstep/interaction/GestureSandboxFragment.java
+++ b/quickstep/src/com/android/quickstep/interaction/GestureSandboxFragment.java
@@ -28,6 +28,10 @@
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 dbf141b..8ead3dd 100644
--- a/quickstep/src/com/android/quickstep/interaction/MenuFragment.java
+++ b/quickstep/src/com/android/quickstep/interaction/MenuFragment.java
@@ -39,6 +39,11 @@
}
@Override
+ boolean canRecreateFragment() {
+ return true;
+ }
+
+ @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
final View root = inflater.inflate(
diff --git a/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java b/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java
index c91ee81..0fafb94 100644
--- a/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java
+++ b/quickstep/src/com/android/quickstep/interaction/TutorialFragment.java
@@ -114,6 +114,11 @@
return newInstance(tutorialType, isGestureComplete(), mFromTutorialMenu);
}
+ @Override
+ boolean canRecreateFragment() {
+ return true;
+ }
+
@NonNull
abstract TutorialType getDefaultTutorialType();