From a708592e0a8c58d1994e67eec143cdc59674e900 Mon Sep 17 00:00:00 2001 From: Kuan Wang Date: Fri, 6 Jan 2023 11:53:26 +0800 Subject: [PATCH] Add logging for total screen-on time and foreground usage time. Test: manual Bug: 260965322 Change-Id: Ia1711fb73a6390e6a91289331daf3d88675731fe --- .../BatteryChartPreferenceController.java | 37 +++++++++++++++++++ .../fuelgauge/batteryusage/DataProcessor.java | 2 + 2 files changed, 39 insertions(+) diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java index 4b1bdf4eac3..004c8bf6638 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java @@ -233,6 +233,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll batteryCallbackData -> { mBatteryUsageMap = batteryCallbackData.getBatteryUsageMap(); mScreenOnTimeMap = batteryCallbackData.getDeviceScreenOnTime(); + logScreenUsageTime(); refreshUi(); }); Log.d(TAG, "getBatteryLevelData: " + batteryLevelData); @@ -495,6 +496,42 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll }; } + private void logScreenUsageTime() { + if (mBatteryUsageMap == null || mScreenOnTimeMap == null) { + return; + } + final long totalScreenOnTime = + mScreenOnTimeMap + .get(BatteryChartViewModel.SELECTED_INDEX_ALL) + .get(BatteryChartViewModel.SELECTED_INDEX_ALL); + mMetricsFeatureProvider.action( + mPrefContext, + SettingsEnums.ACTION_BATTERY_USAGE_SCREEN_ON_TIME, + (int) totalScreenOnTime); + mMetricsFeatureProvider.action( + mPrefContext, + SettingsEnums.ACTION_BATTERY_USAGE_FOREGROUND_USAGE_TIME, + (int) getTotalForegroundUsageTime()); + } + + private long getTotalForegroundUsageTime() { + if (mBatteryUsageMap == null) { + return 0; + } + final BatteryDiffData totalBatteryUsageDiffData = + mBatteryUsageMap + .get(BatteryChartViewModel.SELECTED_INDEX_ALL) + .get(BatteryChartViewModel.SELECTED_INDEX_ALL); + if (totalBatteryUsageDiffData == null) { + return 0; + } + long totalValue = 0; + for (final BatteryDiffEntry entry : totalBatteryUsageDiffData.getAppDiffEntryList()) { + totalValue += entry.mForegroundUsageTimeInMs; + } + return totalValue; + } + private boolean isBatteryLevelDataInOneDay() { return mHourlyViewModels != null && mHourlyViewModels.size() == 1; } diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java index 649adbe8069..97363e07489 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java +++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java @@ -1792,6 +1792,8 @@ public final class DataProcessor { systemAppsDiffEntry = new BatteryDiffEntry.SystemAppsBatteryDiffEntry(context); } systemAppsDiffEntry.mConsumePower += batteryDiffEntry.mConsumePower; + systemAppsDiffEntry.mForegroundUsageTimeInMs += + batteryDiffEntry.mForegroundUsageTimeInMs; systemAppsDiffEntry.setTotalConsumePower( batteryDiffEntry.getTotalConsumePower()); appListIterator.remove();