Remove misc data in battery main page.

The removed types are:
1. DrainType.UNACCOUNTED
2. DrainType.OVERCOUNTED

This cl removes the above types in PowerUsageSummary and
PowerUsageAdvanced

Bug: 36874846
Test: RunSettingsRoboTests
Change-Id: I1807c44a2c0a9c2fa124cdef962a6411ae6830ca
This commit is contained in:
jackqdyulei
2017-04-04 13:04:36 -07:00
parent 418e5bffda
commit ab5ca9f5cd
4 changed files with 72 additions and 4 deletions

View File

@@ -66,7 +66,8 @@ public class PowerUsageAdvanced extends PowerUsageBase {
UsageType.USER,
UsageType.IDLE,
UsageType.APP,
UsageType.UNACCOUNTED};
UsageType.UNACCOUNTED,
UsageType.OVERCOUNTED};
private BatteryHistoryPreference mHistPref;
private PreferenceGroup mUsageListGroup;
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
@@ -169,6 +170,9 @@ public class PowerUsageAdvanced extends PowerUsageBase {
mUsageListGroup.removeAll();
for (int i = 0, size = dataList.size(); i < size; i++) {
final PowerUsageData batteryData = dataList.get(i);
if (shouldHide(batteryData)) {
continue;
}
final PowerGaugePreference pref = new PowerGaugePreference(getPrefContext());
pref.setKey(String.valueOf(batteryData.usageType));
@@ -199,6 +203,8 @@ public class PowerUsageAdvanced extends PowerUsageBase {
return UsageType.CELL;
} else if (drainType == DrainType.UNACCOUNTED) {
return UsageType.UNACCOUNTED;
} else if (drainType == DrainType.OVERCOUNTED) {
return UsageType.OVERCOUNTED;
} else if (mPowerUsageFeatureProvider.isTypeSystem(sipper)) {
return UsageType.SYSTEM;
} else if (mPowerUsageFeatureProvider.isTypeService(sipper)) {
@@ -208,6 +214,16 @@ public class PowerUsageAdvanced extends PowerUsageBase {
}
}
@VisibleForTesting
boolean shouldHide(PowerUsageData powerUsageData) {
if (powerUsageData.usageType == UsageType.UNACCOUNTED
|| powerUsageData.usageType == UsageType.OVERCOUNTED) {
return true;
}
return false;
}
@VisibleForTesting
List<PowerUsageData> parsePowerUsageData(BatteryStatsHelper statusHelper) {
final List<BatterySipper> batterySippers = statusHelper.getUsageList();
@@ -297,7 +313,8 @@ public class PowerUsageAdvanced extends PowerUsageBase {
UsageType.BLUETOOTH,
UsageType.USER,
UsageType.IDLE,
UsageType.UNACCOUNTED})
UsageType.UNACCOUNTED,
UsageType.OVERCOUNTED})
public @interface UsageType {
int APP = 0;
int WIFI = 1;
@@ -308,6 +325,7 @@ public class PowerUsageAdvanced extends PowerUsageBase {
int USER = 6;
int IDLE = 7;
int UNACCOUNTED = 8;
int OVERCOUNTED = 9;
}
@StringRes
@@ -353,6 +371,8 @@ public class PowerUsageAdvanced extends PowerUsageBase {
return R.string.power_idle;
case UsageType.UNACCOUNTED:
return R.string.power_unaccounted;
case UsageType.OVERCOUNTED:
return R.string.power_overcounted;
case UsageType.APP:
default:
return R.string.power_apps;

View File

@@ -599,6 +599,8 @@ public class PowerUsageSummary extends PowerUsageBase {
|| drainType == DrainType.WIFI
|| drainType == DrainType.SCREEN
|| drainType == DrainType.BLUETOOTH
|| drainType == DrainType.UNACCOUNTED
|| drainType == DrainType.OVERCOUNTED
|| (sipper.totalPowerMah * SECONDS_IN_HOUR) < MIN_POWER_THRESHOLD_MILLI_AMP
|| mPowerFeatureProvider.isTypeService(sipper)
|| mPowerFeatureProvider.isTypeSystem(sipper);
@@ -625,7 +627,11 @@ public class PowerUsageSummary extends PowerUsageBase {
final BatterySipper sipper = sippers.get(i);
if (shouldHideSipper(sipper)) {
sippers.remove(i);
totalPowerMah += sipper.totalPowerMah;
if (sipper.drainType != DrainType.OVERCOUNTED
&& sipper.drainType != DrainType.UNACCOUNTED) {
// Don't add it if it is overcounted or unaccounted
totalPowerMah += sipper.totalPowerMah;
}
}
}

View File

@@ -207,7 +207,7 @@ public class PowerUsageAdvancedTest {
assertThat(usageTypeSet).asList().containsExactly(UsageType.APP, UsageType.WIFI,
UsageType.CELL, UsageType.BLUETOOTH, UsageType.IDLE, UsageType.SERVICE,
UsageType.USER, UsageType.SYSTEM, UsageType.UNACCOUNTED);
UsageType.USER, UsageType.SYSTEM, UsageType.UNACCOUNTED, UsageType.OVERCOUNTED);
}
@Test
@@ -223,4 +223,27 @@ public class PowerUsageAdvancedTest {
assertThat(dataList.get(i - 1).totalPowerMah).isAtLeast(dataList.get(i).totalPowerMah);
}
}
@Test
public void testShouldHide_typeUnAccounted_returnTrue() {
mPowerUsageData.usageType = UsageType.UNACCOUNTED;
assertThat(mPowerUsageAdvanced.shouldHide(mPowerUsageData)).isTrue();
}
@Test
public void testShouldHide_typeOverCounted_returnTrue() {
mPowerUsageData.usageType = UsageType.OVERCOUNTED;
assertThat(mPowerUsageAdvanced.shouldHide(mPowerUsageData)).isTrue();
}
@Test
public void testShouldHide_typeNormal_returnFalse() {
mPowerUsageData.usageType = UsageType.APP;
assertThat(mPowerUsageAdvanced.shouldHide(mPowerUsageData)).isFalse();
}
}

