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
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;
}
@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);
mBatteryInfo.batteryLevel = 100;