Loading src/com/android/settings/fuelgauge/PowerUsageSummary.java +11 −25 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -69,6 +70,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; Loading Loading @@ -574,32 +576,9 @@ 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)) { if (shouldHideSipper(sipper)) { continue; } if (percentOfTotal < 5) { continue; } if ("user".equals(Build.TYPE)) { continue; } } final UserHandle userHandle = new UserHandle(UserHandle.getUserId(sipper.getUid())); final BatteryEntry entry = new BatteryEntry(getActivity(), mHandler, mUm, sipper); final Drawable badgedIcon = mUm.getBadgedIconForUser(entry.getIcon(), Loading Loading @@ -648,6 +627,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++) { Loading tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +22 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -514,6 +515,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; Loading Loading
src/com/android/settings/fuelgauge/PowerUsageSummary.java +11 −25 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -69,6 +70,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; Loading Loading @@ -574,32 +576,9 @@ 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)) { if (shouldHideSipper(sipper)) { continue; } if (percentOfTotal < 5) { continue; } if ("user".equals(Build.TYPE)) { continue; } } final UserHandle userHandle = new UserHandle(UserHandle.getUserId(sipper.getUid())); final BatteryEntry entry = new BatteryEntry(getActivity(), mHandler, mUm, sipper); final Drawable badgedIcon = mUm.getBadgedIconForUser(entry.getIcon(), Loading Loading @@ -648,6 +627,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++) { Loading
tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +22 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -514,6 +515,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; Loading