diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java index b5d4dde883c..caf2cf3cd7e 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java @@ -26,23 +26,14 @@ public class BatteryDiffData { private final List mAppEntries; private final List mSystemEntries; - /** Constructor for the diff entries which already have totalConsumePower value. */ + /** Constructor for the diff entries. */ public BatteryDiffData( @NonNull List appDiffEntries, @NonNull List systemDiffEntries) { mAppEntries = appDiffEntries; mSystemEntries = systemDiffEntries; - sortEntries(); - } - - /** Constructor for the diff entries which have not set totalConsumePower value. */ - public BatteryDiffData( - @NonNull List appDiffEntries, - @NonNull List systemDiffEntries, - final double totalConsumePower) { - mAppEntries = appDiffEntries; - mSystemEntries = systemDiffEntries; - setTotalConsumePowerForAllEntries(totalConsumePower); + setTotalConsumePowerForAllEntries(mAppEntries); + setTotalConsumePowerForAllEntries(mSystemEntries); sortEntries(); } @@ -55,9 +46,14 @@ public class BatteryDiffData { } // Sets total consume power for each entry. - private void setTotalConsumePowerForAllEntries(final double totalConsumePower) { - mAppEntries.forEach(diffEntry -> diffEntry.setTotalConsumePower(totalConsumePower)); - mSystemEntries.forEach(diffEntry -> diffEntry.setTotalConsumePower(totalConsumePower)); + private void setTotalConsumePowerForAllEntries(List batteryDiffEntries) { + double totalConsumePower = 0.0; + for (BatteryDiffEntry batteryDiffEntry : batteryDiffEntries) { + totalConsumePower += batteryDiffEntry.mConsumePower; + } + for (BatteryDiffEntry batteryDiffEntry : batteryDiffEntries) { + batteryDiffEntry.setTotalConsumePower(totalConsumePower); + } } // Sorts entries based on consumed percentage. diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java index b510e5b19e2..0e9f755ebfb 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java +++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java @@ -372,7 +372,7 @@ public final class DataProcessor { @VisibleForTesting static long[] findNearestTimestamp(final List timestamps, final long target) { - final long[] results = new long[] {Long.MIN_VALUE, Long.MAX_VALUE}; + final long[] results = new long[]{Long.MIN_VALUE, Long.MAX_VALUE}; // Searches the nearest lower and upper timestamp value. timestamps.forEach(timestamp -> { if (timestamp <= target && timestamp > results[0]) { @@ -398,7 +398,7 @@ public final class DataProcessor { } /** - * Returns whether currentSlot will be used in daily chart. + * Returns whether currentSlot will be used in daily chart. */ @VisibleForTesting static boolean isForDailyChart(final boolean isStartOrEnd, final long currentSlot) { @@ -468,13 +468,11 @@ public final class DataProcessor { userHandle != null ? userHandle.getIdentifier() : Integer.MIN_VALUE; final List appEntries = new ArrayList<>(); final List systemEntries = new ArrayList<>(); - double totalConsumePower = 0f; double consumePowerFromOtherUsers = 0f; for (BatteryHistEntry entry : batteryHistEntryList) { final boolean isFromOtherUsers = isConsumedFromOtherUsers( currentUserId, workProfileUserId, entry); - totalConsumePower += entry.mConsumePower; if (isFromOtherUsers) { consumePowerFromOtherUsers += entry.mConsumePower; } else { @@ -504,7 +502,7 @@ public final class DataProcessor { return null; } - return new BatteryDiffData(appEntries, systemEntries, totalConsumePower); + return new BatteryDiffData(appEntries, systemEntries); } /** @@ -588,9 +586,7 @@ public final class DataProcessor { || (entry.getConsumedPower() == 0 && (foregroundMs != 0 || backgroundMs != 0)); }) - .map(entry -> ConvertUtils.convertToBatteryHistEntry( - entry, - batteryUsageStats)) + .map(entry -> ConvertUtils.convertToBatteryHistEntry(entry, batteryUsageStats)) .collect(Collectors.toList()); } @@ -949,7 +945,6 @@ public final class DataProcessor { allBatteryHistEntryKeys.addAll(nextBatteryHistMap.keySet()); allBatteryHistEntryKeys.addAll(nextTwoBatteryHistMap.keySet()); - double totalConsumePower = 0.0; double consumePowerFromOtherUsers = 0f; // Calculates all packages diff usage data in a specific time slot. for (String key : allBatteryHistEntryKeys) { @@ -1028,7 +1023,6 @@ public final class DataProcessor { backgroundUsageConsumePower = backgroundUsageConsumePower * ratio; cachedUsageConsumePower = cachedUsageConsumePower * ratio; } - totalConsumePower += consumePower; final boolean isFromOtherUsers = isConsumedFromOtherUsers( currentUserId, workProfileUserId, selectedBatteryEntry); @@ -1061,9 +1055,7 @@ public final class DataProcessor { return null; } - final BatteryDiffData resultDiffData = - new BatteryDiffData(appEntries, systemEntries, totalConsumePower); - return resultDiffData; + return new BatteryDiffData(appEntries, systemEntries); } private static boolean isConsumedFromOtherUsers( @@ -1078,7 +1070,6 @@ public final class DataProcessor { @Nullable private static BatteryDiffData getAccumulatedUsageDiffData( final Collection diffEntryListData) { - double totalConsumePower = 0f; final Map diffEntryMap = new HashMap<>(); final List appEntries = new ArrayList<>(); final List systemEntries = new ArrayList<>(); @@ -1089,18 +1080,14 @@ public final class DataProcessor { } for (BatteryDiffEntry entry : diffEntryList.getAppDiffEntryList()) { computeUsageDiffDataPerEntry(entry, diffEntryMap); - totalConsumePower += entry.mConsumePower; } for (BatteryDiffEntry entry : diffEntryList.getSystemDiffEntryList()) { computeUsageDiffDataPerEntry(entry, diffEntryMap); - totalConsumePower += entry.mConsumePower; } } final Collection diffEntryList = diffEntryMap.values(); for (BatteryDiffEntry entry : diffEntryList) { - // Sets total daily consume power data into all BatteryDiffEntry. - entry.setTotalConsumePower(totalConsumePower); if (entry.isSystemEntry()) { systemEntries.add(entry); } else { diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java index d6b5a3eaafd..0bc86932984 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java @@ -211,7 +211,7 @@ public final class BatteryUsageBreakdownControllerTest { SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM, SettingsEnums.OPEN_BATTERY_USAGE, /* package name */ "none", - /* percentage of total */ 0); + /* percentage of total */ 100); } @Test @@ -227,7 +227,7 @@ public final class BatteryUsageBreakdownControllerTest { SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM, SettingsEnums.OPEN_BATTERY_USAGE, /* package name */ "none", - /* percentage of total */ 0); + /* percentage of total */ 100); } @Test diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java index ce6a917cab5..5b69e7ce27a 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java @@ -671,19 +671,19 @@ public class DataProcessorTest { .get(DataProcessor.SELECTED_INDEX_ALL); assertBatteryDiffEntry( resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 2L, - ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 40.0, + ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0, /*foregroundUsageConsumePower=*/ 14, /*foregroundServiceUsageConsumePower=*/ 9, /*backgroundUsageConsumePower=*/ 9, /*cachedUsageConsumePower=*/ 8, /*foregroundUsageTimeInMs=*/ 30, /*backgroundUsageTimeInMs=*/ 40); assertBatteryDiffEntry( resultDiffData.getAppDiffEntryList().get(1), currentUserId, /*uid=*/ 4L, - ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 40.0, + ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0, /*foregroundUsageConsumePower=*/ 8, /*foregroundServiceUsageConsumePower=*/ 8, /*backgroundUsageConsumePower=*/ 8, /*cachedUsageConsumePower=*/ 8, /*foregroundUsageTimeInMs=*/ 5, /*backgroundUsageTimeInMs=*/ 5); assertBatteryDiffEntry( resultDiffData.getSystemDiffEntryList().get(0), currentUserId, /*uid=*/ 3L, - ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 20.0, + ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 100.0, /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5, /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5, /*foregroundUsageTimeInMs=*/ 50, /*backgroundUsageTimeInMs=*/ 60); @@ -697,19 +697,19 @@ public class DataProcessorTest { resultDiffData = resultMap.get(1).get(DataProcessor.SELECTED_INDEX_ALL); assertBatteryDiffEntry( resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 4L, - ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0, + ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 66.66666666666666, /*foregroundUsageConsumePower=*/ 8, /*foregroundServiceUsageConsumePower=*/ 8, /*backgroundUsageConsumePower=*/ 8, /*cachedUsageConsumePower=*/ 8, /*foregroundUsageTimeInMs=*/ 5, /*backgroundUsageTimeInMs=*/ 5); assertBatteryDiffEntry( resultDiffData.getAppDiffEntryList().get(1), currentUserId, /*uid=*/ 2L, - ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 25.0, + ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 33.33333333333333, /*foregroundUsageConsumePower=*/ 9, /*foregroundServiceUsageConsumePower=*/ 4, /*backgroundUsageConsumePower=*/ 4, /*cachedUsageConsumePower=*/ 3, /*foregroundUsageTimeInMs=*/ 15, /*backgroundUsageTimeInMs=*/ 15); assertBatteryDiffEntry( resultDiffData.getSystemDiffEntryList().get(0), currentUserId, /*uid=*/ 3L, - ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 25.0, + ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 100.0, /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5, /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5, /*foregroundUsageTimeInMs=*/ 50, /*backgroundUsageTimeInMs=*/ 60); @@ -830,14 +830,14 @@ public class DataProcessorTest { .get(DataProcessor.SELECTED_INDEX_ALL); assertBatteryDiffEntry( resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 1L, - ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 25.0, + ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 100.0, /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5, /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5, /*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 10); assertBatteryDiffEntry( resultDiffData.getSystemDiffEntryList().get(0), BatteryUtils.UID_OTHER_USERS, /*uid=*/ BatteryUtils.UID_OTHER_USERS, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, - /*consumePercentage=*/ 75.0, + /*consumePercentage=*/ 100.0, /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0, /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0, /*foregroundUsageTimeInMs=*/ 0, /*backgroundUsageTimeInMs=*/ 0); @@ -1193,7 +1193,7 @@ public class DataProcessorTest { assertBatteryDiffEntry( batteryDiffData.getAppDiffEntryList().get(0), 0, /*uid=*/ 2L, - ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 25.0, + ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 100.0, /*foregroundUsageConsumePower=*/ 0.5, /*foregroundServiceUsageConsumePower=*/ 0, /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0, /*foregroundUsageTimeInMs=*/ 20, /*backgroundUsageTimeInMs=*/ 20); @@ -1205,7 +1205,7 @@ public class DataProcessorTest { /*foregroundUsageTimeInMs=*/ 30, /*backgroundUsageTimeInMs=*/ 40); assertBatteryDiffEntry( batteryDiffData.getSystemDiffEntryList().get(0), 0, /*uid=*/ 4L, - ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 75.0, + ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 100.0, /*foregroundUsageConsumePower=*/ 0.9, /*foregroundServiceUsageConsumePower=*/ 0.2, /*backgroundUsageConsumePower=*/ 0.3, /*cachedUsageConsumePower=*/ 0.1, /*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 10);