Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1d1765e authored by Yi Jiang's avatar Yi Jiang Committed by Android (Google) Code Review
Browse files

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

parents 8033a6ff 8aaa9f55
Loading
Loading
Loading
Loading
+15 −7
Original line number Diff line number Diff line
@@ -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));
        }
    }
}
+16 −8
Original line number Diff line number Diff line
@@ -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));
        }
    }
}
+2 −15
Original line number Diff line number Diff line
@@ -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);