diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index 822a60d1836..26a9ecbf355 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -834,6 +834,8 @@ public class SecuritySettings extends SettingsPreferenceFragment private static class SecuritySearchIndexProvider extends BaseSearchIndexProvider { + // TODO (b/68001777) Refactor indexing to include all XML and block other settings. + @Override public List getXmlResourcesToIndex( Context context, boolean enabled) { diff --git a/src/com/android/settings/search/indexing/IndexDataConverter.java b/src/com/android/settings/search/indexing/IndexDataConverter.java index 487132b8e7b..8010db9bfc0 100644 --- a/src/com/android/settings/search/indexing/IndexDataConverter.java +++ b/src/com/android/settings/search/indexing/IndexDataConverter.java @@ -19,6 +19,7 @@ package com.android.settings.search.indexing; import android.annotation.Nullable; import android.content.Context; +import android.content.res.Resources; import android.content.res.XmlResourceParser; import android.provider.SearchIndexableData; import android.provider.SearchIndexableResource; @@ -307,9 +308,11 @@ public class IndexDataConverter { resourceIndexData.add(headerBuilder.build(mContext)); } } catch (XmlPullParserException e) { - throw new RuntimeException("Error parsing PreferenceScreen", e); + Log.w(LOG_TAG, "XML Error parsing PreferenceScreen: ", e); } catch (IOException e) { - throw new RuntimeException("Error parsing PreferenceScreen", e); + Log.w(LOG_TAG, "IO Error parsing PreferenceScreen: " , e); + } catch (Resources.NotFoundException e ) { + Log.w(LOG_TAG, "Resoucre not found error parsing PreferenceScreen: ", e); } finally { if (parser != null) parser.close(); } diff --git a/tests/robotests/src/com/android/settings/search/indexing/IndexDataConverterTest.java b/tests/robotests/src/com/android/settings/search/indexing/IndexDataConverterTest.java index cac6f3a530d..1612036d945 100644 --- a/tests/robotests/src/com/android/settings/search/indexing/IndexDataConverterTest.java +++ b/tests/robotests/src/com/android/settings/search/indexing/IndexDataConverterTest.java @@ -334,6 +334,17 @@ public class IndexDataConverterTest { assertThat(nonTitlePref.enabled).isTrue(); } + @Test + public void testResourceWithoutXml_shouldNotCrash() { + final SearchIndexableResource resource = getFakeResource(0); + final PreIndexData preIndexData = new PreIndexData(); + preIndexData.dataToUpdate.add(resource); + + List indexData = mConverter.convertPreIndexDataToIndexData(preIndexData); + + assertThat(indexData).isEmpty(); + } + private void assertDisplaySetting(IndexData row, String title, String summaryOn, String summaryOff, String key) { assertThat(row.normalizedTitle).isEqualTo(title);