diff options
author | 2021-04-30 16:18:28 +0000 | |
---|---|---|
committer | 2021-04-30 16:18:28 +0000 | |
commit | 8d3b16568adb51a4b0340a126975ad3a5f3a6600 (patch) | |
tree | ebfc8f5faa376ec0e9ae38018f2a9bc546b37144 | |
parent | 1b8610d9a96a957074224a9d41831df6c0c7b8b8 (diff) | |
parent | 136f17dbc21ce3b560b09e6f1e9ed208e3ae2efe (diff) |
Merge "Fix "Screen on" time reporting" into sc-dev
-rw-r--r-- | services/core/java/com/android/server/power/DisplayGroupPowerStateMapper.java | 9 | ||||
-rw-r--r-- | services/core/java/com/android/server/power/PowerManagerService.java | 6 |
2 files changed, 14 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/power/DisplayGroupPowerStateMapper.java b/services/core/java/com/android/server/power/DisplayGroupPowerStateMapper.java index ea933246e3b2..52d92703c22f 100644 --- a/services/core/java/com/android/server/power/DisplayGroupPowerStateMapper.java +++ b/services/core/java/com/android/server/power/DisplayGroupPowerStateMapper.java @@ -141,6 +141,14 @@ public class DisplayGroupPowerStateMapper { return mDisplayGroupInfos.get(groupId).lastPowerOnTime; } + void setPoweringOnLocked(int groupId, boolean poweringOn) { + mDisplayGroupInfos.get(groupId).poweringOn = poweringOn; + } + + boolean isPoweringOnLocked(int groupId) { + return mDisplayGroupInfos.get(groupId).poweringOn; + } + /** * Returns the amalgamated wakefulness of all {@link DisplayGroup DisplayGroups}. * @@ -300,6 +308,7 @@ public class DisplayGroupPowerStateMapper { public int wakefulness; public boolean ready; public long lastPowerOnTime; + boolean poweringOn; public boolean sandmanSummoned; public long lastUserActivityTime; public long lastUserActivityTimeNoChangeLights; diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index c4aca6c18453..8991981e6e6d 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -1831,6 +1831,7 @@ public final class PowerManagerService extends SystemService setWakefulnessLocked(groupId, WAKEFULNESS_AWAKE, eventTime, uid, reason, opUid, opPackageName, details); mDisplayGroupPowerStateMapper.setLastPowerOnTimeLocked(groupId, eventTime); + mDisplayGroupPowerStateMapper.setPoweringOnLocked(groupId, true); } finally { Trace.traceEnd(Trace.TRACE_TAG_POWER); } @@ -3201,9 +3202,12 @@ public final class PowerManagerService extends SystemService final boolean displayReadyStateChanged = mDisplayGroupPowerStateMapper.setDisplayGroupReadyLocked(groupId, ready); - if (ready && displayReadyStateChanged + final boolean poweringOn = + mDisplayGroupPowerStateMapper.isPoweringOnLocked(groupId); + if (ready && displayReadyStateChanged && poweringOn && mDisplayGroupPowerStateMapper.getWakefulnessLocked( groupId) == WAKEFULNESS_AWAKE) { + mDisplayGroupPowerStateMapper.setPoweringOnLocked(groupId, false); Trace.asyncTraceEnd(Trace.TRACE_TAG_POWER, TRACE_SCREEN_ON, groupId); final int latencyMs = (int) (mClock.uptimeMillis() - mDisplayGroupPowerStateMapper.getLastPowerOnTimeLocked(groupId)); |