diff options
author | Matthew Fritze <mfritze@google.com> | 2018-02-20 18:27:26 -0800 |
---|---|---|
committer | Matthew Fritze <mfritze@google.com> | 2018-02-21 11:27:09 -0800 |
commit | e8854ec33d9052128b3a8628b5cc0bf8fce5d2ab (patch) | |
tree | 2f9db581430f2344c95bbce65143eb1d48aa1e5e /src/com/android/settings/fuelgauge/BatterySaverController.java | |
parent | 956dd9451bd8a2b65ead36bd96bd0ece7fe935f7 (diff) | |
download | packages_apps_Settings-e8854ec33d9052128b3a8628b5cc0bf8fce5d2ab.tar.gz packages_apps_Settings-e8854ec33d9052128b3a8628b5cc0bf8fce5d2ab.tar.bz2 packages_apps_Settings-e8854ec33d9052128b3a8628b5cc0bf8fce5d2ab.zip |
Add BatterySaver as SettingSlice
Convert BatterySaverController to TogglePrefController.
This was the first MasterSwitchController, so we needed
to add the preference case to updateState.
Test: Robotests
Change-Id: I32f3dee0b183807c66c19513b8b064af8f369c2a
Fixes: 67996992
Diffstat (limited to 'src/com/android/settings/fuelgauge/BatterySaverController.java')
-rw-r--r-- | src/com/android/settings/fuelgauge/BatterySaverController.java | 50 |
1 files changed, 22 insertions, 28 deletions
diff --git a/src/com/android/settings/fuelgauge/BatterySaverController.java b/src/com/android/settings/fuelgauge/BatterySaverController.java index 85fb9f5efb..58b7d13289 100644 --- a/src/com/android/settings/fuelgauge/BatterySaverController.java +++ b/src/com/android/settings/fuelgauge/BatterySaverController.java @@ -21,42 +21,36 @@ import android.os.Handler; import android.os.PowerManager; import android.provider.Settings; import android.support.annotation.VisibleForTesting; -import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; + import com.android.settings.R; import com.android.settings.Utils; -import com.android.settings.core.PreferenceControllerMixin; +import com.android.settings.core.TogglePreferenceController; import com.android.settings.dashboard.conditional.BatterySaverCondition; import com.android.settings.dashboard.conditional.ConditionManager; import com.android.settings.widget.MasterSwitchPreference; -import com.android.settingslib.core.AbstractPreferenceController; -import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; -import static android.os.PowerManager.ACTION_POWER_SAVE_MODE_CHANGING; - -public class BatterySaverController extends AbstractPreferenceController - implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener, - LifecycleObserver, OnStart, OnStop, BatterySaverReceiver.BatterySaverListener { +public class BatterySaverController extends TogglePreferenceController + implements LifecycleObserver, OnStart, OnStop, BatterySaverReceiver.BatterySaverListener { private static final String KEY_BATTERY_SAVER = "battery_saver_summary"; private final BatterySaverReceiver mBatteryStateChangeReceiver; private final PowerManager mPowerManager; private MasterSwitchPreference mBatterySaverPref; - public BatterySaverController(Context context, Lifecycle lifecycle) { - super(context); + public BatterySaverController(Context context) { + super(context, KEY_BATTERY_SAVER); - lifecycle.addObserver(this); mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); mBatteryStateChangeReceiver = new BatterySaverReceiver(context); mBatteryStateChangeReceiver.setBatterySaverListener(this); } @Override - public boolean isAvailable() { - return true; + public int getAvailabilityStatus() { + return AVAILABLE; } @Override @@ -71,17 +65,9 @@ public class BatterySaverController extends AbstractPreferenceController } @Override - public void updateState(Preference preference) { - mBatterySaverPref.setChecked(mPowerManager.isPowerSaveMode()); - updateSummary(); - } - - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - final boolean saverOn = (Boolean) newValue; - if (saverOn != mPowerManager.isPowerSaveMode() - && !mPowerManager.setPowerSaveMode(saverOn)) { - // Do nothing if power save mode doesn't set correctly + public boolean setChecked(boolean isChecked) { + mBatterySaverPref.setChecked(isChecked); + if (!mPowerManager.setPowerSaveMode(isChecked)) { return false; } @@ -91,6 +77,11 @@ public class BatterySaverController extends AbstractPreferenceController } @Override + public boolean isChecked() { + return mPowerManager.isPowerSaveMode(); + } + + @Override public void onStart() { mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL) @@ -110,7 +101,8 @@ public class BatterySaverController extends AbstractPreferenceController ConditionManager.get(mContext).getCondition(BatterySaverCondition.class).refreshState(); } - private void updateSummary() { + @Override + public String getSummary() { final boolean mode = mPowerManager.isPowerSaveMode(); final int format = mode ? R.string.battery_saver_on_summary : R.string.battery_saver_off_summary; @@ -119,10 +111,12 @@ public class BatterySaverController extends AbstractPreferenceController final int percentFormat = percent > 0 ? R.string.battery_saver_desc_turn_on_auto_pct : R.string.battery_saver_desc_turn_on_auto_never; - final String summary = mContext.getString(format, mContext.getString(percentFormat, + return mContext.getString(format, mContext.getString(percentFormat, Utils.formatPercentage(percent))); + } - mBatterySaverPref.setSummary(summary); + private void updateSummary() { + mBatterySaverPref.setSummary(getSummary()); } private final ContentObserver mObserver = new ContentObserver(new Handler()) { |