Merge "Fix pref availability for search" into nyc-dev
am: 8eaa3de931
* commit '8eaa3de9317eb21855db43ed276b90ca48ad1d28':
Fix pref availability for search
Change-Id: I777450a2531d9c817d6ff76068b6ac7c02fcb782
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 90f2726..72205eb 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -53,6 +53,7 @@
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.INetworkManagementService;
+import android.os.Looper;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
@@ -1071,18 +1072,15 @@
}
public static List<String> getNonIndexable(int xml, Context context) {
- HandlerThread thread = new HandlerThread("Index_" + xml);
- thread.start();
+ if (Looper.myLooper() == null) {
+ // Hack to make sure Preferences can initialize. Prefs expect a looper, but
+ // don't actually use it for the basic stuff here.
+ Looper.prepare();
+ }
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();
+ PreferenceManager manager = new PreferenceManager(context);
+ PreferenceScreen screen = manager.inflateFromResource(context, xml, null);
+ checkPrefs(screen, ret);
return ret;
}