Merge "Defers initialization of preferences." into sc-dev
This commit is contained in:
@@ -32,23 +32,20 @@ import com.android.settingslib.widget.BannerMessagePreference;
|
|||||||
public class AdaptiveSleepBatterySaverPreferenceController {
|
public class AdaptiveSleepBatterySaverPreferenceController {
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final BannerMessagePreference mPreference;
|
BannerMessagePreference mPreference;
|
||||||
private final PowerManager mPowerManager;
|
private final PowerManager mPowerManager;
|
||||||
|
private final Context mContext;
|
||||||
|
|
||||||
public AdaptiveSleepBatterySaverPreferenceController(Context context) {
|
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);
|
mPowerManager = context.getSystemService(PowerManager.class);
|
||||||
mPreference.setPositiveButtonOnClickListener(p -> {
|
mContext = context;
|
||||||
mPowerManager.setPowerSaveModeEnabled(false);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the controlled preference to the provided preference screen.
|
* Adds the controlled preference to the provided preference screen.
|
||||||
*/
|
*/
|
||||||
public void addToScreen(PreferenceScreen screen) {
|
public void addToScreen(PreferenceScreen screen) {
|
||||||
|
initializePreference();
|
||||||
screen.addPreference(mPreference);
|
screen.addPreference(mPreference);
|
||||||
updateVisibility();
|
updateVisibility();
|
||||||
}
|
}
|
||||||
@@ -66,6 +63,17 @@ public class AdaptiveSleepBatterySaverPreferenceController {
|
|||||||
* Refreshes the visibility of the preference.
|
* Refreshes the visibility of the preference.
|
||||||
*/
|
*/
|
||||||
public void updateVisibility() {
|
public void updateVisibility() {
|
||||||
|
initializePreference();
|
||||||
mPreference.setVisible(isPowerSaveMode());
|
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));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -33,26 +33,22 @@ import com.android.settingslib.widget.BannerMessagePreference;
|
|||||||
*/
|
*/
|
||||||
public class AdaptiveSleepCameraStatePreferenceController {
|
public class AdaptiveSleepCameraStatePreferenceController {
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final BannerMessagePreference mPreference;
|
BannerMessagePreference mPreference;
|
||||||
private final SensorPrivacyManager mPrivacyManager;
|
private final SensorPrivacyManager mPrivacyManager;
|
||||||
|
private final Context mContext;
|
||||||
|
|
||||||
public AdaptiveSleepCameraStatePreferenceController(Context context) {
|
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 = SensorPrivacyManager.getInstance(context);
|
||||||
mPrivacyManager.addSensorPrivacyListener(CAMERA,
|
mPrivacyManager.addSensorPrivacyListener(CAMERA,
|
||||||
(sensor, enabled) -> updateVisibility());
|
(sensor, enabled) -> updateVisibility());
|
||||||
mPreference.setPositiveButtonOnClickListener(p -> {
|
mContext = context;
|
||||||
mPrivacyManager.setSensorPrivacy(CAMERA, false);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the controlled preference to the provided preference screen.
|
* Adds the controlled preference to the provided preference screen.
|
||||||
*/
|
*/
|
||||||
public void addToScreen(PreferenceScreen screen) {
|
public void addToScreen(PreferenceScreen screen) {
|
||||||
|
initializePreference();
|
||||||
screen.addPreference(mPreference);
|
screen.addPreference(mPreference);
|
||||||
updateVisibility();
|
updateVisibility();
|
||||||
}
|
}
|
||||||
@@ -70,6 +66,18 @@ public class AdaptiveSleepCameraStatePreferenceController {
|
|||||||
* Refreshes the visibility of the preference.
|
* Refreshes the visibility of the preference.
|
||||||
*/
|
*/
|
||||||
public void updateVisibility() {
|
public void updateVisibility() {
|
||||||
|
initializePreference();
|
||||||
mPreference.setVisible(isCameraLocked());
|
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));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -65,19 +65,6 @@ public class AdaptiveSleepPreferenceController {
|
|||||||
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||||
mPrivacyManager = SensorPrivacyManager.getInstance(context);
|
mPrivacyManager = SensorPrivacyManager.getInstance(context);
|
||||||
mPowerManager = context.getSystemService(PowerManager.class);
|
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();
|
mPackageManager = context.getPackageManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,8 +103,8 @@ public class AdaptiveSleepPreferenceController {
|
|||||||
mPreference.setSummary(R.string.adaptive_sleep_description);
|
mPreference.setSummary(R.string.adaptive_sleep_description);
|
||||||
mPreference.setChecked(isChecked());
|
mPreference.setChecked(isChecked());
|
||||||
mPreference.setKey(PREFERENCE_KEY);
|
mPreference.setKey(PREFERENCE_KEY);
|
||||||
mPreference.setOnPreferenceChangeListener((preference, value) -> {
|
mPreference.setOnPreferenceClickListener(preference -> {
|
||||||
final boolean isChecked = (Boolean) value;
|
final boolean isChecked = ((RestrictedSwitchPreference) preference).isChecked();
|
||||||
mMetricsFeatureProvider.action(mContext,
|
mMetricsFeatureProvider.action(mContext,
|
||||||
SettingsEnums.ACTION_SCREEN_ATTENTION_CHANGED,
|
SettingsEnums.ACTION_SCREEN_ATTENTION_CHANGED,
|
||||||
isChecked);
|
isChecked);
|
||||||
|
Reference in New Issue
Block a user