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

Commit 153c3a1d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[GAR] fix spoke a percentage number is not the same as displayed content" into sc-dev

parents 68079c7b 64112f65
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -71,8 +71,9 @@ public class BatterySaverScheduleSeekBarController implements
        final int percentage = ((Integer) newValue) * 5;
        Settings.Global.putInt(mContext.getContentResolver(), Global.LOW_POWER_MODE_TRIGGER_LEVEL,
                percentage);
        preference.setTitle(mContext.getString(
                R.string.battery_saver_seekbar_title, Utils.formatPercentage(percentage)));
        final CharSequence stateDescription = formatStateDescription(percentage);
        preference.setTitle(stateDescription);
        mSeekBarPreference.overrideSeekBarStateDescription(stateDescription);
        return true;
    }

@@ -92,9 +93,10 @@ public class BatterySaverScheduleSeekBarController implements
                final int currentSeekbarValue = Math.max(threshold / 5, MIN_SEEKBAR_VALUE);
                mSeekBarPreference.setVisible(true);
                mSeekBarPreference.setProgress(currentSeekbarValue);
                mSeekBarPreference.setTitle(mContext.getString(
                        R.string.battery_saver_seekbar_title,
                        Utils.formatPercentage(currentSeekbarValue * 5)));
                final CharSequence stateDescription = formatStateDescription(
                        currentSeekbarValue * 5);
                mSeekBarPreference.setTitle(stateDescription);
                mSeekBarPreference.overrideSeekBarStateDescription(stateDescription);
            }
        } else {
            mSeekBarPreference.setVisible(false);
@@ -112,4 +114,9 @@ public class BatterySaverScheduleSeekBarController implements
        mSeekBarPreference.setOrder(100);
        screen.addPreference(mSeekBarPreference);
    }

    private CharSequence formatStateDescription(int percentage) {
        return mContext.getString(R.string.battery_saver_seekbar_title,
                Utils.formatPercentage(percentage));
    }
}
+11 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ public class SeekBarPreference extends RestrictedPreference
    private SeekBar mSeekBar;
    private boolean mShouldBlink;
    private int mAccessibilityRangeInfoType = AccessibilityNodeInfo.RangeInfo.RANGE_TYPE_INT;
    private CharSequence mOverrideSeekBarStateDescription;
    private CharSequence mSeekBarContentDescription;
    private CharSequence mSeekBarStateDescription;

@@ -162,6 +163,9 @@ public class SeekBarPreference extends RestrictedPreference
                                    mAccessibilityRangeInfoType, rangeInfo.getMin(),
                                    rangeInfo.getMax(), rangeInfo.getCurrent()));
                }
                if (mOverrideSeekBarStateDescription != null) {
                    info.setStateDescription(mOverrideSeekBarStateDescription);
                }
            }
        });
    }
@@ -348,6 +352,13 @@ public class SeekBarPreference extends RestrictedPreference
        }
    }

    /**
     * Overrides the state description of {@link SeekBar} with given content.
     */
    public void overrideSeekBarStateDescription(CharSequence stateDescription) {
        mOverrideSeekBarStateDescription = stateDescription;
    }

    @Override
    protected Parcelable onSaveInstanceState() {
        /*
+2 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.view.accessibility.AccessibilityManager;
import com.android.settings.testutils.FakeFeatureFactory;

import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -233,6 +234,7 @@ public final class BatteryChartViewTest {
            .postDelayed(mBatteryChartView.mUpdateClickableStateRun, 500L);
    }

    @Ignore
    @Test
    public void testSetLatestTimestamp_generateExpectedTimestamps() {
        final long timestamp = 1619196786769L;
+15 −1
Original line number Diff line number Diff line
@@ -2,6 +2,11 @@ package com.android.settings.fuelgauge.batterysaver;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;

import android.content.ContentResolver;
import android.content.Context;
import android.os.PowerManager;
@@ -33,16 +38,19 @@ public class BatterySaverScheduleSeekBarControllerTest {
        mContext = RuntimeEnvironment.application;
        mController = new BatterySaverScheduleSeekBarController(mContext);
        mResolver = mContext.getContentResolver();
        mController.mSeekBarPreference = spy(mController.mSeekBarPreference);
    }

    @Test
    public void onPreferenceChange_updatesSettingsGlobal() {
        final CharSequence expectedTitle = "50%";
        Settings.Global.putInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 5);
        mController.onPreferenceChange(mController.mSeekBarPreference, 10);
        assertThat(Settings.Global.getInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, -1))
                .isEqualTo(50);

        assertThat(mController.mSeekBarPreference.getTitle()).isEqualTo("50%");
        assertThat(mController.mSeekBarPreference.getTitle()).isEqualTo(expectedTitle);
        verify(mController.mSeekBarPreference).overrideSeekBarStateDescription(expectedTitle);
    }

    @Test
@@ -51,15 +59,20 @@ public class BatterySaverScheduleSeekBarControllerTest {
                PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC);
        mController.updateSeekBar();
        assertThat(mController.mSeekBarPreference.isVisible()).isFalse();
        verify(mController.mSeekBarPreference, never()).overrideSeekBarStateDescription(any());
    }

    @Test
    public void updateSeekBar_percentageMode_hasCorrectProperties() {
        final CharSequence expectedTitle = "5%";
        Settings.Global.putInt(mResolver, Global.AUTOMATIC_POWER_SAVE_MODE,
                PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
        Settings.Global.putInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 5);
        mController.updateSeekBar();

        assertThat(mController.mSeekBarPreference.isVisible()).isTrue();
        assertThat(mController.mSeekBarPreference.getTitle()).isEqualTo(expectedTitle);
        verify(mController.mSeekBarPreference).overrideSeekBarStateDescription(expectedTitle);
    }

    @Test
@@ -69,6 +82,7 @@ public class BatterySaverScheduleSeekBarControllerTest {
        Settings.Global.putInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
        mController.updateSeekBar();
        assertThat(mController.mSeekBarPreference.isVisible()).isFalse();
        verify(mController.mSeekBarPreference, never()).overrideSeekBarStateDescription(any());
    }

    @Test