From 404d96058cb5983dd3c958521894a5616ab3e4ae Mon Sep 17 00:00:00 2001 From: Matthew Fritze Date: Mon, 12 Feb 2018 13:52:48 -0800 Subject: [PATCH] Handle Looper in PreferenceController When indexing content in search, the preference controllers are init'd on the background thread, thus you can't create a handler without calling Looper.prepare(). We have PreferenceConttrollerContractTest to catch these errors, but it was not running in presubmit. Bug tracking: b/73242024 This caused the indexing thread to crash, thus not adding any non-indexable keys for settings results. Test: atest PreferenceControllerContractTest Fixes: 73168342 Change-Id: I89fe596435d317bb3e3baebdaace97a67700d77e --- .../batterysaver/AutoBatterySeekBarPreferenceController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java index 1c787abd5d4..1cc72a79fbb 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import android.database.ContentObserver; import android.net.Uri; import android.os.Handler; +import android.os.Looper; import android.provider.Settings; import android.support.annotation.VisibleForTesting; import android.support.v7.preference.Preference; @@ -46,7 +47,7 @@ public class AutoBatterySeekBarPreferenceController extends BasePreferenceContro public AutoBatterySeekBarPreferenceController(Context context, Lifecycle lifecycle) { super(context, KEY_AUTO_BATTERY_SEEK_BAR); - mContentObserver = new AutoBatterySaverSettingObserver(new Handler()); + mContentObserver = new AutoBatterySaverSettingObserver(new Handler(Looper.getMainLooper())); if (lifecycle != null) { lifecycle.addObserver(this); }