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;
     }
diff --git a/src/com/android/settings/search/Ranking.java b/src/com/android/settings/search/Ranking.java
index 94b010c..80eb6d4 100644
--- a/src/com/android/settings/search/Ranking.java
+++ b/src/com/android/settings/search/Ranking.java
@@ -21,13 +21,11 @@
 import com.android.settings.DevelopmentSettings;
 import com.android.settings.DeviceInfoSettings;
 import com.android.settings.DisplaySettings;
-import com.android.settings.HomeSettings;
 import com.android.settings.LegalSettings;
 import com.android.settings.PrivacySettings;
 import com.android.settings.ScreenPinningSettings;
 import com.android.settings.SecuritySettings;
 import com.android.settings.WallpaperTypeSettings;
-import com.android.settings.WifiCallingSettings;
 import com.android.settings.WirelessSettings;
 import com.android.settings.accessibility.AccessibilitySettings;
 import com.android.settings.accounts.AccountSettings;
@@ -69,25 +67,24 @@
     public static final int RANK_SIM = 3;
     public static final int RANK_DATA_USAGE = 4;
     public static final int RANK_WIRELESS = 5;
-    public static final int RANK_HOME = 6;
-    public static final int RANK_DISPLAY = 7;
-    public static final int RANK_WALLPAPER = 8;
-    public static final int RANK_NOTIFICATIONS = 9;
-    public static final int RANK_SOUND = 10;
-    public static final int RANK_APPS = 11;
-    public static final int RANK_STORAGE = 12;
-    public static final int RANK_POWER_USAGE = 13;
-    public static final int RANK_USERS = 14;
-    public static final int RANK_LOCATION = 15;
-    public static final int RANK_SECURITY = 16;
-    public static final int RANK_ACCOUNT = 17;
-    public static final int RANK_IME = 18;
-    public static final int RANK_PRIVACY = 19;
-    public static final int RANK_DATE_TIME = 20;
-    public static final int RANK_ACCESSIBILITY = 21;
-    public static final int RANK_PRINTING = 22;
-    public static final int RANK_DEVELOPEMENT = 23;
-    public static final int RANK_DEVICE_INFO = 24;
+    public static final int RANK_DISPLAY = 6;
+    public static final int RANK_WALLPAPER = 7;
+    public static final int RANK_NOTIFICATIONS = 8;
+    public static final int RANK_SOUND = 9;
+    public static final int RANK_APPS = 10;
+    public static final int RANK_STORAGE = 11;
+    public static final int RANK_POWER_USAGE = 12;
+    public static final int RANK_USERS = 13;
+    public static final int RANK_LOCATION = 14;
+    public static final int RANK_SECURITY = 15;
+    public static final int RANK_ACCOUNT = 16;
+    public static final int RANK_IME = 17;
+    public static final int RANK_PRIVACY = 18;
+    public static final int RANK_DATE_TIME = 19;
+    public static final int RANK_ACCESSIBILITY = 20;
+    public static final int RANK_PRINTING = 21;
+    public static final int RANK_DEVELOPEMENT = 22;
+    public static final int RANK_DEVICE_INFO = 23;
 
     public static final int RANK_UNDEFINED = -1;
     public static final int RANK_OTHERS = 1024;
@@ -117,9 +114,6 @@
         // Other wireless settinfs
         sRankMap.put(WirelessSettings.class.getName(), RANK_WIRELESS);
 
-        // Home
-        sRankMap.put(HomeSettings.class.getName(), RANK_HOME);
-
         // Display
         sRankMap.put(DisplaySettings.class.getName(), RANK_DISPLAY);
         sRankMap.put(ScreenZoomSettings.class.getName(), RANK_WIFI);
diff --git a/src/com/android/settings/search/SearchIndexableResources.java b/src/com/android/settings/search/SearchIndexableResources.java
index 73784b2..08a0d0c 100644
--- a/src/com/android/settings/search/SearchIndexableResources.java
+++ b/src/com/android/settings/search/SearchIndexableResources.java
@@ -21,14 +21,12 @@
 import com.android.settings.DevelopmentSettings;
 import com.android.settings.DeviceInfoSettings;
 import com.android.settings.DisplaySettings;
-import com.android.settings.HomeSettings;
 import com.android.settings.LegalSettings;
 import com.android.settings.PrivacySettings;
 import com.android.settings.R;
 import com.android.settings.ScreenPinningSettings;
 import com.android.settings.SecuritySettings;
 import com.android.settings.WallpaperTypeSettings;
-import com.android.settings.WifiCallingSettings;
 import com.android.settings.WirelessSettings;
 import com.android.settings.accessibility.AccessibilitySettings;
 import com.android.settings.accounts.AccountSettings;
@@ -124,13 +122,6 @@
                         WirelessSettings.class.getName(),
                         R.drawable.ic_settings_more));
 
-        sResMap.put(HomeSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(HomeSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        HomeSettings.class.getName(),
-                        R.drawable.ic_settings_home));
-
         sResMap.put(ScreenZoomSettings.class.getName(),
                 new SearchIndexableResource(
                         Ranking.getRankForClassName(ScreenZoomSettings.class.getName()),