diff --git a/res/xml/battery_saver_settings.xml b/res/xml/battery_saver_settings.xml index 4f73fc727dc..55b2eee5737 100644 --- a/res/xml/battery_saver_settings.xml +++ b/res/xml/battery_saver_settings.xml @@ -37,26 +37,14 @@ android:key="battery_saver_sticky" android:title="@string/battery_saver_sticky_title_new" android:summary="@string/summary_placeholder" - settings:allowDividerBelow="true" settings:keywords="@string/keywords_battery_saver_sticky" settings:controller="com.android.settings.fuelgauge.batterysaver.BatterySaverStickyPreferenceController"/> - - - - - - - - - - diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java index e5030b92bfb..5a92f53a17d 100644 --- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java @@ -50,7 +50,6 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController BatteryPreferenceController { @VisibleForTesting static final String KEY_BATTERY_HEADER = "battery_header"; - private static final String ANNOTATION_URL = "url"; private static final int BATTERY_MAX_LEVEL = 100; @VisibleForTesting @@ -87,6 +86,9 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mBatteryUsageProgressBarPref = screen.findPreference(getPreferenceKey()); + //Set up loading text first to prevent layout flaky before info loaded. + mBatteryUsageProgressBarPref.setBottomSummary( + mContext.getString(R.string.settings_license_activity_loading)); if (com.android.settings.Utils.isBatteryPresent(mContext)) { quickUpdateHeaderPreference(); diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java index 122e13ab05b..59a592c6c78 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java @@ -122,5 +122,8 @@ public class BatterySaverButtonPreferenceController extends @Override public void onBatteryChanged(boolean pluggedIn) { + if (mPreference != null) { + mPreference.setEnabled(!pluggedIn); + } } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java index 150838501d3..e36a8318c0a 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java @@ -317,6 +317,14 @@ public class BatteryHeaderPreferenceControllerTest { assertThat(mBatteryUsageProgressBarPref.isVisible()).isFalse(); } + @Test + public void displayPreference_init_showLoading() { + mController.displayPreference(mPreferenceScreen); + + verify(mBatteryUsageProgressBarPref).setBottomSummary( + mContext.getString(R.string.settings_license_activity_loading)); + } + private CharSequence formatBatteryPercentageText() { return TextUtils.expandTemplate(mContext.getText(R.string.battery_header_title_alternate), NumberFormat.getIntegerInstance().format(BATTERY_LEVEL)); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java index 0d38514cbe8..f9ccff9ccc1 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java @@ -103,6 +103,20 @@ public class BatterySaverButtonPreferenceControllerTest { verify(mPowerManager).setPowerSaveModeEnabled(false); } + @Test + public void onBatteryChanged_pluggedIn_preferenceDisabled() { + mController.onBatteryChanged(/* pluggedIn */ true); + + assertThat(mPreference.isEnabled()).isFalse(); + } + + @Test + public void onBatteryChanged_unplugged_preferenceEnabled() { + mController.onBatteryChanged(/* pluggedIn */ false); + + assertThat(mPreference.isEnabled()).isTrue(); + } + @Test public void isPublicSlice_returnsTrue() { assertThat(mController.isPublicSlice()).isTrue();