Merge "Disable battery saver notification based on predicted time left" into tm-dev am: 1d1d37ca68

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17984002

Change-Id: I9c72388c8622513c4263a45ac3b0e872bcb9e5dc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Wesley Wang
2022-05-03 13:27:33 +00:00
committed by Automerger Merge Worker
2 changed files with 6 additions and 9 deletions

View File

@@ -397,16 +397,12 @@ public class PowerUI extends CoreStartable implements CommandQueue.Callbacks {
final boolean playSound = currentSnapshot.getBucket() != lastSnapshot.getBucket()
|| lastSnapshot.getPlugged();
final long timeRemainingMillis = currentSnapshot.getTimeRemainingMillis();
if (shouldShowHybridWarning(currentSnapshot)) {
mWarnings.showLowBatteryWarning(playSound);
// mark if we've already shown a warning this cycle. This will prevent the notification
// trigger from spamming users by only showing low/critical warnings once per cycle
if ((timeRemainingMillis != NO_ESTIMATE_AVAILABLE
&& timeRemainingMillis <= currentSnapshot.getSevereThresholdMillis())
|| currentSnapshot.getBatteryLevel()
<= currentSnapshot.getSevereLevelThreshold()) {
if (currentSnapshot.getBatteryLevel() <= currentSnapshot.getSevereLevelThreshold()) {
mSevereWarningShownThisChargeCycle = true;
mLowWarningShownThisChargeCycle = true;
if (DEBUG) {
@@ -461,7 +457,8 @@ public class PowerUI extends CoreStartable implements CommandQueue.Callbacks {
@VisibleForTesting
boolean shouldDismissHybridWarning(BatteryStateSnapshot snapshot) {
return snapshot.getPlugged()
|| snapshot.getTimeRemainingMillis() > snapshot.getLowThresholdMillis();
|| snapshot.getBatteryLevel()
> snapshot.getLowLevelThreshold();
}
protected void maybeShowBatteryWarning(

View File

@@ -498,8 +498,8 @@ public class PowerUITest extends SysuiTestCase {
// We should dismiss if the device is plugged in
state.mPlugged = true;
state.mTimeRemainingMillis = Duration.ofHours(1).toMillis();
state.mLowThresholdMillis = Duration.ofHours(2).toMillis();
state.mBatteryLevel = 19;
state.mLowLevelThreshold = 20;
boolean shouldDismiss = mPowerUI.shouldDismissHybridWarning(state.get());
assertThat(shouldDismiss).isTrue();
@@ -509,7 +509,7 @@ public class PowerUITest extends SysuiTestCase {
assertThat(shouldDismiss).isFalse();
// If we go over the low warning threshold we should dismiss
state.mTimeRemainingMillis = Duration.ofHours(3).toMillis();
state.mBatteryLevel = 21;
shouldDismiss = mPowerUI.shouldDismissHybridWarning(state.get());
assertThat(shouldDismiss).isTrue();
}