Merge "Update severe (5%/1 hour) warning to send through battery saver" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
3d91fa44b7
@@ -266,9 +266,12 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
|
||||
|| mEstimate.estimateMillis < mSevereWarningThreshold) {
|
||||
nb.setColor(Utils.getColorAttr(mContext, android.R.attr.colorError));
|
||||
}
|
||||
nb.addAction(0,
|
||||
mContext.getString(R.string.battery_saver_start_action),
|
||||
pendingBroadcast(ACTION_START_SAVER));
|
||||
|
||||
if (!mPowerMan.isPowerSaveMode()) {
|
||||
nb.addAction(0,
|
||||
mContext.getString(R.string.battery_saver_start_action),
|
||||
pendingBroadcast(ACTION_START_SAVER));
|
||||
}
|
||||
nb.setOnlyAlertOnce(!mPlaySound);
|
||||
mPlaySound = false;
|
||||
SystemUI.overrideNotificationAppName(mContext, nb, false);
|
||||
|
||||
@@ -333,10 +333,11 @@ public class PowerUI extends SystemUI {
|
||||
@VisibleForTesting
|
||||
boolean shouldDismissLowBatteryWarning(boolean plugged, int oldBucket, int bucket,
|
||||
long timeRemaining, boolean isPowerSaver) {
|
||||
final boolean hybridWouldDismiss = mEnhancedEstimates.isHybridNotificationEnabled()
|
||||
final boolean hybridEnabled = mEnhancedEstimates.isHybridNotificationEnabled();
|
||||
final boolean hybridWouldDismiss = hybridEnabled
|
||||
&& timeRemaining > mEnhancedEstimates.getLowWarningThreshold();
|
||||
final boolean standardWouldDismiss = (bucket > oldBucket && bucket > 0);
|
||||
return isPowerSaver
|
||||
return (isPowerSaver && !hybridEnabled)
|
||||
|| plugged
|
||||
|| (standardWouldDismiss && (!mEnhancedEstimates.isHybridNotificationEnabled()
|
||||
|| hybridWouldDismiss));
|
||||
@@ -344,14 +345,14 @@ public class PowerUI extends SystemUI {
|
||||
|
||||
private boolean isEnhancedTrigger(boolean plugged, long timeRemaining, boolean isPowerSaver,
|
||||
int batteryStatus) {
|
||||
if (plugged || isPowerSaver || batteryStatus == BatteryManager.BATTERY_STATUS_UNKNOWN) {
|
||||
if (plugged || batteryStatus == BatteryManager.BATTERY_STATUS_UNKNOWN) {
|
||||
return false;
|
||||
}
|
||||
int warnLevel = mLowBatteryReminderLevels[0];
|
||||
int critLevel = mLowBatteryReminderLevels[1];
|
||||
|
||||
// Only show the low warning once per charge cycle
|
||||
final boolean canShowWarning = !mLowWarningShownThisChargeCycle
|
||||
// Only show the low warning once per charge cycle & no battery saver
|
||||
final boolean canShowWarning = !mLowWarningShownThisChargeCycle && !isPowerSaver
|
||||
&& (timeRemaining < mEnhancedEstimates.getLowWarningThreshold()
|
||||
|| mBatteryLevel <= warnLevel);
|
||||
|
||||
|
||||
@@ -323,9 +323,9 @@ public class PowerUITest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testShouldDismissLowBatteryWarning_dismissWhenPowerSaverEnabled() {
|
||||
public void testShouldDismissLowBatteryWarning_dismissWhenPowerSaverEnabledLegacy() {
|
||||
mPowerUI.start();
|
||||
when(mEnhancedEstimates.isHybridNotificationEnabled()).thenReturn(true);
|
||||
when(mEnhancedEstimates.isHybridNotificationEnabled()).thenReturn(false);
|
||||
when(mEnhancedEstimates.getLowWarningThreshold()).thenReturn(PowerUI.THREE_HOURS_IN_MILLIS);
|
||||
when(mEnhancedEstimates.getSevereWarningThreshold()).thenReturn(ONE_HOUR_MILLIS);
|
||||
|
||||
@@ -336,6 +336,20 @@ public class PowerUITest extends SysuiTestCase {
|
||||
assertTrue(shouldDismiss);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testShouldNotDismissLowBatteryWarning_dismissWhenPowerSaverEnabledHybrid() {
|
||||
mPowerUI.start();
|
||||
when(mEnhancedEstimates.isHybridNotificationEnabled()).thenReturn(true);
|
||||
when(mEnhancedEstimates.getLowWarningThreshold()).thenReturn(PowerUI.THREE_HOURS_IN_MILLIS);
|
||||
when(mEnhancedEstimates.getSevereWarningThreshold()).thenReturn(ONE_HOUR_MILLIS);
|
||||
|
||||
// device that gets power saver turned on should dismiss
|
||||
boolean shouldDismiss =
|
||||
mPowerUI.shouldDismissLowBatteryWarning(UNPLUGGED, BELOW_WARNING_BUCKET,
|
||||
BELOW_WARNING_BUCKET, ABOVE_HYBRID_THRESHOLD, !POWER_SAVER_OFF);
|
||||
assertFalse(shouldDismiss);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testShouldDismissLowBatteryWarning_dismissWhenPlugged() {
|
||||
mPowerUI.start();
|
||||
|
||||
Reference in New Issue
Block a user