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:
@@ -56,7 +56,6 @@ public class StayAwakePreferenceController extends DeveloperOptionsPreferenceCon
|
|||||||
|
|
||||||
public StayAwakePreferenceController(Context context, Lifecycle lifecycle) {
|
public StayAwakePreferenceController(Context context, Lifecycle lifecycle) {
|
||||||
super(context);
|
super(context);
|
||||||
mSettingsObserver = new SettingsObserver();
|
|
||||||
|
|
||||||
if (lifecycle != null) {
|
if (lifecycle != null) {
|
||||||
lifecycle.addObserver(this);
|
lifecycle.addObserver(this);
|
||||||
@@ -99,16 +98,21 @@ public class StayAwakePreferenceController extends DeveloperOptionsPreferenceCon
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
if (mPreference != null) {
|
if (mPreference == null) {
|
||||||
mSettingsObserver.register(true /* register */);
|
return;
|
||||||
}
|
}
|
||||||
|
if (mSettingsObserver == null) {
|
||||||
|
mSettingsObserver = new SettingsObserver();
|
||||||
|
}
|
||||||
|
mSettingsObserver.register(true /* register */);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
if (mPreference != null) {
|
if (mPreference == null || mSettingsObserver == null) {
|
||||||
mSettingsObserver.register(false /* unregister */);
|
return;
|
||||||
}
|
}
|
||||||
|
mSettingsObserver.register(false /* unregister */);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -123,6 +123,7 @@ public class StayAwakePreferenceControllerTest {
|
|||||||
public void observerOnChangeCalledWithSameUri_preferenceShouldBeUpdated() {
|
public void observerOnChangeCalledWithSameUri_preferenceShouldBeUpdated() {
|
||||||
Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
|
Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
|
||||||
StayAwakePreferenceController.SETTING_VALUE_ON);
|
StayAwakePreferenceController.SETTING_VALUE_ON);
|
||||||
|
mController.onResume();
|
||||||
mController.mSettingsObserver.onChange(false,
|
mController.mSettingsObserver.onChange(false,
|
||||||
Settings.Global.getUriFor(Settings.Global.STAY_ON_WHILE_PLUGGED_IN));
|
Settings.Global.getUriFor(Settings.Global.STAY_ON_WHILE_PLUGGED_IN));
|
||||||
|
|
||||||
@@ -133,6 +134,7 @@ public class StayAwakePreferenceControllerTest {
|
|||||||
public void observerOnChangeCalledWithDifferentUri_preferenceShouldNotBeUpdated() {
|
public void observerOnChangeCalledWithDifferentUri_preferenceShouldNotBeUpdated() {
|
||||||
Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
|
Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
|
||||||
StayAwakePreferenceController.SETTING_VALUE_ON);
|
StayAwakePreferenceController.SETTING_VALUE_ON);
|
||||||
|
mController.onResume();
|
||||||
mController.mSettingsObserver.onChange(false, null);
|
mController.mSettingsObserver.onChange(false, null);
|
||||||
|
|
||||||
verify(mPreference, never()).setChecked(true);
|
verify(mPreference, never()).setChecked(true);
|
||||||
|
Reference in New Issue
Block a user