diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java index 97363e07489..c39686ac6d0 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java +++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java @@ -1547,6 +1547,9 @@ public final class DataProcessor { appUsageMap, selectedBatteryEntry.mUserId, selectedBatteryEntry.mPackageName)); + // Make sure the background + screen-on time will not exceed the threshold. + backgroundUsageTimeInMs = Math.min( + backgroundUsageTimeInMs, (long) TOTAL_HOURLY_TIME_THRESHOLD - screenOnTime); final BatteryDiffEntry currentBatteryDiffEntry = new BatteryDiffEntry( context, foregroundUsageTimeInMs, 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 a1caa2c88a9..b2c658302a5 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java @@ -1149,7 +1149,7 @@ public final class DataProcessorTest { assertThat(resultEntry.mForegroundUsageTimeInMs) .isEqualTo(Math.round(entry.mForegroundUsageTimeInMs * ratio)); assertThat(resultEntry.mBackgroundUsageTimeInMs) - .isEqualTo(Math.round(entry.mBackgroundUsageTimeInMs * ratio)); + .isEqualTo(0); assertThat(resultEntry.mConsumePower) .isEqualTo(entry.mConsumePower * ratio); assertThat(resultEntry.mForegroundUsageConsumePower)