Loading res/xml/power_usage_summary.xml +2 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,8 @@ <com.android.settings.widget.MasterSwitchPreference android:fragment="com.android.settings.fuelgauge.batterysaver.BatterySaverSettings" android:key="battery_saver_summary" android:title="@string/battery_saver"/> android:title="@string/battery_saver" settings:controller="com.android.settings.fuelgauge.BatterySaverController"/> <Preference android:fragment="com.android.settings.fuelgauge.SmartBatterySettings" Loading src/com/android/settings/core/TogglePreferenceController.java +7 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ import android.content.Context; import android.support.v7.preference.Preference; import android.support.v7.preference.TwoStatePreference; import com.android.settings.widget.MasterSwitchPreference; /** * Abstract class that consolidates logic for updating toggle controllers. * It automatically handles the getting and setting of the switch UI element. Loading Loading @@ -46,7 +48,11 @@ public abstract class TogglePreferenceController extends BasePreferenceControlle @Override public final void updateState(Preference preference) { if (preference instanceof TwoStatePreference) { ((TwoStatePreference) preference).setChecked(isChecked()); } if (preference instanceof MasterSwitchPreference) { ((MasterSwitchPreference) preference).setChecked(isChecked()); } } @Override Loading src/com/android/settings/fuelgauge/BatterySaverController.java +22 −28 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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; } Loading @@ -90,6 +76,11 @@ public class BatterySaverController extends AbstractPreferenceController return true; } @Override public boolean isChecked() { return mPowerManager.isPowerSaveMode(); } @Override public void onStart() { mContext.getContentResolver().registerContentObserver( Loading @@ -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; Loading @@ -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()) { Loading src/com/android/settings/fuelgauge/PowerUsageSummary.java +9 −4 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.utils.PowerUtil; import com.android.settingslib.utils.StringUtil; import java.util.ArrayList; import java.util.Arrays; import java.util.List; Loading Loading @@ -232,17 +233,20 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList final SettingsActivity activity = (SettingsActivity) getActivity(); final List<AbstractPreferenceController> controllers = new ArrayList<>(); mBatteryHeaderPreferenceController = new BatteryHeaderPreferenceController( context, activity, this /* host */, getLifecycle()); context, activity, this /* host */, lifecycle); controllers.add(mBatteryHeaderPreferenceController); mBatteryAppListPreferenceController = new BatteryAppListPreferenceController(context, KEY_APP_LIST, lifecycle, activity, this); controllers.add(mBatteryAppListPreferenceController); mBatteryTipPreferenceController = new BatteryTipPreferenceController(context, KEY_BATTERY_TIP, (SettingsActivity) getActivity(), this, this); KEY_BATTERY_TIP, (SettingsActivity) getActivity(), this /* fragment */, this /* BatteryTipListener */); controllers.add(mBatteryTipPreferenceController); controllers.add(new BatterySaverController(context, getLifecycle())); BatterySaverController batterySaverController = new BatterySaverController(context); controllers.add(batterySaverController); controllers.add(new BatteryPercentagePreferenceController(context)); lifecycle.addObserver(batterySaverController); return controllers; } Loading Loading @@ -322,7 +326,8 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList @VisibleForTesting void updateLastFullChargePreference(long timeMs) { final CharSequence timeSequence = StringUtil.formatRelativeTime(getContext(), timeMs, false); final CharSequence timeSequence = StringUtil.formatRelativeTime(getContext(), timeMs, false); mLastFullChargePref.setSubtitle(timeSequence); } Loading src/com/android/settings/fuelgauge/PowerUsageSummaryLegacy.java +3 −1 Original line number Diff line number Diff line Loading @@ -314,12 +314,14 @@ public class PowerUsageSummaryLegacy extends PowerUsageBase implements controllers.add(mBatteryHeaderPreferenceController); controllers.add(new AutoBrightnessPreferenceController(context, KEY_AUTO_BRIGHTNESS)); controllers.add(new TimeoutPreferenceController(context, KEY_SCREEN_TIMEOUT)); controllers.add(new BatterySaverController(context, getLifecycle())); controllers.add(new BatteryPercentagePreferenceController(context)); controllers.add(new AmbientDisplayPreferenceController( context, new AmbientDisplayConfiguration(context), KEY_AMBIENT_DISPLAY)); BatterySaverController batterySaverController = new BatterySaverController(context); controllers.add(batterySaverController); getLifecycle().addObserver(batterySaverController); return controllers; } Loading Loading
res/xml/power_usage_summary.xml +2 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,8 @@ <com.android.settings.widget.MasterSwitchPreference android:fragment="com.android.settings.fuelgauge.batterysaver.BatterySaverSettings" android:key="battery_saver_summary" android:title="@string/battery_saver"/> android:title="@string/battery_saver" settings:controller="com.android.settings.fuelgauge.BatterySaverController"/> <Preference android:fragment="com.android.settings.fuelgauge.SmartBatterySettings" Loading
src/com/android/settings/core/TogglePreferenceController.java +7 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ import android.content.Context; import android.support.v7.preference.Preference; import android.support.v7.preference.TwoStatePreference; import com.android.settings.widget.MasterSwitchPreference; /** * Abstract class that consolidates logic for updating toggle controllers. * It automatically handles the getting and setting of the switch UI element. Loading Loading @@ -46,7 +48,11 @@ public abstract class TogglePreferenceController extends BasePreferenceControlle @Override public final void updateState(Preference preference) { if (preference instanceof TwoStatePreference) { ((TwoStatePreference) preference).setChecked(isChecked()); } if (preference instanceof MasterSwitchPreference) { ((MasterSwitchPreference) preference).setChecked(isChecked()); } } @Override Loading
src/com/android/settings/fuelgauge/BatterySaverController.java +22 −28 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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; } Loading @@ -90,6 +76,11 @@ public class BatterySaverController extends AbstractPreferenceController return true; } @Override public boolean isChecked() { return mPowerManager.isPowerSaveMode(); } @Override public void onStart() { mContext.getContentResolver().registerContentObserver( Loading @@ -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; Loading @@ -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()) { Loading
src/com/android/settings/fuelgauge/PowerUsageSummary.java +9 −4 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.utils.PowerUtil; import com.android.settingslib.utils.StringUtil; import java.util.ArrayList; import java.util.Arrays; import java.util.List; Loading Loading @@ -232,17 +233,20 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList final SettingsActivity activity = (SettingsActivity) getActivity(); final List<AbstractPreferenceController> controllers = new ArrayList<>(); mBatteryHeaderPreferenceController = new BatteryHeaderPreferenceController( context, activity, this /* host */, getLifecycle()); context, activity, this /* host */, lifecycle); controllers.add(mBatteryHeaderPreferenceController); mBatteryAppListPreferenceController = new BatteryAppListPreferenceController(context, KEY_APP_LIST, lifecycle, activity, this); controllers.add(mBatteryAppListPreferenceController); mBatteryTipPreferenceController = new BatteryTipPreferenceController(context, KEY_BATTERY_TIP, (SettingsActivity) getActivity(), this, this); KEY_BATTERY_TIP, (SettingsActivity) getActivity(), this /* fragment */, this /* BatteryTipListener */); controllers.add(mBatteryTipPreferenceController); controllers.add(new BatterySaverController(context, getLifecycle())); BatterySaverController batterySaverController = new BatterySaverController(context); controllers.add(batterySaverController); controllers.add(new BatteryPercentagePreferenceController(context)); lifecycle.addObserver(batterySaverController); return controllers; } Loading Loading @@ -322,7 +326,8 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList @VisibleForTesting void updateLastFullChargePreference(long timeMs) { final CharSequence timeSequence = StringUtil.formatRelativeTime(getContext(), timeMs, false); final CharSequence timeSequence = StringUtil.formatRelativeTime(getContext(), timeMs, false); mLastFullChargePref.setSubtitle(timeSequence); } Loading
src/com/android/settings/fuelgauge/PowerUsageSummaryLegacy.java +3 −1 Original line number Diff line number Diff line Loading @@ -314,12 +314,14 @@ public class PowerUsageSummaryLegacy extends PowerUsageBase implements controllers.add(mBatteryHeaderPreferenceController); controllers.add(new AutoBrightnessPreferenceController(context, KEY_AUTO_BRIGHTNESS)); controllers.add(new TimeoutPreferenceController(context, KEY_SCREEN_TIMEOUT)); controllers.add(new BatterySaverController(context, getLifecycle())); controllers.add(new BatteryPercentagePreferenceController(context)); controllers.add(new AmbientDisplayPreferenceController( context, new AmbientDisplayConfiguration(context), KEY_AMBIENT_DISPLAY)); BatterySaverController batterySaverController = new BatterySaverController(context); controllers.add(batterySaverController); getLifecycle().addObserver(batterySaverController); return controllers; } Loading