Fix fragment index expunging.
Change-Id: If37e58dfa998575530305584d3aa756bb5a61d7b
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 20272df..a1cf233 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -1567,6 +1567,12 @@
return new BackStackEntry(mFragments);
}
+ void invalidateFragmentIndex(int index) {
+ if (mAllLoaderManagers != null) {
+ mAllLoaderManagers.remove(index);
+ }
+ }
+
/**
* Called when a Fragment is being attached to this activity, immediately
* after the call to its {@link Fragment#onAttach Fragment.onAttach()}
diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java
index 50307d4..4f3043c 100644
--- a/core/java/android/app/FragmentManager.java
+++ b/core/java/android/app/FragmentManager.java
@@ -316,7 +316,6 @@
throw new SuperNotCalledException("Fragment " + f
+ " did not call through to super.onDetach()");
}
- f.mActivity.mAllLoaderManagers.remove(f.mIndex);
f.mActivity = null;
}
}
@@ -377,6 +376,7 @@
mAvailIndices = new ArrayList<Integer>();
}
mAvailIndices.add(f.mIndex);
+ mActivity.invalidateFragmentIndex(f.mIndex);
f.clearIndex();
}