Merge "Lazy load SettingsObserver"

This commit is contained in:
Jeffrey Huang
2017-10-17 17:22:31 +00:00
committed by Android (Google) Code Review
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);