Loading src/com/android/settings/fuelgauge/BatteryUtils.java +15 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,8 @@ import com.android.settings.overlay.FeatureFactory; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Collections; import java.util.Comparator; import java.util.List; /** Loading Loading @@ -213,6 +215,19 @@ public class BatteryUtils { return (powerUsageMah / (totalPowerMah - hiddenPowerMah)) * dischargeAmount; } /** * Sort the {@code usageList} based on {@link BatterySipper#totalPowerMah} * @param usageList */ public void sortUsageList(List<BatterySipper> usageList) { Collections.sort(usageList, new Comparator<BatterySipper>() { @Override public int compare(BatterySipper a, BatterySipper b) { return Double.compare(b.totalPowerMah, a.totalPowerMah); } }); } private long convertUsToMs(long timeUs) { return timeUs / 1000; } Loading src/com/android/settings/fuelgauge/PowerUsageSummary.java +3 −10 Original line number Diff line number Diff line Loading @@ -66,8 +66,6 @@ import com.android.settingslib.BatteryInfo; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; /** Loading Loading @@ -311,7 +309,7 @@ public class PowerUsageSummary extends PowerUsageBase { * * @return A sorted list of apps using power. */ private static List<BatterySipper> getCoalescedUsageList(final List<BatterySipper> sippers) { private List<BatterySipper> getCoalescedUsageList(final List<BatterySipper> sippers) { final SparseArray<BatterySipper> uidList = new SparseArray<>(); final ArrayList<BatterySipper> results = new ArrayList<>(); Loading Loading @@ -386,12 +384,7 @@ public class PowerUsageSummary extends PowerUsageBase { } // The sort order must have changed, so re-sort based on total power use. Collections.sort(results, new Comparator<BatterySipper>() { @Override public int compare(BatterySipper a, BatterySipper b) { return Double.compare(b.totalPowerMah, a.totalPowerMah); } }); mBatteryUtils.sortUsageList(results); return results; } Loading Loading @@ -434,9 +427,9 @@ public class PowerUsageSummary extends PowerUsageBase { if (averagePower >= MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP || USE_FAKE_DATA) { final List<BatterySipper> usageList = getCoalescedUsageList( USE_FAKE_DATA ? getFakeStats() : mStatsHelper.getUsageList()); double hiddenPowerMah = mShowAllApps ? 0 : mBatteryUtils.removeHiddenBatterySippers(usageList); mBatteryUtils.sortUsageList(usageList); final int numSippers = usageList.size(); for (int i = 0; i < numSippers; i++) { Loading tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -278,6 +278,19 @@ public class BatteryUtilsTest { BATTERY_APP_USAGE + BATTERY_SCREEN_USAGE); } @Test public void testSortUsageList() { final List<BatterySipper> sippers = new ArrayList<>(); sippers.add(mNormalBatterySipper); sippers.add(mScreenBatterySipper); sippers.add(mSystemBatterySipper); mBatteryUtils.sortUsageList(sippers); assertThat(sippers).containsExactly(mNormalBatterySipper, mSystemBatterySipper, mScreenBatterySipper); } private BatterySipper createTestSmearBatterySipper(long activityTime, double totalPowerMah, int uidCode, boolean isUidNull) { final BatterySipper sipper = mock(BatterySipper.class); Loading Loading
src/com/android/settings/fuelgauge/BatteryUtils.java +15 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,8 @@ import com.android.settings.overlay.FeatureFactory; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Collections; import java.util.Comparator; import java.util.List; /** Loading Loading @@ -213,6 +215,19 @@ public class BatteryUtils { return (powerUsageMah / (totalPowerMah - hiddenPowerMah)) * dischargeAmount; } /** * Sort the {@code usageList} based on {@link BatterySipper#totalPowerMah} * @param usageList */ public void sortUsageList(List<BatterySipper> usageList) { Collections.sort(usageList, new Comparator<BatterySipper>() { @Override public int compare(BatterySipper a, BatterySipper b) { return Double.compare(b.totalPowerMah, a.totalPowerMah); } }); } private long convertUsToMs(long timeUs) { return timeUs / 1000; } Loading
src/com/android/settings/fuelgauge/PowerUsageSummary.java +3 −10 Original line number Diff line number Diff line Loading @@ -66,8 +66,6 @@ import com.android.settingslib.BatteryInfo; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; /** Loading Loading @@ -311,7 +309,7 @@ public class PowerUsageSummary extends PowerUsageBase { * * @return A sorted list of apps using power. */ private static List<BatterySipper> getCoalescedUsageList(final List<BatterySipper> sippers) { private List<BatterySipper> getCoalescedUsageList(final List<BatterySipper> sippers) { final SparseArray<BatterySipper> uidList = new SparseArray<>(); final ArrayList<BatterySipper> results = new ArrayList<>(); Loading Loading @@ -386,12 +384,7 @@ public class PowerUsageSummary extends PowerUsageBase { } // The sort order must have changed, so re-sort based on total power use. Collections.sort(results, new Comparator<BatterySipper>() { @Override public int compare(BatterySipper a, BatterySipper b) { return Double.compare(b.totalPowerMah, a.totalPowerMah); } }); mBatteryUtils.sortUsageList(results); return results; } Loading Loading @@ -434,9 +427,9 @@ public class PowerUsageSummary extends PowerUsageBase { if (averagePower >= MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP || USE_FAKE_DATA) { final List<BatterySipper> usageList = getCoalescedUsageList( USE_FAKE_DATA ? getFakeStats() : mStatsHelper.getUsageList()); double hiddenPowerMah = mShowAllApps ? 0 : mBatteryUtils.removeHiddenBatterySippers(usageList); mBatteryUtils.sortUsageList(usageList); final int numSippers = usageList.size(); for (int i = 0; i < numSippers; i++) { Loading
tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -278,6 +278,19 @@ public class BatteryUtilsTest { BATTERY_APP_USAGE + BATTERY_SCREEN_USAGE); } @Test public void testSortUsageList() { final List<BatterySipper> sippers = new ArrayList<>(); sippers.add(mNormalBatterySipper); sippers.add(mScreenBatterySipper); sippers.add(mSystemBatterySipper); mBatteryUtils.sortUsageList(sippers); assertThat(sippers).containsExactly(mNormalBatterySipper, mSystemBatterySipper, mScreenBatterySipper); } private BatterySipper createTestSmearBatterySipper(long activityTime, double totalPowerMah, int uidCode, boolean isUidNull) { final BatterySipper sipper = mock(BatterySipper.class); Loading