Fix home search

 - Remove old home from search
 - Fix weird threading problem on new home search indexing

Bug: 27249674
Change-Id: I3cfdde7dd3595f5161b5f8c861041c40e800c7bd
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index e719291..5a76bf3 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -48,6 +48,8 @@
 import android.net.Uri;
 import android.os.BatteryManager;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
 import android.os.IBinder;
 import android.os.INetworkManagementService;
 import android.os.RemoteException;
@@ -1045,10 +1047,18 @@
     }
 
     public static List<String> getNonIndexable(int xml, Context context) {
-        List<String> ret = new ArrayList<>();
-        PreferenceManager manager = new PreferenceManager(context);
-        PreferenceScreen screen = manager.inflateFromResource(context, xml, null);
-        checkPrefs(screen, ret);
+        HandlerThread thread = new HandlerThread("Index_" + xml);
+        thread.start();
+        final List<String> ret = new ArrayList<>();
+        new Handler(thread.getLooper()).post(new Runnable() {
+            @Override
+            public void run() {
+                PreferenceManager manager = new PreferenceManager(context);
+                PreferenceScreen screen = manager.inflateFromResource(context, xml, null);
+                checkPrefs(screen, ret);
+            }
+        });
+        thread.quitSafely();
 
         return ret;
     }