Skip to content

Commit 9e2dbdf

Browse files
committed
Compatible with #1031 (>=27.1.0)
1 parent 5eeccef commit 9e2dbdf

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

fragmentation_core/src/main/java/android/support/v4/app/FragmentationMagician.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ public static boolean isStateSaved(FragmentManager fragmentManager) {
7474
return false;
7575
try {
7676
FragmentManagerImpl fragmentManagerImpl = (FragmentManagerImpl) fragmentManager;
77+
if (sSupportGreaterThan27dot1dot0) {
78+
return fragmentManagerImpl.isStateSaved();
79+
}
7780
return fragmentManagerImpl.mStateSaved;
7881
} catch (Exception e) {
7982
e.printStackTrace();
@@ -187,9 +190,10 @@ private static void hookStateSaved(FragmentManager fragmentManager, Runnable run
187190

188191
FragmentManagerImpl fragmentManagerImpl = (FragmentManagerImpl) fragmentManager;
189192
if (isStateSaved(fragmentManager)) {
193+
boolean tempStateSaved = fragmentManagerImpl.mStateSaved;
190194
fragmentManagerImpl.mStateSaved = false;
191195
compatRunAction(fragmentManagerImpl, runnable);
192-
fragmentManagerImpl.mStateSaved = true;
196+
fragmentManagerImpl.mStateSaved = tempStateSaved;
193197
} else {
194198
runnable.run();
195199
}
@@ -207,9 +211,9 @@ private static void compatRunAction(FragmentManagerImpl fragmentManagerImpl, Run
207211
runnable.run();
208212
return;
209213
}
210-
214+
boolean tempStopped = fragmentManagerImpl.mStopped;
211215
fragmentManagerImpl.mStopped = false;
212216
runnable.run();
213-
fragmentManagerImpl.mStopped = true;
217+
fragmentManagerImpl.mStopped = tempStopped;
214218
}
215219
}

0 commit comments

Comments
 (0)