diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml index fbe4e0d32ca..d89653ae5ce 100644 --- a/res/xml/power_usage_summary.xml +++ b/res/xml/power_usage_summary.xml @@ -36,7 +36,8 @@ + android:title="@string/battery_saver" + settings:controller="com.android.settings.fuelgauge.BatterySaverController"/> 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()) { diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 659166a8ce9..e6fd4492c45 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -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; @@ -232,17 +233,20 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList final SettingsActivity activity = (SettingsActivity) getActivity(); final List 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; } @@ -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); } diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummaryLegacy.java b/src/com/android/settings/fuelgauge/PowerUsageSummaryLegacy.java index e6c49237218..14a445bb2d7 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummaryLegacy.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummaryLegacy.java @@ -313,12 +313,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; } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java index c75a6a6377e..6cc3310b45a 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java @@ -53,7 +53,7 @@ public class BatterySaverControllerTest { public void setUp() { MockitoAnnotations.initMocks(this); - mBatterySaverController = spy(new BatterySaverController(mContext, mLifecycle)); + mBatterySaverController = spy(new BatterySaverController(mContext)); ReflectionHelpers.setField(mBatterySaverController, "mPowerManager", mPowerManager); ReflectionHelpers.setField(mBatterySaverController, "mBatterySaverPref", mBatterySaverPref); doNothing().when(mBatterySaverController).refreshConditionManager();