Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1ca264f authored by Wesley.CW Wang's avatar Wesley.CW Wang Committed by Wesley Wang
Browse files

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
parent 40319d9d
Loading
Loading
Loading
Loading
+0 −12
Original line number Diff line number Diff line
@@ -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"/>

<!--    <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
        android:order="100"
        android:key="battery_saver_footer_preference"
        android:selectable="true"
        android:title="@*android:string/battery_saver_description"
        settings:allowDividerAbove="true"
        settings:searchable="false"/>

</PreferenceScreen>
+3 −1
Original line number Diff line number Diff line
@@ -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();
+3 −0
Original line number Diff line number Diff line
@@ -122,5 +122,8 @@ public class BatterySaverButtonPreferenceController extends

    @Override
    public void onBatteryChanged(boolean pluggedIn) {
        if (mPreference != null) {
            mPreference.setEnabled(!pluggedIn);
        }
    }
}
+8 −0
Original line number Diff line number Diff line
@@ -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));
+14 −0
Original line number Diff line number Diff line
@@ -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();