Refine battery settings layout
- Add loading text to progress bar to prevent UI flaky - Setup enable/disable state for battery saver switch - Remove battery saver page divider Bug: 177964551 Bug: 177964753 Bug: 184626649 Test: make SettingsRoboTests, visually Change-Id: I8e05c0c0f02710729e1f59eff23fb3f425770de9
This commit is contained in:
committed by
Wesley Wang
parent
40319d9d6f
commit
f1ca264f69
@@ -37,26 +37,14 @@
|
|||||||
android:key="battery_saver_sticky"
|
android:key="battery_saver_sticky"
|
||||||
android:title="@string/battery_saver_sticky_title_new"
|
android:title="@string/battery_saver_sticky_title_new"
|
||||||
android:summary="@string/summary_placeholder"
|
android:summary="@string/summary_placeholder"
|
||||||
settings:allowDividerBelow="true"
|
|
||||||
settings:keywords="@string/keywords_battery_saver_sticky"
|
settings:keywords="@string/keywords_battery_saver_sticky"
|
||||||
settings:controller="com.android.settings.fuelgauge.batterysaver.BatterySaverStickyPreferenceController"/>
|
settings:controller="com.android.settings.fuelgauge.batterysaver.BatterySaverStickyPreferenceController"/>
|
||||||
|
|
||||||
<!-- <com.android.settings.widget.TwoStateButtonPreference-->
|
|
||||||
<!-- android:key="battery_saver"-->
|
|
||||||
<!-- android:title="@string/battery_saver"-->
|
|
||||||
<!-- android:selectable="false"-->
|
|
||||||
<!-- android:summary="@string/battery_saver_turn_on_summary"-->
|
|
||||||
<!-- settings:allowDividerBelow="true"-->
|
|
||||||
<!-- settings:textOn="@string/battery_saver_button_turn_on"-->
|
|
||||||
<!-- settings:textOff="@string/battery_saver_button_turn_off"-->
|
|
||||||
<!-- settings:controller="com.android.settings.fuelgauge.batterysaver.BatterySaverButtonPreferenceController"/>-->
|
|
||||||
|
|
||||||
<com.android.settingslib.widget.FooterPreference
|
<com.android.settingslib.widget.FooterPreference
|
||||||
android:order="100"
|
android:order="100"
|
||||||
android:key="battery_saver_footer_preference"
|
android:key="battery_saver_footer_preference"
|
||||||
android:selectable="true"
|
android:selectable="true"
|
||||||
android:title="@*android:string/battery_saver_description"
|
android:title="@*android:string/battery_saver_description"
|
||||||
settings:allowDividerAbove="true"
|
|
||||||
settings:searchable="false"/>
|
settings:searchable="false"/>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -50,7 +50,6 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
|
|||||||
BatteryPreferenceController {
|
BatteryPreferenceController {
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static final String KEY_BATTERY_HEADER = "battery_header";
|
static final String KEY_BATTERY_HEADER = "battery_header";
|
||||||
private static final String ANNOTATION_URL = "url";
|
|
||||||
private static final int BATTERY_MAX_LEVEL = 100;
|
private static final int BATTERY_MAX_LEVEL = 100;
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -87,6 +86,9 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
|
|||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
mBatteryUsageProgressBarPref = screen.findPreference(getPreferenceKey());
|
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)) {
|
if (com.android.settings.Utils.isBatteryPresent(mContext)) {
|
||||||
quickUpdateHeaderPreference();
|
quickUpdateHeaderPreference();
|
||||||
|
@@ -122,5 +122,8 @@ public class BatterySaverButtonPreferenceController extends
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBatteryChanged(boolean pluggedIn) {
|
public void onBatteryChanged(boolean pluggedIn) {
|
||||||
|
if (mPreference != null) {
|
||||||
|
mPreference.setEnabled(!pluggedIn);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -317,6 +317,14 @@ public class BatteryHeaderPreferenceControllerTest {
|
|||||||
assertThat(mBatteryUsageProgressBarPref.isVisible()).isFalse();
|
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() {
|
private CharSequence formatBatteryPercentageText() {
|
||||||
return TextUtils.expandTemplate(mContext.getText(R.string.battery_header_title_alternate),
|
return TextUtils.expandTemplate(mContext.getText(R.string.battery_header_title_alternate),
|
||||||
NumberFormat.getIntegerInstance().format(BATTERY_LEVEL));
|
NumberFormat.getIntegerInstance().format(BATTERY_LEVEL));
|
||||||
|
@@ -103,6 +103,20 @@ public class BatterySaverButtonPreferenceControllerTest {
|
|||||||
verify(mPowerManager).setPowerSaveModeEnabled(false);
|
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
|
@Test
|
||||||
public void isPublicSlice_returnsTrue() {
|
public void isPublicSlice_returnsTrue() {
|
||||||
assertThat(mController.isPublicSlice()).isTrue();
|
assertThat(mController.isPublicSlice()).isTrue();
|
||||||
|
Reference in New Issue
Block a user