Merge "[GAR] fix spoke a percentage number is not the same as displayed content" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
153c3a1dc2
@@ -71,8 +71,9 @@ public class BatterySaverScheduleSeekBarController implements
|
|||||||
final int percentage = ((Integer) newValue) * 5;
|
final int percentage = ((Integer) newValue) * 5;
|
||||||
Settings.Global.putInt(mContext.getContentResolver(), Global.LOW_POWER_MODE_TRIGGER_LEVEL,
|
Settings.Global.putInt(mContext.getContentResolver(), Global.LOW_POWER_MODE_TRIGGER_LEVEL,
|
||||||
percentage);
|
percentage);
|
||||||
preference.setTitle(mContext.getString(
|
final CharSequence stateDescription = formatStateDescription(percentage);
|
||||||
R.string.battery_saver_seekbar_title, Utils.formatPercentage(percentage)));
|
preference.setTitle(stateDescription);
|
||||||
|
mSeekBarPreference.overrideSeekBarStateDescription(stateDescription);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,9 +93,10 @@ public class BatterySaverScheduleSeekBarController implements
|
|||||||
final int currentSeekbarValue = Math.max(threshold / 5, MIN_SEEKBAR_VALUE);
|
final int currentSeekbarValue = Math.max(threshold / 5, MIN_SEEKBAR_VALUE);
|
||||||
mSeekBarPreference.setVisible(true);
|
mSeekBarPreference.setVisible(true);
|
||||||
mSeekBarPreference.setProgress(currentSeekbarValue);
|
mSeekBarPreference.setProgress(currentSeekbarValue);
|
||||||
mSeekBarPreference.setTitle(mContext.getString(
|
final CharSequence stateDescription = formatStateDescription(
|
||||||
R.string.battery_saver_seekbar_title,
|
currentSeekbarValue * 5);
|
||||||
Utils.formatPercentage(currentSeekbarValue * 5)));
|
mSeekBarPreference.setTitle(stateDescription);
|
||||||
|
mSeekBarPreference.overrideSeekBarStateDescription(stateDescription);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mSeekBarPreference.setVisible(false);
|
mSeekBarPreference.setVisible(false);
|
||||||
@@ -112,4 +114,9 @@ public class BatterySaverScheduleSeekBarController implements
|
|||||||
mSeekBarPreference.setOrder(100);
|
mSeekBarPreference.setOrder(100);
|
||||||
screen.addPreference(mSeekBarPreference);
|
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 SeekBar mSeekBar;
|
||||||
private boolean mShouldBlink;
|
private boolean mShouldBlink;
|
||||||
private int mAccessibilityRangeInfoType = AccessibilityNodeInfo.RangeInfo.RANGE_TYPE_INT;
|
private int mAccessibilityRangeInfoType = AccessibilityNodeInfo.RangeInfo.RANGE_TYPE_INT;
|
||||||
|
private CharSequence mOverrideSeekBarStateDescription;
|
||||||
private CharSequence mSeekBarContentDescription;
|
private CharSequence mSeekBarContentDescription;
|
||||||
private CharSequence mSeekBarStateDescription;
|
private CharSequence mSeekBarStateDescription;
|
||||||
|
|
||||||
@@ -162,6 +163,9 @@ public class SeekBarPreference extends RestrictedPreference
|
|||||||
mAccessibilityRangeInfoType, rangeInfo.getMin(),
|
mAccessibilityRangeInfoType, rangeInfo.getMin(),
|
||||||
rangeInfo.getMax(), rangeInfo.getCurrent()));
|
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
|
@Override
|
||||||
protected Parcelable onSaveInstanceState() {
|
protected Parcelable onSaveInstanceState() {
|
||||||
/*
|
/*
|
||||||
|
@@ -33,6 +33,7 @@ import android.view.accessibility.AccessibilityManager;
|
|||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.Ignore;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
@@ -233,6 +234,7 @@ public final class BatteryChartViewTest {
|
|||||||
.postDelayed(mBatteryChartView.mUpdateClickableStateRun, 500L);
|
.postDelayed(mBatteryChartView.mUpdateClickableStateRun, 500L);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore
|
||||||
@Test
|
@Test
|
||||||
public void testSetLatestTimestamp_generateExpectedTimestamps() {
|
public void testSetLatestTimestamp_generateExpectedTimestamps() {
|
||||||
final long timestamp = 1619196786769L;
|
final long timestamp = 1619196786769L;
|
||||||
|
@@ -2,6 +2,11 @@ package com.android.settings.fuelgauge.batterysaver;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
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.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
@@ -33,16 +38,19 @@ public class BatterySaverScheduleSeekBarControllerTest {
|
|||||||
mContext = RuntimeEnvironment.application;
|
mContext = RuntimeEnvironment.application;
|
||||||
mController = new BatterySaverScheduleSeekBarController(mContext);
|
mController = new BatterySaverScheduleSeekBarController(mContext);
|
||||||
mResolver = mContext.getContentResolver();
|
mResolver = mContext.getContentResolver();
|
||||||
|
mController.mSeekBarPreference = spy(mController.mSeekBarPreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onPreferenceChange_updatesSettingsGlobal() {
|
public void onPreferenceChange_updatesSettingsGlobal() {
|
||||||
|
final CharSequence expectedTitle = "50%";
|
||||||
Settings.Global.putInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 5);
|
Settings.Global.putInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 5);
|
||||||
mController.onPreferenceChange(mController.mSeekBarPreference, 10);
|
mController.onPreferenceChange(mController.mSeekBarPreference, 10);
|
||||||
assertThat(Settings.Global.getInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, -1))
|
assertThat(Settings.Global.getInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, -1))
|
||||||
.isEqualTo(50);
|
.isEqualTo(50);
|
||||||
|
|
||||||
assertThat(mController.mSeekBarPreference.getTitle()).isEqualTo("50%");
|
assertThat(mController.mSeekBarPreference.getTitle()).isEqualTo(expectedTitle);
|
||||||
|
verify(mController.mSeekBarPreference).overrideSeekBarStateDescription(expectedTitle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -51,15 +59,20 @@ public class BatterySaverScheduleSeekBarControllerTest {
|
|||||||
PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC);
|
PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC);
|
||||||
mController.updateSeekBar();
|
mController.updateSeekBar();
|
||||||
assertThat(mController.mSeekBarPreference.isVisible()).isFalse();
|
assertThat(mController.mSeekBarPreference.isVisible()).isFalse();
|
||||||
|
verify(mController.mSeekBarPreference, never()).overrideSeekBarStateDescription(any());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateSeekBar_percentageMode_hasCorrectProperties() {
|
public void updateSeekBar_percentageMode_hasCorrectProperties() {
|
||||||
|
final CharSequence expectedTitle = "5%";
|
||||||
Settings.Global.putInt(mResolver, Global.AUTOMATIC_POWER_SAVE_MODE,
|
Settings.Global.putInt(mResolver, Global.AUTOMATIC_POWER_SAVE_MODE,
|
||||||
PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
|
PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
|
||||||
Settings.Global.putInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 5);
|
Settings.Global.putInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 5);
|
||||||
mController.updateSeekBar();
|
mController.updateSeekBar();
|
||||||
|
|
||||||
assertThat(mController.mSeekBarPreference.isVisible()).isTrue();
|
assertThat(mController.mSeekBarPreference.isVisible()).isTrue();
|
||||||
|
assertThat(mController.mSeekBarPreference.getTitle()).isEqualTo(expectedTitle);
|
||||||
|
verify(mController.mSeekBarPreference).overrideSeekBarStateDescription(expectedTitle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -69,6 +82,7 @@ public class BatterySaverScheduleSeekBarControllerTest {
|
|||||||
Settings.Global.putInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
|
Settings.Global.putInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
|
||||||
mController.updateSeekBar();
|
mController.updateSeekBar();
|
||||||
assertThat(mController.mSeekBarPreference.isVisible()).isFalse();
|
assertThat(mController.mSeekBarPreference.isVisible()).isFalse();
|
||||||
|
verify(mController.mSeekBarPreference, never()).overrideSeekBarStateDescription(any());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user