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

Commit 6641ba8f authored by jackqdyulei's avatar jackqdyulei
Browse files

Update battery saver seekbar

This CL adds ticks to seekbar to make it increase by 5% or multiple of
it.

Change-Id: I25a592d75a32adaddccb4b5a7c7f18a0f771d99a
Fixes: 73763634
Test: RunSettingsRoboTests
parent a9b742dd
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -29,8 +29,8 @@
    <com.android.settings.widget.SeekBarPreference
        android:key="battery_saver_seek_bar"
        android:title="@string/battery_saver_seekbar_title_placeholder"
        android:max="75"
        android:min="5" />
        android:max="15"
        android:min="1" />

    <com.android.settings.widget.TwoStateButtonPreference
        android:key="battery_saver"
+4 −3
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import com.android.settingslib.core.lifecycle.events.OnStop;
public class AutoBatterySeekBarPreferenceController extends BasePreferenceController implements
        LifecycleObserver, OnStart, OnStop, SeekBarPreference.OnPreferenceChangeListener {
    private static final String TAG = "AutoBatterySeekBarPreferenceController";
    private static final int INTERVAL = 5;
    @VisibleForTesting
    static final String KEY_AUTO_BATTERY_SEEK_BAR = "battery_saver_seek_bar";
    private SeekBarPreference mPreference;
@@ -92,7 +93,7 @@ public class AutoBatterySeekBarPreferenceController extends BasePreferenceContro
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        final int progress = (int) newValue;
        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, progress);
                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, progress * INTERVAL);
        return true;
    }

@@ -102,7 +103,7 @@ public class AutoBatterySeekBarPreferenceController extends BasePreferenceContro

        // Override the max value with LOW_POWER_MODE_TRIGGER_LEVEL_MAX, if set.
        final int maxLevel = Settings.Global.getInt(contentResolver,
                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL_MAX, 0);
                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL_MAX, 0) / INTERVAL;
        if (maxLevel > 0) {
            if (!(preference instanceof SeekBarPreference)) {
                Log.e(TAG, "Unexpected preference class: " + preference.getClass());
@@ -127,7 +128,7 @@ public class AutoBatterySeekBarPreferenceController extends BasePreferenceContro
            preference.setTitle(mContext.getString(R.string.battery_saver_seekbar_title,
                    Utils.formatPercentage(level)));
            SeekBarPreference seekBarPreference = (SeekBarPreference) preference;
            seekBarPreference.setProgress(level);
            seekBarPreference.setProgress(level / INTERVAL);
            seekBarPreference.setSeekBarContentDescription(
                    mContext.getString(R.string.battery_saver_turn_on_automatically_title));
        }
+6 −3
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.fuelgauge.batterysaver;
import static com.google.common.truth.Truth.assertThat;

import androidx.lifecycle.LifecycleOwner;

import android.content.Context;
import android.provider.Settings;

@@ -39,6 +40,7 @@ public class AutoBatterySeekBarPreferenceControllerTest {

    private static final int TRIGGER_LEVEL = 20;
    private static final int DEFAULT_LEVEL = 15;
    private static final int INTERVAL = 5;

    private AutoBatterySeekBarPreferenceController mController;
    private Context mContext;
@@ -85,15 +87,16 @@ public class AutoBatterySeekBarPreferenceControllerTest {

        assertThat(mPreference.isVisible()).isTrue();
        assertThat(mPreference.getTitle()).isEqualTo("At 20%");
        assertThat(mPreference.getProgress()).isEqualTo(TRIGGER_LEVEL);
        assertThat(mPreference.getProgress()).isEqualTo(TRIGGER_LEVEL / INTERVAL);
    }


    @Test
    public void testOnPreferenceChange_updateValue() {
        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);

        mController.onPreferenceChange(mPreference, TRIGGER_LEVEL);
        mController.onPreferenceChange(mPreference, TRIGGER_LEVEL / INTERVAL);

        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0)).isEqualTo(TRIGGER_LEVEL);
@@ -106,7 +109,7 @@ public class AutoBatterySeekBarPreferenceControllerTest {

        mController.updateState(mPreference);

        assertThat(mPreference.getMax()).isEqualTo(50);
        assertThat(mPreference.getMax()).isEqualTo(50 / INTERVAL);
    }

    @Test