diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 26dac41197e..1a6ba5da4d8 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -46,6 +46,7 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnLongClickListener; import android.widget.TextView; + import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.os.BatterySipper; import com.android.internal.os.BatterySipper.DrainType; @@ -68,6 +69,7 @@ import com.android.settings.fuelgauge.anomaly.AnomalyLoader; import com.android.settings.fuelgauge.anomaly.AnomalySummaryPreferenceController; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; + import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -573,31 +575,8 @@ public class PowerUsageSummary extends PowerUsageBase implements if (((int) (percentOfTotal + .5)) < 1) { continue; } - if (sipper.drainType == BatterySipper.DrainType.OVERCOUNTED) { - // Don't show over-counted unless it is at least 2/3 the size of - // the largest real entry, and its percent of total is more significant - if (sipper.totalPowerMah < ((mStatsHelper.getMaxRealPower() * 2) / 3)) { - continue; - } - if (percentOfTotal < 10) { - continue; - } - if ("user".equals(Build.TYPE)) { - continue; - } - } - if (sipper.drainType == BatterySipper.DrainType.UNACCOUNTED) { - // Don't show over-counted unless it is at least 1/2 the size of - // the largest real entry, and its percent of total is more significant - if (sipper.totalPowerMah < (mStatsHelper.getMaxRealPower() / 2)) { - continue; - } - if (percentOfTotal < 5) { - continue; - } - if ("user".equals(Build.TYPE)) { - continue; - } + if (shouldHideSipper(sipper)) { + continue; } final UserHandle userHandle = new UserHandle(UserHandle.getUserId(sipper.getUid())); final BatteryEntry entry = new BatteryEntry(getActivity(), mHandler, mUm, sipper); @@ -647,6 +626,13 @@ public class PowerUsageSummary extends PowerUsageBase implements BatteryEntry.startRequestQueue(); } + @VisibleForTesting + boolean shouldHideSipper(BatterySipper sipper) { + // Don't show over-counted and unaccounted in any condition + return sipper.drainType == BatterySipper.DrainType.OVERCOUNTED + || sipper.drainType == BatterySipper.DrainType.UNACCOUNTED; + } + @VisibleForTesting void refreshAnomalyIcon() { for (int i = 0, size = mAnomalySparseArray.size(); i < size; i++) { diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java index 659b07948dd..c96fc93db27 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java @@ -16,6 +16,7 @@ package com.android.settings.fuelgauge; import java.util.List; + import android.app.LoaderManager; import android.content.Context; import android.content.Intent; @@ -511,6 +512,27 @@ public class PowerUsageSummaryTest { assertThat(preference.showAnomalyIcon()).isTrue(); } + @Test + public void testShouldHideSipper_typeOvercounted_returnTrue() { + mNormalBatterySipper.drainType = BatterySipper.DrainType.OVERCOUNTED; + + 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_typeNormal_returnFalse() { + mNormalBatterySipper.drainType = BatterySipper.DrainType.APP; + + assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isFalse(); + } + public static class TestFragment extends PowerUsageSummary { private Context mContext;