Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 404d9605 authored by Matthew Fritze's avatar Matthew Fritze
Browse files

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
parent 2c93b071
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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);
        }