Merge "Defers initialization of preferences." into sc-dev

This commit is contained in:
Yi Jiang
2021-05-21 16:41:10 +00:00
committed by Android (Google) Code Review
3 changed files with 33 additions and 30 deletions

View File

@@ -32,23 +32,20 @@ import com.android.settingslib.widget.BannerMessagePreference;
public class AdaptiveSleepBatterySaverPreferenceController {
@VisibleForTesting
final BannerMessagePreference mPreference;
BannerMessagePreference mPreference;
private final PowerManager mPowerManager;
private final Context mContext;
public AdaptiveSleepBatterySaverPreferenceController(Context context) {
mPreference = new BannerMessagePreference(context);
mPreference.setTitle(R.string.ambient_camera_summary_battery_saver_on);
mPreference.setPositiveButtonText(R.string.disable_text);
mPowerManager = context.getSystemService(PowerManager.class);
mPreference.setPositiveButtonOnClickListener(p -> {
mPowerManager.setPowerSaveModeEnabled(false);
});
mContext = context;
}
/**
* Adds the controlled preference to the provided preference screen.
*/
public void addToScreen(PreferenceScreen screen) {
initializePreference();
screen.addPreference(mPreference);
updateVisibility();
}
@@ -66,6 +63,17 @@ public class AdaptiveSleepBatterySaverPreferenceController {
* Refreshes the visibility of the preference.
*/
public void updateVisibility() {
initializePreference();
mPreference.setVisible(isPowerSaveMode());
}
private void initializePreference() {
if (mPreference == null) {
mPreference = new BannerMessagePreference(mContext);
mPreference.setTitle(R.string.ambient_camera_summary_battery_saver_on);
mPreference.setPositiveButtonText(R.string.disable_text);
mPreference.setPositiveButtonOnClickListener(
p -> mPowerManager.setPowerSaveModeEnabled(false));
}
}
}

View File

@@ -33,26 +33,22 @@ import com.android.settingslib.widget.BannerMessagePreference;
*/
public class AdaptiveSleepCameraStatePreferenceController {
@VisibleForTesting
final BannerMessagePreference mPreference;
BannerMessagePreference mPreference;
private final SensorPrivacyManager mPrivacyManager;
private final Context mContext;
public AdaptiveSleepCameraStatePreferenceController(Context context) {
mPreference = new BannerMessagePreference(context);
mPreference.setTitle(R.string.auto_rotate_camera_lock_title);
mPreference.setSummary(R.string.adaptive_sleep_camera_lock_summary);
mPreference.setPositiveButtonText(R.string.allow);
mPrivacyManager = SensorPrivacyManager.getInstance(context);
mPrivacyManager.addSensorPrivacyListener(CAMERA,
(sensor, enabled) -> updateVisibility());
mPreference.setPositiveButtonOnClickListener(p -> {
mPrivacyManager.setSensorPrivacy(CAMERA, false);
});
mContext = context;
}
/**
* Adds the controlled preference to the provided preference screen.
*/
public void addToScreen(PreferenceScreen screen) {
initializePreference();
screen.addPreference(mPreference);
updateVisibility();
}
@@ -70,6 +66,18 @@ public class AdaptiveSleepCameraStatePreferenceController {
* Refreshes the visibility of the preference.
*/
public void updateVisibility() {
initializePreference();
mPreference.setVisible(isCameraLocked());
}
private void initializePreference() {
if (mPreference == null) {
mPreference = new BannerMessagePreference(mContext);
mPreference.setTitle(R.string.auto_rotate_camera_lock_title);
mPreference.setSummary(R.string.adaptive_sleep_camera_lock_summary);
mPreference.setPositiveButtonText(R.string.allow);
mPreference.setPositiveButtonOnClickListener(
p -> mPrivacyManager.setSensorPrivacy(CAMERA, false));
}
}
}

View File

@@ -65,19 +65,6 @@ public class AdaptiveSleepPreferenceController {
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
mPrivacyManager = SensorPrivacyManager.getInstance(context);
mPowerManager = context.getSystemService(PowerManager.class);
mPreference = new RestrictedSwitchPreference(context);
mPreference.setTitle(R.string.adaptive_sleep_title);
mPreference.setSummary(R.string.adaptive_sleep_description);
mPreference.setChecked(isChecked());
mPreference.setKey(PREFERENCE_KEY);
mPreference.setOnPreferenceClickListener(preference -> {
final boolean isChecked = ((RestrictedSwitchPreference) preference).isChecked();
mMetricsFeatureProvider.action(context, SettingsEnums.ACTION_SCREEN_ATTENTION_CHANGED,
isChecked);
Settings.Secure.putInt(context.getContentResolver(),
Settings.Secure.ADAPTIVE_SLEEP, isChecked ? 1 : DEFAULT_VALUE);
return true;
});
mPackageManager = context.getPackageManager();
}
@@ -116,8 +103,8 @@ public class AdaptiveSleepPreferenceController {
mPreference.setSummary(R.string.adaptive_sleep_description);
mPreference.setChecked(isChecked());
mPreference.setKey(PREFERENCE_KEY);
mPreference.setOnPreferenceChangeListener((preference, value) -> {
final boolean isChecked = (Boolean) value;
mPreference.setOnPreferenceClickListener(preference -> {
final boolean isChecked = ((RestrictedSwitchPreference) preference).isChecked();
mMetricsFeatureProvider.action(mContext,
SettingsEnums.ACTION_SCREEN_ATTENTION_CHANGED,
isChecked);