private static class SecuritySearchIndexProvider extends BaseSearchIndexProvider {
+ // TODO (b/68001777) Refactor indexing to include all XML and block other settings.
+
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(
Context context, boolean enabled) {
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;
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();
}
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> 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);