From 7fad47a8d753318b4cb5bcf241bee68ee25e8db0 Mon Sep 17 00:00:00 2001 From: Zaiyue Xue Date: Fri, 10 Feb 2023 15:34:52 +0800 Subject: [PATCH] Update battery usage app list filter logic: (1) Add app screen on time thrshold 100 ms. (2) Change app battery comsuption threshold from 0.1 mA to 1 mA. Apps meet one of above conditions will be shown. Bug: 264840285 Test: manual Change-Id: Icfb304f09c49248397350ebe55bf06f3eb82d639 --- .../settings/fuelgauge/PowerUsageFeatureProvider.java | 5 +++++ .../settings/fuelgauge/PowerUsageFeatureProviderImpl.java | 7 ++++++- .../settings/fuelgauge/batteryusage/BatteryDiffData.java | 6 +++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java index 66e09a9cc3b..339cabe52d1 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java @@ -35,6 +35,11 @@ public interface PowerUsageFeatureProvider { */ boolean isBatteryUsageEnabled(); + /** + * Returns a threshold (in milliseconds) for the minimal screen on time in battery usage list + */ + double getBatteryUsageListScreenOnTimeThresholdInMs(); + /** * Returns a threshold (mA) for the minimal comsume power in battery usage list */ diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java index e0af88a694e..5d1e2e56bab 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java @@ -71,9 +71,14 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider return true; } + @Override + public double getBatteryUsageListScreenOnTimeThresholdInMs() { + return 0; + } + @Override public double getBatteryUsageListConsumePowerThreshold() { - return 0.0; + return 0; } @Override diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java index 774e6d9b9c3..a07cfdde856 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java @@ -91,6 +91,8 @@ public class BatteryDiffData { private static void purgeBatteryDiffData( final PowerUsageFeatureProvider featureProvider, final List entries) { + final double screenOnTimeThresholdInMs = + featureProvider.getBatteryUsageListScreenOnTimeThresholdInMs(); final double consumePowerThreshold = featureProvider.getBatteryUsageListConsumePowerThreshold(); final Set hideSystemComponentSet = featureProvider.getHideSystemComponentSet(); @@ -100,10 +102,12 @@ public class BatteryDiffData { final Iterator iterator = entries.iterator(); while (iterator.hasNext()) { final BatteryDiffEntry entry = iterator.next(); + final long screenOnTimeInMs = entry.mScreenOnTimeInMs; final double comsumePower = entry.mConsumePower; final String packageName = entry.getPackageName(); final Integer componentId = entry.mBatteryHistEntry.mDrainType; - if (comsumePower < consumePowerThreshold + if ((screenOnTimeInMs < screenOnTimeThresholdInMs + && comsumePower < consumePowerThreshold) || ConvertUtils.FAKE_PACKAGE_NAME.equals(packageName) || hideSystemComponentSet.contains(componentId) || (packageName != null && hideApplicationSet.contains(packageName))) {