Merge "Fix crash when activity not attached after search index finishes." into oc-dev

am: d3e33ebcef

Change-Id: Idc21289911d064e676f86bae72bdc188eb07f260
This commit is contained in:
Doris Ling
2017-05-12 04:57:40 +00:00
committed by android-build-merger
2 changed files with 20 additions and 0 deletions

View File

@@ -291,6 +291,9 @@ public class SearchFragment extends InstrumentedFragment implements SearchView.O
*/ */
@Override @Override
public void onIndexingFinished() { public void onIndexingFinished() {
if (getActivity() == null) {
return;
}
if (mShowingSavedQuery) { if (mShowingSavedQuery) {
mSavedQueryController.loadSavedQueries(); mSavedQueryController.loadSavedQueries();
} else { } else {

View File

@@ -349,4 +349,21 @@ public class SearchFragmentTest {
verify(fragment.mSavedQueryController).loadSavedQueries(); verify(fragment.mSavedQueryController).loadSavedQueries();
} }
@Test
public void onIndexingFinished_noActivity_shouldNotCrash() {
ActivityController<SearchActivity> activityController =
Robolectric.buildActivity(SearchActivity.class);
activityController.setup();
SearchFragment fragment = (SearchFragment) spy(activityController.get().getFragmentManager()
.findFragmentById(R.id.main_content));
when(mFeatureFactory.searchFeatureProvider.isIndexingComplete(any(Context.class)))
.thenReturn(true);
fragment.mQuery = "bright";
ReflectionHelpers.setField(fragment, "mLoaderManager", null);
ReflectionHelpers.setField(fragment, "mHost", null);
fragment.onIndexingFinished();
// no crash
}
} }