From 1237a70c9629629f5e99c2b8a0dd953f92e54b9b Mon Sep 17 00:00:00 2001 From: Zaiyue Xue Date: Mon, 24 Apr 2023 13:50:14 +0800 Subject: [PATCH] Replace Screen system component time with device screen on time Bug: 278022529 Fix: 278022529 Test: manual Change-Id: I95a107ea5c3c5e15893c0846c8fd83757e7b9358 --- .../settings/fuelgauge/batteryusage/DataProcessor.java | 5 +++++ .../fuelgauge/batteryusage/DataProcessorTest.java | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java index 78541c1d45e..a51e084c58b 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java +++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java @@ -1402,6 +1402,11 @@ public final class DataProcessor { currentEntry.mCachedUsageConsumePower, nextEntry.mCachedUsageConsumePower); } + if (selectedBatteryEntry.isSystemEntry() + && selectedBatteryEntry.mDrainType == BatteryConsumer.POWER_COMPONENT_SCREEN) { + // Replace Screen system component time with screen on time. + foregroundUsageTimeInMs = slotScreenOnTime; + } // Excludes entry since we don't have enough data to calculate. if (foregroundUsageTimeInMs == 0 && backgroundUsageTimeInMs == 0 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 d69eec78eb2..e2274e2d5e1 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java @@ -984,7 +984,7 @@ public final class DataProcessorTest { /*backgroundUsageTimeInMs=*/ 35L, /*isHidden=*/ false); entryMap.put(entry.getKey(), entry); entry = createBatteryHistEntry( - "package3", "label3", /*consumePower=*/ 10.0, + "package3", "Screen", /*consumePower=*/ 10.0, /*foregroundUsageConsumePower=*/ 4, /*foregroundServiceUsageConsumePower=*/ 2, /*backgroundUsageConsumePower=*/ 2, /*cachedUsageConsumePower=*/ 2, /*uid=*/ 3L, currentUserId, @@ -992,7 +992,7 @@ public final class DataProcessorTest { /*backgroundUsageTimeInMs=*/ 50L, /*isHidden=*/ false); entryMap.put(entry.getKey(), entry); entry = createBatteryHistEntry( - "package4", "label3", /*consumePower=*/ 15.0, + "package4", "label4", /*consumePower=*/ 15.0, /*foregroundUsageConsumePower=*/ 6, /*foregroundServiceUsageConsumePower=*/ 3, /*backgroundUsageConsumePower=*/ 3, /*cachedUsageConsumePower=*/ 3, /*uid=*/ 4L, currentUserId, @@ -1012,7 +1012,7 @@ public final class DataProcessorTest { /*backgroundUsageTimeInMs=*/ 40L, /*isHidden=*/ false); entryMap.put(entry.getKey(), entry); entry = createBatteryHistEntry( - "package3", "label3", /*consumePower=*/ 20.0, + "package3", "Screen", /*consumePower=*/ 20.0, /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5, /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5, /*uid=*/ 3L, currentUserId, @@ -1092,7 +1092,7 @@ public final class DataProcessorTest { ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 100.0, /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5, /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5, - /*foregroundUsageTimeInMs=*/ 50, /*backgroundUsageTimeInMs=*/ 60, + /*foregroundUsageTimeInMs=*/ 16, /*backgroundUsageTimeInMs=*/ 60, /*screenOnTimeInMs=*/ 9); resultDiffData = resultMap.get(0).get(DataProcessor.SELECTED_INDEX_ALL); assertBatteryDiffEntry( @@ -1122,7 +1122,7 @@ public final class DataProcessorTest { ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 100.0, /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5, /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5, - /*foregroundUsageTimeInMs=*/ 50, /*backgroundUsageTimeInMs=*/ 60, + /*foregroundUsageTimeInMs=*/ 16, /*backgroundUsageTimeInMs=*/ 60, /*screenOnTimeInMs=*/ 9); }