Lazy load SettingsObserver

- Lazy load the SettingsObserver in StayAwakePreferenceController
 so that search indexing works properly

Bug: 34203528
Test: make RunSettingsRoboTests -j40
Change-Id: I1e2afb106ce293f616143da3f37fbde3829f414f
This commit is contained in:
jeffreyhuang
2017-10-16 16:56:26 -07:00
parent 32b0f1d486
commit 17edf20fa5
2 changed files with 11 additions and 5 deletions

View File

@@ -56,7 +56,6 @@ public class StayAwakePreferenceController extends DeveloperOptionsPreferenceCon
public StayAwakePreferenceController(Context context, Lifecycle lifecycle) {
super(context);
mSettingsObserver = new SettingsObserver();
if (lifecycle != null) {
lifecycle.addObserver(this);
@@ -99,16 +98,21 @@ public class StayAwakePreferenceController extends DeveloperOptionsPreferenceCon
@Override
public void onResume() {
if (mPreference != null) {
mSettingsObserver.register(true /* register */);
if (mPreference == null) {
return;
}
if (mSettingsObserver == null) {
mSettingsObserver = new SettingsObserver();
}
mSettingsObserver.register(true /* register */);
}
@Override
public void onPause() {
if (mPreference != null) {
mSettingsObserver.register(false /* unregister */);
if (mPreference == null || mSettingsObserver == null) {
return;
}
mSettingsObserver.register(false /* unregister */);
}
@Override

View File

@@ -123,6 +123,7 @@ public class StayAwakePreferenceControllerTest {
public void observerOnChangeCalledWithSameUri_preferenceShouldBeUpdated() {
Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
StayAwakePreferenceController.SETTING_VALUE_ON);
mController.onResume();
mController.mSettingsObserver.onChange(false,
Settings.Global.getUriFor(Settings.Global.STAY_ON_WHILE_PLUGGED_IN));
@@ -133,6 +134,7 @@ public class StayAwakePreferenceControllerTest {
public void observerOnChangeCalledWithDifferentUri_preferenceShouldNotBeUpdated() {
Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
StayAwakePreferenceController.SETTING_VALUE_ON);
mController.onResume();
mController.mSettingsObserver.onChange(false, null);
verify(mPreference, never()).setChecked(true);