summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorDmitri Plotnikov <dplotnikov@google.com>2021-05-20 15:32:19 -0700
committerDmitri Plotnikov <dplotnikov@google.com>2021-05-20 18:56:46 -0700
commita00309cdc2b8a42e5bcb7a67987718542ce62e60 (patch)
treea39cd151b84afe54e17a7a14996afb0f681ef8b6 /core/java
parent186fbcc208eb306a4e6461e360b133b0fc4cf0ab (diff)
Fix time-in-foreground to include PROCESS_STATE_FOREGROUND_SERVICE
Bug: 188656360 Test: atest FrameworksCoreTests:BatteryUsageStatsProviderTest Change-Id: I29312fb36e13181a57c68bb9968b103256f14077
Diffstat (limited to 'core/java')
-rw-r--r--core/java/com/android/internal/os/BatteryUsageStatsProvider.java31
1 files changed, 15 insertions, 16 deletions
diff --git a/core/java/com/android/internal/os/BatteryUsageStatsProvider.java b/core/java/com/android/internal/os/BatteryUsageStatsProvider.java
index d4d61256a7a3..3aaccdd71844 100644
--- a/core/java/com/android/internal/os/BatteryUsageStatsProvider.java
+++ b/core/java/com/android/internal/os/BatteryUsageStatsProvider.java
@@ -180,29 +180,28 @@ public class BatteryUsageStatsProvider {
}
private long getProcessForegroundTimeMs(BatteryStats.Uid uid, long realtimeUs) {
- final long topStateDurationMs = uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_TOP,
- realtimeUs, BatteryStats.STATS_SINCE_CHARGED) / 1000;
-
- long foregroundActivityDurationMs = 0;
+ final long topStateDurationUs = uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_TOP,
+ realtimeUs, BatteryStats.STATS_SINCE_CHARGED);
+ long foregroundActivityDurationUs = 0;
final BatteryStats.Timer foregroundActivityTimer = uid.getForegroundActivityTimer();
if (foregroundActivityTimer != null) {
- foregroundActivityDurationMs = foregroundActivityTimer.getTotalTimeLocked(realtimeUs,
- BatteryStats.STATS_SINCE_CHARGED) / 1000;
+ foregroundActivityDurationUs = foregroundActivityTimer.getTotalTimeLocked(realtimeUs,
+ BatteryStats.STATS_SINCE_CHARGED);
}
// Use the min value of STATE_TOP time and foreground activity time, since both of these
// times are imprecise
- final long foregroundDurationMs = Math.min(topStateDurationMs,
- foregroundActivityDurationMs);
-
- long foregroundServiceDurationMs = 0;
- final BatteryStats.Timer foregroundServiceTimer = uid.getForegroundServiceTimer();
- if (foregroundServiceTimer != null) {
- foregroundServiceDurationMs = foregroundServiceTimer.getTotalTimeLocked(realtimeUs,
- BatteryStats.STATS_SINCE_CHARGED) / 1000;
- }
+ long totalForegroundDurationUs = Math.min(topStateDurationUs, foregroundActivityDurationUs);
+
+ totalForegroundDurationUs += uid.getProcessStateTime(
+ BatteryStats.Uid.PROCESS_STATE_FOREGROUND, realtimeUs,
+ BatteryStats.STATS_SINCE_CHARGED);
+
+ totalForegroundDurationUs += uid.getProcessStateTime(
+ BatteryStats.Uid.PROCESS_STATE_FOREGROUND_SERVICE, realtimeUs,
+ BatteryStats.STATS_SINCE_CHARGED);
- return foregroundDurationMs + foregroundServiceDurationMs;
+ return totalForegroundDurationUs / 1000;
}
private long getProcessBackgroundTimeMs(BatteryStats.Uid uid, long realtimeUs) {