Merge "Set activity title from preference screen title."
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 822a60d..26a9ecb 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -834,6 +834,8 @@
 
     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) {
diff --git a/src/com/android/settings/fuelgauge/FakeUid.java b/src/com/android/settings/fuelgauge/FakeUid.java
index 253dc02..2c3e3cf 100644
--- a/src/com/android/settings/fuelgauge/FakeUid.java
+++ b/src/com/android/settings/fuelgauge/FakeUid.java
@@ -154,6 +154,11 @@
     }
 
     @Override
+    public Timer getWifiScanTimer() {
+        return null;
+    }
+
+    @Override
     public int getWifiScanBackgroundCount(int which)  {
         return 0;
     }
@@ -169,6 +174,11 @@
     }
 
     @Override
+    public Timer getWifiScanBackgroundTimer() {
+        return null;
+    }
+
+    @Override
     public long getWifiBatchedScanTime(int csphBin, long elapsedRealtimeUs, int which) {
         return 0;
     }
diff --git a/src/com/android/settings/search/indexing/IndexDataConverter.java b/src/com/android/settings/search/indexing/IndexDataConverter.java
index 487132b..8010db9 100644
--- a/src/com/android/settings/search/indexing/IndexDataConverter.java
+++ b/src/com/android/settings/search/indexing/IndexDataConverter.java
@@ -19,6 +19,7 @@
 
 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 @@
                 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 cac6f3a..1612036 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 @@
         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);