View File

@@ -90,6 +90,7 @@ public class PowerUsageSummaryTest {
private static final double TOTAL_POWER = 200;
private static final double BATTERY_SCREEN_USAGE = 300;
private static final double BATTERY_SYSTEM_USAGE = 600;
private static final double BATTERY_OVERCOUNTED_USAGE = 500;
private static final double PRECISION = 0.001;
private static final double POWER_USAGE_PERCENTAGE = 50;
private static final Intent ADDITIONAL_BATTERY_INFO_INTENT =
@@ -112,6 +113,8 @@ public class PowerUsageSummaryTest {
@Mock
private BatterySipper mScreenBatterySipper;
@Mock
private BatterySipper mOvercountedBatterySipper;
@Mock
private BatterySipper mSystemBatterySipper;
@Mock
private BatterySipper mCellBatterySipper;
@@ -188,6 +191,9 @@ public class PowerUsageSummaryTest {
mSystemBatterySipper.totalPowerMah = BATTERY_SYSTEM_USAGE;
when(mSystemBatterySipper.getUid()).thenReturn(Process.SYSTEM_UID);
mOvercountedBatterySipper.drainType = BatterySipper.DrainType.OVERCOUNTED;
mOvercountedBatterySipper.totalPowerMah = BATTERY_OVERCOUNTED_USAGE;
mUsageList = new ArrayList<>();
mUsageList.add(mNormalBatterySipper);
mUsageList.add(mScreenBatterySipper);
@@ -303,6 +309,7 @@ public class PowerUsageSummaryTest {
sippers.add(mNormalBatterySipper);
sippers.add(mScreenBatterySipper);
sippers.add(mSystemBatterySipper);
sippers.add(mOvercountedBatterySipper);
when(mFeatureFactory.powerUsageFeatureProvider.isTypeSystem(mSystemBatterySipper))
.thenReturn(true);
@@ -317,6 +324,18 @@ public class PowerUsageSummaryTest {
assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isTrue();
}
@Test
public void testShouldHideSipper_TypeUnAccounted_ReturnTrue() {
mNormalBatterySipper.drainType = BatterySipper.DrainType.UNACCOUNTED;
assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isTrue();
}
@Test
public void testShouldHideSipper_TypeOverCounted_ReturnTrue() {
mNormalBatterySipper.drainType = BatterySipper.DrainType.OVERCOUNTED;
assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isTrue();
}
@Test
public void testShouldHideSipper_typeWifi_returnTrue() {
mNormalBatterySipper.drainType = BatterySipper.DrainType.WIFI;