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();