Distribute the misc among all the apps
Distribute it in: 1. Battery main page(PowerUsageSummary) 2. Advanced battery page(PowerUsageAdvanced) Bug: 37487061 Test: RunSettingsRoboTests Change-Id: Id1810b81a6b380d908bcdc18421530e938578c37
This commit is contained in:
@@ -128,9 +128,8 @@ public class BatteryUtils {
|
||||
final BatterySipper sipper = sippers.get(i);
|
||||
if (shouldHideSipper(sipper)) {
|
||||
sippers.remove(i);
|
||||
if (sipper.drainType != BatterySipper.DrainType.OVERCOUNTED
|
||||
&& sipper.drainType != BatterySipper.DrainType.UNACCOUNTED) {
|
||||
// Don't add it if it is overcounted or unaccounted
|
||||
if (sipper.drainType != BatterySipper.DrainType.OVERCOUNTED) {
|
||||
// Don't add it if it is overcounted
|
||||
totalPowerMah += sipper.totalPowerMah;
|
||||
}
|
||||
}
|
||||
|
@@ -69,8 +69,7 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
UsageType.UNACCOUNTED,
|
||||
UsageType.OVERCOUNTED};
|
||||
|
||||
@VisibleForTesting
|
||||
BatteryUtils mBatteryUtils;
|
||||
private BatteryUtils mBatteryUtils;
|
||||
private BatteryHistoryPreference mHistPref;
|
||||
private PreferenceGroup mUsageListGroup;
|
||||
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
|
||||
@@ -256,8 +255,10 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
final List<PowerUsageData> batteryDataList = new ArrayList<>(batteryDataMap.values());
|
||||
final int dischargeAmount = statusHelper.getStats().getDischargeAmount(STATUS_TYPE);
|
||||
final double totalPower = statusHelper.getTotalPower();
|
||||
final double hiddenPower = calculateHiddenPower(batteryDataList);
|
||||
for (final PowerUsageData usageData : batteryDataList) {
|
||||
usageData.percentage = (usageData.totalPowerMah / totalPower) * dischargeAmount;
|
||||
usageData.percentage = mBatteryUtils.calculateBatteryPercent(usageData.totalPowerMah,
|
||||
totalPower, hiddenPower, dischargeAmount);
|
||||
updateUsageDataSummary(usageData, totalPower, dischargeAmount);
|
||||
}
|
||||
|
||||
@@ -267,6 +268,17 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
return batteryDataList;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
double calculateHiddenPower(List<PowerUsageData> batteryDataList) {
|
||||
for (final PowerUsageData usageData : batteryDataList) {
|
||||
if (usageData.usageType == UsageType.UNACCOUNTED) {
|
||||
return usageData.totalPowerMah;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void updateUsageDataSummary(PowerUsageData usageData, double totalPower, int dischargeAmount) {
|
||||
if (shouldHideSummary(usageData)) {
|
||||
@@ -320,6 +332,10 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
void setUserManager(UserManager userManager) {
|
||||
mUserManager = userManager;
|
||||
}
|
||||
@VisibleForTesting
|
||||
void setBatteryUtils(BatteryUtils batteryUtils) {
|
||||
mBatteryUtils = batteryUtils;
|
||||
}
|
||||
|
||||
/**
|
||||
* Class that contains data used in {@link PowerGaugePreference}.
|
||||
|
@@ -70,6 +70,7 @@ public class BatteryUtilsTest {
|
||||
private static final double BATTERY_SCREEN_USAGE = 300;
|
||||
private static final double BATTERY_SYSTEM_USAGE = 600;
|
||||
private static final double BATTERY_OVERACCOUNTED_USAGE = 500;
|
||||
private static final double BATTERY_UNACCOUNTED_USAGE = 700;
|
||||
private static final double TOTAL_BATTERY_USAGE = 1000;
|
||||
private static final double HIDDEN_USAGE = 200;
|
||||
private static final int DISCHARGE_AMOUNT = 80;
|
||||
@@ -85,6 +86,8 @@ public class BatteryUtilsTest {
|
||||
@Mock
|
||||
private BatterySipper mOvercountedBatterySipper;
|
||||
@Mock
|
||||
private BatterySipper mUnaccountedBatterySipper;
|
||||
@Mock
|
||||
private BatterySipper mSystemBatterySipper;
|
||||
@Mock
|
||||
private BatterySipper mCellBatterySipper;
|
||||
@@ -126,6 +129,9 @@ public class BatteryUtilsTest {
|
||||
mOvercountedBatterySipper.drainType = BatterySipper.DrainType.OVERCOUNTED;
|
||||
mOvercountedBatterySipper.totalPowerMah = BATTERY_OVERACCOUNTED_USAGE;
|
||||
|
||||
mUnaccountedBatterySipper.drainType = BatterySipper.DrainType.UNACCOUNTED;
|
||||
mUnaccountedBatterySipper.totalPowerMah = BATTERY_UNACCOUNTED_USAGE;
|
||||
|
||||
mBatteryUtils = BatteryUtils.getInstance(RuntimeEnvironment.application);
|
||||
mBatteryUtils.mPowerUsageFeatureProvider = mProvider;
|
||||
|
||||
@@ -171,12 +177,14 @@ public class BatteryUtilsTest {
|
||||
sippers.add(mScreenBatterySipper);
|
||||
sippers.add(mSystemBatterySipper);
|
||||
sippers.add(mOvercountedBatterySipper);
|
||||
sippers.add(mUnaccountedBatterySipper);
|
||||
when(mProvider.isTypeSystem(mSystemBatterySipper))
|
||||
.thenReturn(true);
|
||||
|
||||
final double totalUsage = mBatteryUtils.removeHiddenBatterySippers(sippers);
|
||||
assertThat(sippers).containsExactly(mNormalBatterySipper);
|
||||
assertThat(totalUsage).isWithin(PRECISION).of(BATTERY_SCREEN_USAGE + BATTERY_SYSTEM_USAGE);
|
||||
assertThat(totalUsage).isWithin(PRECISION).of(
|
||||
BATTERY_SCREEN_USAGE + BATTERY_SYSTEM_USAGE + BATTERY_UNACCOUNTED_USAGE);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -111,7 +111,7 @@ public class PowerUsageAdvancedTest {
|
||||
mPowerUsageAdvanced.setPackageManager(mPackageManager);
|
||||
mPowerUsageAdvanced.setPowerUsageFeatureProvider(mPowerUsageFeatureProvider);
|
||||
mPowerUsageAdvanced.setUserManager(mUserManager);
|
||||
mPowerUsageAdvanced.mBatteryUtils = spy(new BatteryUtils(mShadowContext));
|
||||
mPowerUsageAdvanced.setBatteryUtils(BatteryUtils.getInstance(mShadowContext));
|
||||
|
||||
mPowerUsageData = new PowerUsageData(UsageType.APP);
|
||||
mMaxBatterySipper.totalPowerMah = TYPE_BLUETOOTH_USAGE;
|
||||
@@ -299,4 +299,16 @@ public class PowerUsageAdvancedTest {
|
||||
assertThat(mPowerUsageAdvanced.shouldShowBatterySipper(mNormalBatterySipper)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCalculateHiddenPower_returnCorrectPower() {
|
||||
List<PowerUsageData> powerUsageDataList = new ArrayList<>();
|
||||
final double unaccountedPower = 100;
|
||||
final double normalPower = 150;
|
||||
powerUsageDataList.add(new PowerUsageData(UsageType.UNACCOUNTED, unaccountedPower));
|
||||
powerUsageDataList.add(new PowerUsageData(UsageType.APP, normalPower));
|
||||
powerUsageDataList.add(new PowerUsageData(UsageType.CELL, normalPower));
|
||||
|
||||
assertThat(mPowerUsageAdvanced.calculateHiddenPower(powerUsageDataList)).isWithin(
|
||||
PRECISION).of(unaccountedPower);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user