OSDN Git Service

Remove misc data in battery main page.
authorjackqdyulei <jackqdyulei@google.com>
Tue, 4 Apr 2017 20:04:36 +0000 (13:04 -0700)
committerjackqdyulei <jackqdyulei@google.com>
Thu, 6 Apr 2017 22:09:57 +0000 (15:09 -0700)
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

src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
src/com/android/settings/fuelgauge/PowerUsageSummary.java
tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java
tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java

index fe0cf4d..b341760 100644 (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)) {
@@ -209,6 +215,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();
         final Map<Integer, PowerUsageData> batteryDataMap = new HashMap<>();
@@ -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;
index 2c1fd78..d9323db 100644 (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;
+                }
             }
         }
 
index 6ac6500..4216d57 100644 (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();
+    }
 }
index 5f2d54f..7f59b18 100644 (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);
 
@@ -318,6 +325,18 @@ public class PowerUsageSummaryTest {
     }
 
     @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;
         assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isTrue();