Null check for restoring LoaderManagers

Bug 31671195
Test: core/tests/coretests/src/android/app/LoaderLifecycleTest.java

Change-Id: Ib553f7611814cc6759488aec505fd126ee664a9d
This commit is contained in:
Adam Powell
2016-09-22 10:47:40 -07:00
parent dd6230d466
commit 100ba76d7a
2 changed files with 7 additions and 2 deletions

View File

@@ -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;
}

View File

@@ -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();