Purging battery diff data before calculating perctage and sort.
Bug: 261820602 Test: manual Change-Id: I958995721238f32d0360861559ca5e1938ce6d3a
This commit is contained in:
@@ -32,9 +32,6 @@ public class BatteryDiffData {
|
|||||||
@NonNull List<BatteryDiffEntry> systemDiffEntries) {
|
@NonNull List<BatteryDiffEntry> systemDiffEntries) {
|
||||||
mAppEntries = appDiffEntries;
|
mAppEntries = appDiffEntries;
|
||||||
mSystemEntries = systemDiffEntries;
|
mSystemEntries = systemDiffEntries;
|
||||||
setTotalConsumePowerForAllEntries(mAppEntries);
|
|
||||||
setTotalConsumePowerForAllEntries(mSystemEntries);
|
|
||||||
sortEntries();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<BatteryDiffEntry> getAppDiffEntryList() {
|
public List<BatteryDiffEntry> getAppDiffEntryList() {
|
||||||
@@ -45,6 +42,18 @@ public class BatteryDiffData {
|
|||||||
return mSystemEntries;
|
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.
|
// Sets total consume power for each entry.
|
||||||
private void setTotalConsumePowerForAllEntries(List<BatteryDiffEntry> batteryDiffEntries) {
|
private void setTotalConsumePowerForAllEntries(List<BatteryDiffEntry> batteryDiffEntries) {
|
||||||
double totalConsumePower = 0.0;
|
double totalConsumePower = 0.0;
|
||||||
@@ -55,10 +64,4 @@ public class BatteryDiffData {
|
|||||||
batteryDiffEntry.setTotalConsumePower(totalConsumePower);
|
batteryDiffEntry.setTotalConsumePower(totalConsumePower);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sorts entries based on consumed percentage.
|
|
||||||
private void sortEntries() {
|
|
||||||
Collections.sort(mAppEntries, BatteryDiffEntry.COMPARATOR);
|
|
||||||
Collections.sort(mSystemEntries, BatteryDiffEntry.COMPARATOR);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -546,7 +546,7 @@ public final class DataProcessor {
|
|||||||
insertDailyUsageDiffData(hourlyBatteryLevelsPerDay, resultMap);
|
insertDailyUsageDiffData(hourlyBatteryLevelsPerDay, resultMap);
|
||||||
// Insert diff data [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL].
|
// Insert diff data [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL].
|
||||||
insertAllUsageDiffData(resultMap);
|
insertAllUsageDiffData(resultMap);
|
||||||
purgeFakeAndHiddenPackages(context, resultMap);
|
processBatteryDiffData(context, resultMap);
|
||||||
if (!isUsageMapValid(resultMap, hourlyBatteryLevelsPerDay)) {
|
if (!isUsageMapValid(resultMap, hourlyBatteryLevelsPerDay)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -651,7 +651,7 @@ public final class DataProcessor {
|
|||||||
allUsageMap.put(SELECTED_INDEX_ALL,
|
allUsageMap.put(SELECTED_INDEX_ALL,
|
||||||
generateBatteryDiffData(context, getBatteryHistListFromFromStatsService(context)));
|
generateBatteryDiffData(context, getBatteryHistListFromFromStatsService(context)));
|
||||||
resultMap.put(SELECTED_INDEX_ALL, allUsageMap);
|
resultMap.put(SELECTED_INDEX_ALL, allUsageMap);
|
||||||
purgeFakeAndHiddenPackages(context, resultMap);
|
processBatteryDiffData(context, resultMap);
|
||||||
return resultMap;
|
return resultMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1232,8 +1232,11 @@ public final class DataProcessor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Removes low percentage data and fake usage data, which will be zero value.
|
// Process every battery diff data in the battery usage result map.
|
||||||
private static void purgeFakeAndHiddenPackages(
|
// (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 Context context,
|
||||||
final Map<Integer, Map<Integer, BatteryDiffData>> resultMap) {
|
final Map<Integer, Map<Integer, BatteryDiffData>> resultMap) {
|
||||||
final Set<CharSequence> hideBackgroundUsageTimeSet =
|
final Set<CharSequence> hideBackgroundUsageTimeSet =
|
||||||
@@ -1246,16 +1249,18 @@ public final class DataProcessor {
|
|||||||
.getHideApplicationSet(context);
|
.getHideApplicationSet(context);
|
||||||
resultMap.keySet().forEach(dailyKey -> {
|
resultMap.keySet().forEach(dailyKey -> {
|
||||||
final Map<Integer, BatteryDiffData> dailyUsageMap = resultMap.get(dailyKey);
|
final Map<Integer, BatteryDiffData> dailyUsageMap = resultMap.get(dailyKey);
|
||||||
dailyUsageMap.values().forEach(diffEntryLists -> {
|
dailyUsageMap.values().forEach(batteryDiffData -> {
|
||||||
if (diffEntryLists == null) {
|
if (batteryDiffData == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
purgeFakeAndHiddenPackages(
|
purgeFakeAndHiddenPackages(
|
||||||
diffEntryLists.getAppDiffEntryList(), hideBackgroundUsageTimeSet,
|
batteryDiffData.getAppDiffEntryList(), hideBackgroundUsageTimeSet,
|
||||||
hideApplicationSet);
|
hideApplicationSet);
|
||||||
purgeFakeAndHiddenPackages(
|
purgeFakeAndHiddenPackages(
|
||||||
diffEntryLists.getSystemDiffEntryList(), hideBackgroundUsageTimeSet,
|
batteryDiffData.getSystemDiffEntryList(), hideBackgroundUsageTimeSet,
|
||||||
hideApplicationSet);
|
hideApplicationSet);
|
||||||
|
batteryDiffData.setTotalConsumePower();
|
||||||
|
batteryDiffData.sortEntries();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@@ -105,6 +105,8 @@ public final class BatteryUsageBreakdownControllerTest {
|
|||||||
mBatteryDiffEntry = spy(mBatteryDiffEntry);
|
mBatteryDiffEntry = spy(mBatteryDiffEntry);
|
||||||
mBatteryUsageBreakdownController.mBatteryDiffData =
|
mBatteryUsageBreakdownController.mBatteryDiffData =
|
||||||
new BatteryDiffData(Arrays.asList(mBatteryDiffEntry), Arrays.asList());
|
new BatteryDiffData(Arrays.asList(mBatteryDiffEntry), Arrays.asList());
|
||||||
|
mBatteryUsageBreakdownController.mBatteryDiffData.setTotalConsumePower();
|
||||||
|
mBatteryUsageBreakdownController.mBatteryDiffData.sortEntries();
|
||||||
// Adds fake testing data.
|
// Adds fake testing data.
|
||||||
BatteryDiffEntry.sResourceCache.put(
|
BatteryDiffEntry.sResourceCache.put(
|
||||||
"fakeBatteryDiffEntryKey",
|
"fakeBatteryDiffEntryKey",
|
||||||
|
@@ -1076,7 +1076,7 @@ public class DataProcessorTest {
|
|||||||
.get(DataProcessor.SELECTED_INDEX_ALL);
|
.get(DataProcessor.SELECTED_INDEX_ALL);
|
||||||
assertBatteryDiffEntry(
|
assertBatteryDiffEntry(
|
||||||
resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 2L,
|
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,
|
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||||
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
|
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
|
||||||
/*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 20);
|
/*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 20);
|
||||||
@@ -1226,6 +1226,8 @@ public class DataProcessorTest {
|
|||||||
|
|
||||||
final BatteryDiffData batteryDiffData = DataProcessor.generateBatteryDiffData(mContext,
|
final BatteryDiffData batteryDiffData = DataProcessor.generateBatteryDiffData(mContext,
|
||||||
DataProcessor.convertToBatteryHistEntry(batteryEntryList, mBatteryUsageStats));
|
DataProcessor.convertToBatteryHistEntry(batteryEntryList, mBatteryUsageStats));
|
||||||
|
batteryDiffData.setTotalConsumePower();
|
||||||
|
batteryDiffData.sortEntries();
|
||||||
|
|
||||||
assertBatteryDiffEntry(
|
assertBatteryDiffEntry(
|
||||||
batteryDiffData.getAppDiffEntryList().get(0), 0, /*uid=*/ 2L,
|
batteryDiffData.getAppDiffEntryList().get(0), 0, /*uid=*/ 2L,
|
||||||
|
Reference in New Issue
Block a user