From efb1bbd59dbe04d6e558f1d36239146041147ced Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Thu, 14 Jun 2018 14:53:59 -0700 Subject: [PATCH] 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 --- .../fuelgauge/batterytip/detectors/LowBatteryDetector.java | 2 +- .../fuelgauge/batterytip/detectors/LowBatteryDetectorTest.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java index c3f9b07eaa..21cc28a450 100644 --- a/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java +++ b/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java @@ -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; diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetectorTest.java index 9764559141..657a5e326b 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetectorTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetectorTest.java @@ -106,6 +106,13 @@ public class LowBatteryDetectorTest { } @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; -- 2.11.0