diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java index a3ff1f4a4ce..9a4db1ecd66 100644 --- a/src/com/android/settings/fuelgauge/BatteryUtils.java +++ b/src/com/android/settings/fuelgauge/BatteryUtils.java @@ -136,8 +136,10 @@ public class BatteryUtils { sippers.remove(i); if (sipper.drainType != BatterySipper.DrainType.OVERCOUNTED && sipper.drainType != BatterySipper.DrainType.SCREEN - && sipper.drainType != BatterySipper.DrainType.UNACCOUNTED) { - // Don't add it if it is overcounted, unaccounted or screen + && sipper.drainType != BatterySipper.DrainType.UNACCOUNTED + && sipper.drainType != BatterySipper.DrainType.BLUETOOTH + && sipper.drainType != BatterySipper.DrainType.WIFI) { + // Don't add it if it is overcounted, unaccounted, wifi, bluetooth, or screen proportionalSmearPowerMah += sipper.totalPowerMah; } } @@ -191,6 +193,8 @@ public class BatteryUtils { || drainType == BatterySipper.DrainType.SCREEN || drainType == BatterySipper.DrainType.UNACCOUNTED || drainType == BatterySipper.DrainType.OVERCOUNTED + || drainType == BatterySipper.DrainType.BLUETOOTH + || drainType == BatterySipper.DrainType.WIFI || (sipper.totalPowerMah * SECONDS_IN_HOUR) < MIN_POWER_THRESHOLD_MILLI_AMP || mPowerUsageFeatureProvider.isTypeService(sipper) || mPowerUsageFeatureProvider.isTypeSystem(sipper); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java index 495410dba15..4ff1b7e3a9f 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java @@ -80,6 +80,8 @@ public class BatteryUtilsTest { private static final double BATTERY_OVERACCOUNTED_USAGE = 500; private static final double BATTERY_UNACCOUNTED_USAGE = 700; private static final double BATTERY_APP_USAGE = 100; + private static final double BATTERY_WIFI_USAGE = 200; + private static final double BATTERY_BLUETOOTH_USAGE = 300; private static final double TOTAL_BATTERY_USAGE = 1000; private static final double HIDDEN_USAGE = 200; private static final int DISCHARGE_AMOUNT = 80; @@ -91,6 +93,10 @@ public class BatteryUtilsTest { @Mock private BatterySipper mNormalBatterySipper; @Mock + private BatterySipper mWifiBatterySipper; + @Mock + private BatterySipper mBluetoothBatterySipper; + @Mock private BatterySipper mScreenBatterySipper; @Mock private BatterySipper mOvercountedBatterySipper; @@ -130,6 +136,12 @@ public class BatteryUtilsTest { mNormalBatterySipper.drainType = BatterySipper.DrainType.APP; mNormalBatterySipper.totalPowerMah = TOTAL_BATTERY_USAGE; + mWifiBatterySipper.drainType = BatterySipper.DrainType.WIFI; + mWifiBatterySipper.totalPowerMah = BATTERY_WIFI_USAGE; + + mBluetoothBatterySipper.drainType = BatterySipper.DrainType.BLUETOOTH; + mBluetoothBatterySipper.totalPowerMah = BATTERY_BLUETOOTH_USAGE; + mScreenBatterySipper.drainType = BatterySipper.DrainType.SCREEN; mScreenBatterySipper.totalPowerMah = BATTERY_SCREEN_USAGE; @@ -189,6 +201,8 @@ public class BatteryUtilsTest { sippers.add(mSystemBatterySipper); sippers.add(mOvercountedBatterySipper); sippers.add(mUnaccountedBatterySipper); + sippers.add(mWifiBatterySipper); + sippers.add(mBluetoothBatterySipper); when(mProvider.isTypeSystem(mSystemBatterySipper)) .thenReturn(true); doNothing().when(mBatteryUtils).smearScreenBatterySipper(any(), any()); @@ -229,6 +243,18 @@ public class BatteryUtilsTest { assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue(); } + @Test + public void testShouldHideSipper_TypeWifi_ReturnTrue() { + mNormalBatterySipper.drainType = BatterySipper.DrainType.WIFI; + assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue(); + } + + @Test + public void testShouldHideSipper_TypeBluetooth_ReturnTrue() { + mNormalBatterySipper.drainType = BatterySipper.DrainType.BLUETOOTH; + assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue(); + } + @Test public void testShouldHideSipper_TypeSystem_ReturnTrue() { mNormalBatterySipper.drainType = BatterySipper.DrainType.APP;