diff options
| -rw-r--r-- | core/java/android/app/FragmentHostCallback.java | 6 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/app/LoaderLifecycleTest.java | 3 |
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(); |