Don't show low battery tip when estimation is zero

It means invalid when estimation is zero. We should catch this case
int LowBatteryDetector and don't show it.

Change-Id: I01dd50616f54162a6688257f4bdb329dfa351bc5
Fixes: 110226028
Test: RunSettingsRoboTests
This commit is contained in:
jackqdyulei
2018-06-14 14:53:59 -07:00
parent ad2d1b91b6
commit efb1bbd59d
2 changed files with 8 additions and 1 deletions

View File

@@ -47,7 +47,7 @@ public class LowBatteryDetector implements BatteryTipDetector {
public BatteryTip detect() {
final boolean powerSaveModeOn = mPowerManager.isPowerSaveMode();
final boolean lowBattery = mBatteryInfo.batteryLevel <= mWarningLevel
|| (mBatteryInfo.discharging
|| (mBatteryInfo.discharging && mBatteryInfo.remainingTimeUs != 0
&& mBatteryInfo.remainingTimeUs < TimeUnit.HOURS.toMicros(mPolicy.lowBatteryHour));
int state = BatteryTip.StateType.INVISIBLE;

View File

@@ -105,6 +105,13 @@ public class LowBatteryDetectorTest {
assertThat(mLowBatteryDetector.detect().isVisible()).isFalse();
}
@Test
public void testDetect_timeEstimationZero_tipInvisible() {
mBatteryInfo.batteryLevel = 50;
mBatteryInfo.remainingTimeUs = 0;
assertThat(mLowBatteryDetector.detect().isVisible()).isFalse();
}
@Test
public void testDetect_noEarlyWarning_tipInvisible() {
mBatteryInfo.remainingTimeUs = TimeUnit.DAYS.toMicros(1);