Merge "[GAR] fix spoke a percentage number is not the same as displayed content" into sc-dev am: 153c3a1dc2
am: 033a6c3eec
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14956530 Change-Id: I9114c64261818c7628dae0f78e3b88b2f2979db3
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
@@ -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() {
|
||||
/*
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user