summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/app/FragmentHostCallback.java6
-rw-r--r--core/tests/coretests/src/android/app/LoaderLifecycleTest.java3
2 files changed, 7 insertions, 2 deletions
diff --git a/core/java/android/app/FragmentHostCallback.java b/core/java/android/app/FragmentHostCallback.java
index b6aad3b15362..d869168e2b6a 100644
--- a/core/java/android/app/FragmentHostCallback.java
+++ b/core/java/android/app/FragmentHostCallback.java
@@ -340,8 +340,10 @@ public abstract class FragmentHostCallback<E> extends FragmentContainer {
}
void restoreLoaderNonConfig(ArrayMap<String, LoaderManager> loaderManagers) {
- for (int i = 0, N = loaderManagers.size(); i < N; i++) {
- ((LoaderManagerImpl) loaderManagers.valueAt(i)).updateHostController(this);
+ if (loaderManagers != null) {
+ for (int i = 0, N = loaderManagers.size(); i < N; i++) {
+ ((LoaderManagerImpl) loaderManagers.valueAt(i)).updateHostController(this);
+ }
}
mAllLoaderManagers = loaderManagers;
}
diff --git a/core/tests/coretests/src/android/app/LoaderLifecycleTest.java b/core/tests/coretests/src/android/app/LoaderLifecycleTest.java
index a3d51a0a9612..1850d575dfa5 100644
--- a/core/tests/coretests/src/android/app/LoaderLifecycleTest.java
+++ b/core/tests/coretests/src/android/app/LoaderLifecycleTest.java
@@ -99,6 +99,9 @@ public class LoaderLifecycleTest {
final FragmentManager fm2 = fc2.getFragmentManager();
fc2.attachHost(null);
+ // Make sure nothing blows up on a null here
+ fc2.restoreLoaderNonConfig(null);
+ // for real this time
fc2.restoreLoaderNonConfig(loaderNonConfig);
fc2.restoreAllState(savedState, nonconf);
fc2.dispatchCreate();