Merge "Only store the state of a fragment if it is added." into mnc-ub-dev
diff --git a/v13/java/android/support/v13/app/FragmentStatePagerAdapter.java b/v13/java/android/support/v13/app/FragmentStatePagerAdapter.java
index 89be82e..f62a11f 100644
--- a/v13/java/android/support/v13/app/FragmentStatePagerAdapter.java
+++ b/v13/java/android/support/v13/app/FragmentStatePagerAdapter.java
@@ -127,7 +127,7 @@
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
- Fragment fragment = (Fragment)object;
+ Fragment fragment = (Fragment) object;
if (mCurTransaction == null) {
mCurTransaction = mFragmentManager.beginTransaction();
@@ -137,7 +137,8 @@
while (mSavedState.size() <= position) {
mSavedState.add(null);
}
- mSavedState.set(position, mFragmentManager.saveFragmentInstanceState(fragment));
+ mSavedState.set(position, fragment.isAdded()
+ ? mFragmentManager.saveFragmentInstanceState(fragment) : null);
mFragments.set(position, null);
mCurTransaction.remove(fragment);
diff --git a/v4/java/android/support/v4/app/FragmentStatePagerAdapter.java b/v4/java/android/support/v4/app/FragmentStatePagerAdapter.java
index 0c3c6c5..ad9072b 100644
--- a/v4/java/android/support/v4/app/FragmentStatePagerAdapter.java
+++ b/v4/java/android/support/v4/app/FragmentStatePagerAdapter.java
@@ -16,8 +16,6 @@
package android.support.v4.app;
-import java.util.ArrayList;
-
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
@@ -25,6 +23,8 @@
import android.view.View;
import android.view.ViewGroup;
+import java.util.ArrayList;
+
/**
* Implementation of {@link android.support.v4.view.PagerAdapter} that
* uses a {@link Fragment} to manage each page. This class also handles
@@ -123,7 +123,7 @@
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
- Fragment fragment = (Fragment)object;
+ Fragment fragment = (Fragment) object;
if (mCurTransaction == null) {
mCurTransaction = mFragmentManager.beginTransaction();
@@ -133,7 +133,8 @@
while (mSavedState.size() <= position) {
mSavedState.add(null);
}
- mSavedState.set(position, mFragmentManager.saveFragmentInstanceState(fragment));
+ mSavedState.set(position, fragment.isAdded()
+ ? mFragmentManager.saveFragmentInstanceState(fragment) : null);
mFragments.set(position, null);
mCurTransaction.remove(fragment);