Loading src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java +12 −9 Original line number Diff line number Diff line Loading @@ -32,9 +32,6 @@ public class BatteryDiffData { @NonNull List<BatteryDiffEntry> systemDiffEntries) { mAppEntries = appDiffEntries; mSystemEntries = systemDiffEntries; setTotalConsumePowerForAllEntries(mAppEntries); setTotalConsumePowerForAllEntries(mSystemEntries); sortEntries(); } public List<BatteryDiffEntry> getAppDiffEntryList() { Loading @@ -45,6 +42,18 @@ public class BatteryDiffData { return mSystemEntries; } // Sorts entries based on consumed percentage. void sortEntries() { Collections.sort(mAppEntries, BatteryDiffEntry.COMPARATOR); Collections.sort(mSystemEntries, BatteryDiffEntry.COMPARATOR); } // Sets total consume power for app and system entries separately. void setTotalConsumePower() { setTotalConsumePowerForAllEntries(mAppEntries); setTotalConsumePowerForAllEntries(mSystemEntries); } // Sets total consume power for each entry. private void setTotalConsumePowerForAllEntries(List<BatteryDiffEntry> batteryDiffEntries) { double totalConsumePower = 0.0; Loading @@ -55,10 +64,4 @@ public class BatteryDiffData { batteryDiffEntry.setTotalConsumePower(totalConsumePower); } } // Sorts entries based on consumed percentage. private void sortEntries() { Collections.sort(mAppEntries, BatteryDiffEntry.COMPARATOR); Collections.sort(mSystemEntries, BatteryDiffEntry.COMPARATOR); } } src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java +13 −8 Original line number Diff line number Diff line Loading @@ -546,7 +546,7 @@ public final class DataProcessor { insertDailyUsageDiffData(hourlyBatteryLevelsPerDay, resultMap); // Insert diff data [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL]. insertAllUsageDiffData(resultMap); purgeFakeAndHiddenPackages(context, resultMap); processBatteryDiffData(context, resultMap); if (!isUsageMapValid(resultMap, hourlyBatteryLevelsPerDay)) { return null; } Loading Loading @@ -651,7 +651,7 @@ public final class DataProcessor { allUsageMap.put(SELECTED_INDEX_ALL, generateBatteryDiffData(context, getBatteryHistListFromFromStatsService(context))); resultMap.put(SELECTED_INDEX_ALL, allUsageMap); purgeFakeAndHiddenPackages(context, resultMap); processBatteryDiffData(context, resultMap); return resultMap; } Loading Loading @@ -1232,8 +1232,11 @@ public final class DataProcessor { } } // Removes low percentage data and fake usage data, which will be zero value. private static void purgeFakeAndHiddenPackages( // Process every battery diff data in the battery usage result map. // (1) Removes low percentage data and fake usage data, which will be zero value. // (2) Sets total consume power, so the usage percentage is updated. // (3) Sorts the result. private static void processBatteryDiffData( final Context context, final Map<Integer, Map<Integer, BatteryDiffData>> resultMap) { final Set<CharSequence> hideBackgroundUsageTimeSet = Loading @@ -1246,16 +1249,18 @@ public final class DataProcessor { .getHideApplicationSet(context); resultMap.keySet().forEach(dailyKey -> { final Map<Integer, BatteryDiffData> dailyUsageMap = resultMap.get(dailyKey); dailyUsageMap.values().forEach(diffEntryLists -> { if (diffEntryLists == null) { dailyUsageMap.values().forEach(batteryDiffData -> { if (batteryDiffData == null) { return; } purgeFakeAndHiddenPackages( diffEntryLists.getAppDiffEntryList(), hideBackgroundUsageTimeSet, batteryDiffData.getAppDiffEntryList(), hideBackgroundUsageTimeSet, hideApplicationSet); purgeFakeAndHiddenPackages( diffEntryLists.getSystemDiffEntryList(), hideBackgroundUsageTimeSet, batteryDiffData.getSystemDiffEntryList(), hideBackgroundUsageTimeSet, hideApplicationSet); batteryDiffData.setTotalConsumePower(); batteryDiffData.sortEntries(); }); }); } Loading tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,8 @@ public final class BatteryUsageBreakdownControllerTest { mBatteryDiffEntry = spy(mBatteryDiffEntry); mBatteryUsageBreakdownController.mBatteryDiffData = new BatteryDiffData(Arrays.asList(mBatteryDiffEntry), Arrays.asList()); mBatteryUsageBreakdownController.mBatteryDiffData.setTotalConsumePower(); mBatteryUsageBreakdownController.mBatteryDiffData.sortEntries(); // Adds fake testing data. BatteryDiffEntry.sResourceCache.put( "fakeBatteryDiffEntryKey", Loading tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java +3 −1 Original line number Diff line number Diff line Loading @@ -1076,7 +1076,7 @@ public class DataProcessorTest { .get(DataProcessor.SELECTED_INDEX_ALL); assertBatteryDiffEntry( resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 2L, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 100.0, /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0, /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5, /*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 20); Loading Loading @@ -1226,6 +1226,8 @@ public class DataProcessorTest { final BatteryDiffData batteryDiffData = DataProcessor.generateBatteryDiffData(mContext, DataProcessor.convertToBatteryHistEntry(batteryEntryList, mBatteryUsageStats)); batteryDiffData.setTotalConsumePower(); batteryDiffData.sortEntries(); assertBatteryDiffEntry( batteryDiffData.getAppDiffEntryList().get(0), 0, /*uid=*/ 2L, Loading Loading
src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java +12 −9 Original line number Diff line number Diff line Loading @@ -32,9 +32,6 @@ public class BatteryDiffData { @NonNull List<BatteryDiffEntry> systemDiffEntries) { mAppEntries = appDiffEntries; mSystemEntries = systemDiffEntries; setTotalConsumePowerForAllEntries(mAppEntries); setTotalConsumePowerForAllEntries(mSystemEntries); sortEntries(); } public List<BatteryDiffEntry> getAppDiffEntryList() { Loading @@ -45,6 +42,18 @@ public class BatteryDiffData { return mSystemEntries; } // Sorts entries based on consumed percentage. void sortEntries() { Collections.sort(mAppEntries, BatteryDiffEntry.COMPARATOR); Collections.sort(mSystemEntries, BatteryDiffEntry.COMPARATOR); } // Sets total consume power for app and system entries separately. void setTotalConsumePower() { setTotalConsumePowerForAllEntries(mAppEntries); setTotalConsumePowerForAllEntries(mSystemEntries); } // Sets total consume power for each entry. private void setTotalConsumePowerForAllEntries(List<BatteryDiffEntry> batteryDiffEntries) { double totalConsumePower = 0.0; Loading @@ -55,10 +64,4 @@ public class BatteryDiffData { batteryDiffEntry.setTotalConsumePower(totalConsumePower); } } // Sorts entries based on consumed percentage. private void sortEntries() { Collections.sort(mAppEntries, BatteryDiffEntry.COMPARATOR); Collections.sort(mSystemEntries, BatteryDiffEntry.COMPARATOR); } }
src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java +13 −8 Original line number Diff line number Diff line Loading @@ -546,7 +546,7 @@ public final class DataProcessor { insertDailyUsageDiffData(hourlyBatteryLevelsPerDay, resultMap); // Insert diff data [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL]. insertAllUsageDiffData(resultMap); purgeFakeAndHiddenPackages(context, resultMap); processBatteryDiffData(context, resultMap); if (!isUsageMapValid(resultMap, hourlyBatteryLevelsPerDay)) { return null; } Loading Loading @@ -651,7 +651,7 @@ public final class DataProcessor { allUsageMap.put(SELECTED_INDEX_ALL, generateBatteryDiffData(context, getBatteryHistListFromFromStatsService(context))); resultMap.put(SELECTED_INDEX_ALL, allUsageMap); purgeFakeAndHiddenPackages(context, resultMap); processBatteryDiffData(context, resultMap); return resultMap; } Loading Loading @@ -1232,8 +1232,11 @@ public final class DataProcessor { } } // Removes low percentage data and fake usage data, which will be zero value. private static void purgeFakeAndHiddenPackages( // Process every battery diff data in the battery usage result map. // (1) Removes low percentage data and fake usage data, which will be zero value. // (2) Sets total consume power, so the usage percentage is updated. // (3) Sorts the result. private static void processBatteryDiffData( final Context context, final Map<Integer, Map<Integer, BatteryDiffData>> resultMap) { final Set<CharSequence> hideBackgroundUsageTimeSet = Loading @@ -1246,16 +1249,18 @@ public final class DataProcessor { .getHideApplicationSet(context); resultMap.keySet().forEach(dailyKey -> { final Map<Integer, BatteryDiffData> dailyUsageMap = resultMap.get(dailyKey); dailyUsageMap.values().forEach(diffEntryLists -> { if (diffEntryLists == null) { dailyUsageMap.values().forEach(batteryDiffData -> { if (batteryDiffData == null) { return; } purgeFakeAndHiddenPackages( diffEntryLists.getAppDiffEntryList(), hideBackgroundUsageTimeSet, batteryDiffData.getAppDiffEntryList(), hideBackgroundUsageTimeSet, hideApplicationSet); purgeFakeAndHiddenPackages( diffEntryLists.getSystemDiffEntryList(), hideBackgroundUsageTimeSet, batteryDiffData.getSystemDiffEntryList(), hideBackgroundUsageTimeSet, hideApplicationSet); batteryDiffData.setTotalConsumePower(); batteryDiffData.sortEntries(); }); }); } Loading
tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,8 @@ public final class BatteryUsageBreakdownControllerTest { mBatteryDiffEntry = spy(mBatteryDiffEntry); mBatteryUsageBreakdownController.mBatteryDiffData = new BatteryDiffData(Arrays.asList(mBatteryDiffEntry), Arrays.asList()); mBatteryUsageBreakdownController.mBatteryDiffData.setTotalConsumePower(); mBatteryUsageBreakdownController.mBatteryDiffData.sortEntries(); // Adds fake testing data. BatteryDiffEntry.sResourceCache.put( "fakeBatteryDiffEntryKey", Loading
tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java +3 −1 Original line number Diff line number Diff line Loading @@ -1076,7 +1076,7 @@ public class DataProcessorTest { .get(DataProcessor.SELECTED_INDEX_ALL); assertBatteryDiffEntry( resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 2L, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 100.0, /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0, /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5, /*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 20); Loading Loading @@ -1226,6 +1226,8 @@ public class DataProcessorTest { final BatteryDiffData batteryDiffData = DataProcessor.generateBatteryDiffData(mContext, DataProcessor.convertToBatteryHistEntry(batteryEntryList, mBatteryUsageStats)); batteryDiffData.setTotalConsumePower(); batteryDiffData.sortEntries(); assertBatteryDiffEntry( batteryDiffData.getAppDiffEntryList().get(0), 0, /*uid=*/ 2L, Loading