diff --git a/services/core/java/com/android/server/power/PowerGroup.java b/services/core/java/com/android/server/power/PowerGroup.java
index 51bd7453e2de5..9127484e89773 100644
--- a/services/core/java/com/android/server/power/PowerGroup.java
+++ b/services/core/java/com/android/server/power/PowerGroup.java
@@ -19,6 +19,7 @@ package com.android.server.power;
import static android.os.PowerManagerInternal.WAKEFULNESS_AWAKE;
import android.hardware.display.DisplayManagerInternal.DisplayPowerRequest;
+import android.view.Display;
/**
* Used to store power related requests to every display in a
@@ -33,9 +34,10 @@ public class PowerGroup {
private final DisplayPowerRequest mDisplayPowerRequest;
private final boolean mSupportsSandman;
+ private final int mGroupId;
- // True if DisplayManagerService has applied all the latest display states that were
- // requested for this group
+ // True if DisplayManagerService has applied all the latest display states that were requested
+ // for this group
private boolean mReady;
// True if this group is in the process of powering on
private boolean mPoweringOn;
@@ -49,8 +51,9 @@ public class PowerGroup {
private long mLastUserActivityTime;
private long mLastUserActivityTimeNoChangeLights;
- PowerGroup(DisplayPowerRequest displayPowerRequest, int wakefulness, boolean ready,
+ PowerGroup(int groupId, DisplayPowerRequest displayPowerRequest, int wakefulness, boolean ready,
boolean supportsSandman) {
+ this.mGroupId = groupId;
this.mDisplayPowerRequest = displayPowerRequest;
this.mWakefulness = wakefulness;
this.mReady = ready;
@@ -58,6 +61,7 @@ public class PowerGroup {
}
PowerGroup() {
+ this.mGroupId = Display.DEFAULT_DISPLAY_GROUP;
this.mDisplayPowerRequest = new DisplayPowerRequest();
this.mWakefulness = WAKEFULNESS_AWAKE;
this.mReady = false;
@@ -72,6 +76,10 @@ public class PowerGroup {
return mWakefulness;
}
+ int getGroupId() {
+ return mGroupId;
+ }
+
/**
* Sets the {@code wakefulness} value for this {@link PowerGroup}.
*
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index 29166b30d2b8c..6756061fcaec8 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -117,7 +117,6 @@ import com.android.server.UiThread;
import com.android.server.UserspaceRebootLogger;
import com.android.server.Watchdog;
import com.android.server.am.BatteryStatsService;
-import com.android.server.display.DisplayGroup;
import com.android.server.lights.LightsManager;
import com.android.server.lights.LogicalLight;
import com.android.server.policy.WindowManagerPolicy;
@@ -665,13 +664,14 @@ public final class PowerManagerService extends SystemService
// For now, only the default group supports sandman (dream/AOD).
final boolean supportsSandman = groupId == Display.DEFAULT_DISPLAY_GROUP;
final PowerGroup powerGroup = new PowerGroup(
+ groupId,
new DisplayPowerRequest(),
getGlobalWakefulnessLocked(),
/* ready= */ false,
supportsSandman);
mPowerGroups.append(groupId, powerGroup);
mDisplayGroupIds = ArrayUtils.appendInt(mDisplayGroupIds, groupId);
- onDisplayGroupEventLocked(DISPLAY_GROUP_ADDED, groupId);
+ onPowerGroupEventLocked(DISPLAY_GROUP_ADDED, powerGroup);
}
}
@@ -687,15 +687,18 @@ public final class PowerManagerService extends SystemService
Slog.e(TAG, "Tried to remove non-existent group:" + groupId);
return;
}
- mPowerGroups.delete(groupId);
- onDisplayGroupEventLocked(DISPLAY_GROUP_REMOVED, groupId);
+ onPowerGroupEventLocked(DISPLAY_GROUP_REMOVED, mPowerGroups.get(groupId));
}
}
@Override
public void onDisplayGroupChanged(int groupId) {
synchronized (mLock) {
- onDisplayGroupEventLocked(DISPLAY_GROUP_CHANGED, groupId);
+ if (!mPowerGroups.contains(groupId)) {
+ Slog.e(TAG, "Tried to change non-existent group: " + groupId);
+ return;
+ }
+ onPowerGroupEventLocked(DISPLAY_GROUP_CHANGED, mPowerGroups.get(groupId));
}
}
}
@@ -1150,7 +1153,7 @@ public final class PowerManagerService extends SystemService
updatePowerStateLocked();
if (sQuiescent) {
- sleepDisplayGroupNoUpdateLocked(Display.DEFAULT_DISPLAY_GROUP,
+ sleepDisplayGroupNoUpdateLocked(mPowerGroups.get(Display.DEFAULT_DISPLAY_GROUP),
mClock.uptimeMillis(),
PowerManager.GO_TO_SLEEP_REASON_QUIESCENT,
PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE, Process.SYSTEM_UID);
@@ -1507,7 +1510,7 @@ public final class PowerManagerService extends SystemService
opUid = wakeLock.mOwnerUid;
}
for (int id : mDisplayGroupIds) {
- wakeDisplayGroupNoUpdateLocked(id, mClock.uptimeMillis(),
+ wakeDisplayGroupNoUpdateLocked(mPowerGroups.get(id), mClock.uptimeMillis(),
PowerManager.WAKE_REASON_APPLICATION, wakeLock.mTag,
opUid, opPackageName, opUid);
}
@@ -1745,7 +1748,8 @@ public final class PowerManagerService extends SystemService
if (groupId == Display.INVALID_DISPLAY_GROUP) {
return;
}
- if (userActivityNoUpdateLocked(groupId, eventTime, event, flags, uid)) {
+ if (userActivityNoUpdateLocked(mPowerGroups.get(groupId), eventTime, event, flags,
+ uid)) {
updatePowerStateLocked();
}
}
@@ -1753,8 +1757,10 @@ public final class PowerManagerService extends SystemService
private void onUserAttention() {
synchronized (mLock) {
- if (userActivityNoUpdateLocked(Display.DEFAULT_DISPLAY_GROUP, mClock.uptimeMillis(),
- PowerManager.USER_ACTIVITY_EVENT_ATTENTION, 0 /* flags */,
+ if (userActivityNoUpdateLocked(mPowerGroups.get(Display.DEFAULT_DISPLAY_GROUP),
+ mClock.uptimeMillis(),
+ PowerManager.USER_ACTIVITY_EVENT_ATTENTION,
+ 0 /* flags */,
Process.SYSTEM_UID)) {
updatePowerStateLocked();
}
@@ -1765,7 +1771,7 @@ public final class PowerManagerService extends SystemService
private boolean userActivityNoUpdateLocked(long eventTime, int event, int flags, int uid) {
boolean updatePowerState = false;
for (int id : mDisplayGroupIds) {
- if (userActivityNoUpdateLocked(id, eventTime, event, flags, uid)) {
+ if (userActivityNoUpdateLocked(mPowerGroups.get(id), eventTime, event, flags, uid)) {
updatePowerState = true;
}
}
@@ -1774,10 +1780,10 @@ public final class PowerManagerService extends SystemService
}
@GuardedBy("mLock")
- private boolean userActivityNoUpdateLocked(int groupId, long eventTime, int event, int flags,
- int uid) {
+ private boolean userActivityNoUpdateLocked(final PowerGroup powerGroup, long eventTime,
+ int event, int flags, int uid) {
if (DEBUG_SPEW) {
- Slog.d(TAG, "userActivityNoUpdateLocked: groupId=" + groupId
+ Slog.d(TAG, "userActivityNoUpdateLocked: groupId=" + powerGroup.getGroupId()
+ ", eventTime=" + eventTime + ", event=" + event
+ ", flags=0x" + Integer.toHexString(flags) + ", uid=" + uid);
}
@@ -1801,7 +1807,7 @@ public final class PowerManagerService extends SystemService
mOverriddenTimeout = -1;
}
- final int wakefulness = mPowerGroups.get(groupId).getWakefulnessLocked();
+ final int wakefulness = powerGroup.getWakefulnessLocked();
if (wakefulness == WAKEFULNESS_ASLEEP
|| wakefulness == WAKEFULNESS_DOZING
|| (flags & PowerManager.USER_ACTIVITY_FLAG_INDIRECT) != 0) {
@@ -1811,11 +1817,9 @@ public final class PowerManagerService extends SystemService
maybeUpdateForegroundProfileLastActivityLocked(eventTime);
if ((flags & PowerManager.USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS) != 0) {
- if (eventTime
- > mPowerGroups.get(groupId).getLastUserActivityTimeNoChangeLightsLocked()
- && eventTime > mPowerGroups.get(groupId).getLastUserActivityTimeLocked()) {
- mPowerGroups.get(groupId).setLastUserActivityTimeNoChangeLightsLocked(
- eventTime);
+ if (eventTime > powerGroup.getLastUserActivityTimeNoChangeLightsLocked()
+ && eventTime > powerGroup.getLastUserActivityTimeLocked()) {
+ powerGroup.setLastUserActivityTimeNoChangeLightsLocked(eventTime);
mDirty |= DIRTY_USER_ACTIVITY;
if (event == PowerManager.USER_ACTIVITY_EVENT_BUTTON) {
mDirty |= DIRTY_QUIESCENT;
@@ -1824,8 +1828,8 @@ public final class PowerManagerService extends SystemService
return true;
}
} else {
- if (eventTime > mPowerGroups.get(groupId).getLastUserActivityTimeLocked()) {
- mPowerGroups.get(groupId).setLastUserActivityTimeLocked(eventTime);
+ if (eventTime > powerGroup.getLastUserActivityTimeLocked()) {
+ powerGroup.setLastUserActivityTimeLocked(eventTime);
mDirty |= DIRTY_USER_ACTIVITY;
if (event == PowerManager.USER_ACTIVITY_EVENT_BUTTON) {
mDirty |= DIRTY_QUIESCENT;
@@ -1850,16 +1854,17 @@ public final class PowerManagerService extends SystemService
private void wakeDisplayGroup(int groupId, long eventTime, @WakeReason int reason,
String details, int uid, String opPackageName, int opUid) {
synchronized (mLock) {
- if (wakeDisplayGroupNoUpdateLocked(groupId, eventTime, reason, details, uid,
- opPackageName, opUid)) {
+ if (wakeDisplayGroupNoUpdateLocked(mPowerGroups.get(groupId), eventTime, reason,
+ details, uid, opPackageName, opUid)) {
updatePowerStateLocked();
}
}
}
@GuardedBy("mLock")
- private boolean wakeDisplayGroupNoUpdateLocked(int groupId, long eventTime,
+ private boolean wakeDisplayGroupNoUpdateLocked(final PowerGroup powerGroup, long eventTime,
@WakeReason int reason, String details, int uid, String opPackageName, int opUid) {
+ final int groupId = powerGroup.getGroupId();
if (DEBUG_SPEW) {
Slog.d(TAG, "wakeDisplayGroupNoUpdateLocked: eventTime=" + eventTime
+ ", groupId=" + groupId + ", uid=" + uid);
@@ -1869,7 +1874,7 @@ public final class PowerManagerService extends SystemService
return false;
}
- final int currentState = mPowerGroups.get(groupId).getWakefulnessLocked();
+ final int currentState = powerGroup.getWakefulnessLocked();
if (currentState == WAKEFULNESS_AWAKE) {
if (!mBootCompleted && sQuiescent) {
mDirty |= DIRTY_QUIESCENT;
@@ -1892,9 +1897,8 @@ public final class PowerManagerService extends SystemService
LatencyTracker.getInstance(mContext)
.onActionStart(ACTION_TURN_ON_SCREEN, String.valueOf(groupId));
- setWakefulnessLocked(groupId, WAKEFULNESS_AWAKE, eventTime, uid, reason, opUid,
+ setWakefulnessLocked(powerGroup, WAKEFULNESS_AWAKE, eventTime, uid, reason, opUid,
opPackageName, details);
- PowerGroup powerGroup = mPowerGroups.get(groupId);
powerGroup.setLastPowerOnTimeLocked(eventTime);
powerGroup.setIsPoweringOnLocked(true);
} finally {
@@ -1907,19 +1911,20 @@ public final class PowerManagerService extends SystemService
private void sleepDisplayGroup(int groupId, long eventTime, int reason, int flags,
int uid) {
synchronized (mLock) {
- if (sleepDisplayGroupNoUpdateLocked(groupId, eventTime, reason, flags, uid)) {
+ if (sleepDisplayGroupNoUpdateLocked(mPowerGroups.get(groupId), eventTime, reason, flags,
+ uid)) {
updatePowerStateLocked();
}
}
}
@GuardedBy("mLock")
- private boolean sleepDisplayGroupNoUpdateLocked(int groupId, long eventTime, int reason,
- int flags, int uid) {
+ private boolean sleepDisplayGroupNoUpdateLocked(final PowerGroup powerGroup, long eventTime,
+ int reason, int flags, int uid) {
if (DEBUG_SPEW) {
Slog.d(TAG, "sleepDisplayGroupNoUpdateLocked: eventTime=" + eventTime
- + ", groupId=" + groupId + ", reason=" + reason + ", flags=" + flags
- + ", uid=" + uid);
+ + ", groupId=" + powerGroup.getGroupId() + ", reason=" + reason
+ + ", flags=" + flags + ", uid=" + uid);
}
if (eventTime < mLastWakeTime
@@ -1929,7 +1934,7 @@ public final class PowerManagerService extends SystemService
return false;
}
- final int wakefulness = mPowerGroups.get(groupId).getWakefulnessLocked();
+ final int wakefulness = powerGroup.getWakefulnessLocked();
if (!PowerManagerInternal.isInteractive(wakefulness)) {
return false;
}
@@ -1939,14 +1944,14 @@ public final class PowerManagerService extends SystemService
reason = Math.min(PowerManager.GO_TO_SLEEP_REASON_MAX,
Math.max(reason, PowerManager.GO_TO_SLEEP_REASON_MIN));
Slog.i(TAG, "Powering off display group due to "
- + PowerManager.sleepReasonToString(reason) + " (groupId= " + groupId
- + ", uid= " + uid + ")...");
+ + PowerManager.sleepReasonToString(reason)
+ + " (groupId= " + powerGroup.getGroupId() + ", uid= " + uid + ")...");
- mPowerGroups.get(groupId).setSandmanSummonedLocked(/* isSandmanSummoned= */ true);
- setWakefulnessLocked(groupId, WAKEFULNESS_DOZING, eventTime, uid, reason,
+ powerGroup.setSandmanSummonedLocked(/* isSandmanSummoned= */ true);
+ setWakefulnessLocked(powerGroup, WAKEFULNESS_DOZING, eventTime, uid, reason,
/* opUid= */ 0, /* opPackageName= */ null, /* details= */ null);
if ((flags & PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE) != 0) {
- reallySleepDisplayGroupNoUpdateLocked(groupId, eventTime, uid);
+ reallySleepDisplayGroupNoUpdateLocked(powerGroup, eventTime, uid);
}
} finally {
Trace.traceEnd(Trace.TRACE_TAG_POWER);
@@ -1956,14 +1961,15 @@ public final class PowerManagerService extends SystemService
private void dreamDisplayGroup(int groupId, long eventTime, int uid) {
synchronized (mLock) {
- if (dreamDisplayGroupNoUpdateLocked(groupId, eventTime, uid)) {
+ if (dreamDisplayGroupNoUpdateLocked(mPowerGroups.get(groupId), eventTime, uid)) {
updatePowerStateLocked();
}
}
}
@GuardedBy("mLock")
- private boolean dreamDisplayGroupNoUpdateLocked(int groupId, long eventTime, int uid) {
+ private boolean dreamDisplayGroupNoUpdateLocked(final PowerGroup powerGroup, long eventTime,
+ int uid) {
if (DEBUG_SPEW) {
Slog.d(TAG, "dreamDisplayGroupNoUpdateLocked: eventTime=" + eventTime
+ ", uid=" + uid);
@@ -1976,11 +1982,12 @@ public final class PowerManagerService extends SystemService
Trace.traceBegin(Trace.TRACE_TAG_POWER, "napDisplayGroup");
try {
- Slog.i(TAG, "Napping display group (groupId=" + groupId + ", uid=" + uid + ")...");
+ Slog.i(TAG, "Napping display group (groupId=" + powerGroup.getGroupId() + ", uid=" + uid
+ + ")...");
- mPowerGroups.get(groupId).setSandmanSummonedLocked(/* isSandmanSummoned= */ true);
- setWakefulnessLocked(groupId, WAKEFULNESS_DREAMING, eventTime, uid, /* reason= */
- 0, /* opUid= */ 0, /* opPackageName= */ null, /* details= */ null);
+ powerGroup.setSandmanSummonedLocked(/* isSandmanSummoned= */ true);
+ setWakefulnessLocked(powerGroup, WAKEFULNESS_DREAMING, eventTime, uid,
+ /* reason= */0, /* opUid= */ 0, /* opPackageName= */ null, /* details= */ null);
} finally {
Trace.traceEnd(Trace.TRACE_TAG_POWER);
@@ -1989,7 +1996,8 @@ public final class PowerManagerService extends SystemService
}
@GuardedBy("mLock")
- private boolean reallySleepDisplayGroupNoUpdateLocked(int groupId, long eventTime, int uid) {
+ private boolean reallySleepDisplayGroupNoUpdateLocked(final PowerGroup powerGroup,
+ long eventTime, int uid) {
if (DEBUG_SPEW) {
Slog.d(TAG, "reallySleepDisplayGroupNoUpdateLocked: eventTime=" + eventTime
+ ", uid=" + uid);
@@ -1997,16 +2005,18 @@ public final class PowerManagerService extends SystemService
if (eventTime < mLastWakeTime || getWakefulnessLocked() == WAKEFULNESS_ASLEEP
|| !mBootCompleted || !mSystemReady
- || mPowerGroups.get(groupId).getWakefulnessLocked()
+ || powerGroup.getWakefulnessLocked()
== WAKEFULNESS_ASLEEP) {
return false;
}
Trace.traceBegin(Trace.TRACE_TAG_POWER, "reallySleepDisplayGroup");
try {
- Slog.i(TAG, "Sleeping display group (groupId=" + groupId + ", uid=" + uid + ")...");
+ Slog.i(TAG,
+ "Sleeping display group (groupId=" + powerGroup.getGroupId() + ", uid=" + uid
+ + ")...");
- setWakefulnessLocked(groupId, WAKEFULNESS_ASLEEP, eventTime, uid,
+ setWakefulnessLocked(powerGroup, WAKEFULNESS_ASLEEP, eventTime, uid,
PowerManager.GO_TO_SLEEP_REASON_TIMEOUT, /* opUid= */ 0,
/* opPackageName= */ null, /* details= */ null);
} finally {
@@ -2019,14 +2029,21 @@ public final class PowerManagerService extends SystemService
@GuardedBy("mLock")
void setWakefulnessLocked(int groupId, int wakefulness, long eventTime, int uid, int reason,
int opUid, String opPackageName, String details) {
- if (mPowerGroups.get(groupId).setWakefulnessLocked(wakefulness)) {
+ setWakefulnessLocked(mPowerGroups.get(groupId), wakefulness, eventTime, uid, reason, opUid,
+ opPackageName, details);
+ }
+
+ @GuardedBy("mLock")
+ private void setWakefulnessLocked(final PowerGroup powerGroup, int wakefulness, long eventTime,
+ int uid, int reason, int opUid, String opPackageName, String details) {
+ if (powerGroup.setWakefulnessLocked(wakefulness)) {
mDirty |= DIRTY_DISPLAY_GROUP_WAKEFULNESS;
setGlobalWakefulnessLocked(getGlobalWakefulnessLocked(),
eventTime, reason, uid, opUid, opPackageName, details);
if (wakefulness == WAKEFULNESS_AWAKE) {
// Kick user activity to prevent newly awake group from timing out instantly.
- userActivityNoUpdateLocked(
- groupId, eventTime, PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, uid);
+ userActivityNoUpdateLocked(powerGroup, eventTime,
+ PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, uid);
}
}
}
@@ -2138,9 +2155,9 @@ public final class PowerManagerService extends SystemService
}
/**
- * Returns the amalgamated wakefulness of all {@link DisplayGroup DisplayGroups}.
+ * Returns the amalgamated wakefulness of all {@link PowerGroup PowerGroups}.
*
- *
This will be the highest wakeful state of all {@link DisplayGroup DisplayGroups}; ordered
+ *
This will be the highest wakeful state of all {@link PowerGroup PowerGroups}; ordered
* from highest to lowest:
*
* - {@link PowerManagerInternal#WAKEFULNESS_AWAKE}
@@ -2171,14 +2188,18 @@ public final class PowerManagerService extends SystemService
}
@GuardedBy("mLock")
- void onDisplayGroupEventLocked(int event, int groupId) {
+ void onPowerGroupEventLocked(int event, PowerGroup powerGroup) {
+ final int groupId = powerGroup.getGroupId();
+ if (event == DisplayGroupPowerChangeListener.DISPLAY_GROUP_REMOVED) {
+ mPowerGroups.remove(groupId);
+ }
final int oldWakefulness = getWakefulnessLocked();
final int newWakefulness = getGlobalWakefulnessLocked();
if (event == DisplayGroupPowerChangeListener.DISPLAY_GROUP_ADDED
&& newWakefulness == WAKEFULNESS_AWAKE) {
// Kick user activity to prevent newly added group from timing out instantly.
- userActivityNoUpdateLocked(groupId, mClock.uptimeMillis(),
+ userActivityNoUpdateLocked(powerGroup, mClock.uptimeMillis(),
PowerManager.USER_ACTIVITY_EVENT_OTHER, /* flags= */ 0, Process.SYSTEM_UID);
}
@@ -2380,13 +2401,13 @@ public final class PowerManagerService extends SystemService
final long now = mClock.uptimeMillis();
if (shouldWakeUpWhenPluggedOrUnpluggedLocked(wasPowered, oldPlugType,
dockedOnWirelessCharger)) {
- wakeDisplayGroupNoUpdateLocked(Display.DEFAULT_DISPLAY_GROUP, now,
- PowerManager.WAKE_REASON_PLUGGED_IN,
+ wakeDisplayGroupNoUpdateLocked(mPowerGroups.get(Display.DEFAULT_DISPLAY_GROUP),
+ now, PowerManager.WAKE_REASON_PLUGGED_IN,
"android.server.power:PLUGGED:" + mIsPowered, Process.SYSTEM_UID,
mContext.getOpPackageName(), Process.SYSTEM_UID);
}
- userActivityNoUpdateLocked(Display.DEFAULT_DISPLAY_GROUP, now,
+ userActivityNoUpdateLocked(mPowerGroups.get(Display.DEFAULT_DISPLAY_GROUP), now,
PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, Process.SYSTEM_UID);
// only play charging sounds if boot is completed so charging sounds don't play
@@ -2502,13 +2523,14 @@ public final class PowerManagerService extends SystemService
continue;
}
+ final PowerGroup powerGroup = mPowerGroups.get(groupId);
final int wakeLockFlags = getWakeLockSummaryFlags(wakeLock);
mWakeLockSummary |= wakeLockFlags;
if (groupId != Display.INVALID_DISPLAY_GROUP) {
- int wakeLockSummary = mPowerGroups.get(groupId).getWakeLockSummaryLocked();
+ int wakeLockSummary = powerGroup.getWakeLockSummaryLocked();
wakeLockSummary |= wakeLockFlags;
- mPowerGroups.get(groupId).setWakeLockSummaryLocked(wakeLockSummary);
+ powerGroup.setWakeLockSummaryLocked(wakeLockSummary);
} else {
invalidGroupWakeLockSummary |= wakeLockFlags;
}
@@ -2522,11 +2544,11 @@ public final class PowerManagerService extends SystemService
}
for (int groupId : mDisplayGroupIds) {
+ final PowerGroup powerGroup = mPowerGroups.get(groupId);
final int wakeLockSummary = adjustWakeLockSummary(
- mPowerGroups.get(groupId).getWakefulnessLocked(),
- invalidGroupWakeLockSummary
- | mPowerGroups.get(groupId).getWakeLockSummaryLocked());
- mPowerGroups.get(groupId).setWakeLockSummaryLocked(wakeLockSummary);
+ powerGroup.getWakefulnessLocked(),
+ invalidGroupWakeLockSummary | powerGroup.getWakeLockSummaryLocked());
+ powerGroup.setWakeLockSummaryLocked(wakeLockSummary);
}
mWakeLockSummary = adjustWakeLockSummary(getWakefulnessLocked(),
@@ -2687,11 +2709,11 @@ public final class PowerManagerService extends SystemService
for (int groupId : mDisplayGroupIds) {
int groupUserActivitySummary = 0;
long groupNextTimeout = 0;
- if (mPowerGroups.get(groupId).getWakefulnessLocked() != WAKEFULNESS_ASLEEP) {
- final long lastUserActivityTime =
- mPowerGroups.get(groupId).getLastUserActivityTimeLocked();
+ final PowerGroup powerGroup = mPowerGroups.get(groupId);
+ if (powerGroup.getWakefulnessLocked() != WAKEFULNESS_ASLEEP) {
+ final long lastUserActivityTime = powerGroup.getLastUserActivityTimeLocked();
final long lastUserActivityTimeNoChangeLights =
- mPowerGroups.get(groupId).getLastUserActivityTimeNoChangeLightsLocked();
+ powerGroup.getLastUserActivityTimeNoChangeLightsLocked();
if (lastUserActivityTime >= mLastWakeTime) {
groupNextTimeout = lastUserActivityTime + screenOffTimeout - screenDimDuration;
if (now < groupNextTimeout) {
@@ -2708,7 +2730,7 @@ public final class PowerManagerService extends SystemService
groupNextTimeout = lastUserActivityTimeNoChangeLights + screenOffTimeout;
if (now < groupNextTimeout) {
final DisplayPowerRequest displayPowerRequest =
- mPowerGroups.get(groupId).getDisplayPowerRequestLocked();
+ powerGroup.getDisplayPowerRequestLocked();
if (displayPowerRequest.policy == DisplayPowerRequest.POLICY_BRIGHT
|| displayPowerRequest.policy == DisplayPowerRequest.POLICY_VR) {
groupUserActivitySummary = USER_ACTIVITY_SCREEN_BRIGHT;
@@ -2749,7 +2771,7 @@ public final class PowerManagerService extends SystemService
}
if ((groupUserActivitySummary & USER_ACTIVITY_SCREEN_BRIGHT) != 0
- && (mPowerGroups.get(groupId).getWakeLockSummaryLocked()
+ && (powerGroup.getWakeLockSummaryLocked()
& WAKE_LOCK_STAY_AWAKE) == 0) {
groupNextTimeout = mAttentionDetector.updateUserActivity(groupNextTimeout,
screenDimDuration);
@@ -2764,12 +2786,11 @@ public final class PowerManagerService extends SystemService
}
}
- mPowerGroups.get(groupId).setUserActivitySummaryLocked(groupUserActivitySummary);
+ powerGroup.setUserActivitySummaryLocked(groupUserActivitySummary);
if (DEBUG_SPEW) {
Slog.d(TAG, "updateUserActivitySummaryLocked: groupId=" + groupId
- + ", mWakefulness=" + wakefulnessToString(
- mPowerGroups.get(groupId).getWakefulnessLocked())
+ + ", mWakefulness=" + wakefulnessToString(powerGroup.getWakefulnessLocked())
+ ", mUserActivitySummary=0x" + Integer.toHexString(
groupUserActivitySummary)
+ ", nextTimeout=" + TimeUtils.formatUptime(groupNextTimeout));
@@ -2880,12 +2901,11 @@ public final class PowerManagerService extends SystemService
}
@GuardedBy("mLock")
- private boolean isAttentiveTimeoutExpired(int groupId, long now) {
+ private boolean isAttentiveTimeoutExpired(final PowerGroup powerGroup, long now) {
long attentiveTimeout = getAttentiveTimeoutLocked();
// Attentive state only applies to the default display group.
- return groupId == Display.DEFAULT_DISPLAY_GROUP && attentiveTimeout >= 0
- && now >= mPowerGroups.get(groupId).getLastUserActivityTimeLocked()
- + attentiveTimeout;
+ return powerGroup.getGroupId() == Display.DEFAULT_DISPLAY_GROUP && attentiveTimeout >= 0
+ && now >= powerGroup.getLastUserActivityTimeLocked() + attentiveTimeout;
}
/**
@@ -2990,28 +3010,31 @@ public final class PowerManagerService extends SystemService
if ((dirty & (DIRTY_WAKE_LOCKS | DIRTY_USER_ACTIVITY | DIRTY_BOOT_COMPLETED
| DIRTY_WAKEFULNESS | DIRTY_STAY_ON | DIRTY_PROXIMITY_POSITIVE
| DIRTY_DOCK_STATE | DIRTY_ATTENTIVE | DIRTY_SETTINGS
- | DIRTY_SCREEN_BRIGHTNESS_BOOST)) != 0) {
- final long time = mClock.uptimeMillis();
- for (int id : mDisplayGroupIds) {
- if (mPowerGroups.get(id).getWakefulnessLocked() == WAKEFULNESS_AWAKE
- && isItBedTimeYetLocked(id)) {
- if (DEBUG_SPEW) {
- Slog.d(TAG, "updateWakefulnessLocked: Bed time for group " + id);
- }
- if (isAttentiveTimeoutExpired(id, time)) {
- if (DEBUG) {
- Slog.i(TAG, "Going to sleep now due to long user inactivity");
- }
- changed = sleepDisplayGroupNoUpdateLocked(id, time,
- PowerManager.GO_TO_SLEEP_REASON_INATTENTIVE,
- PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE, Process.SYSTEM_UID);
- } else if (shouldNapAtBedTimeLocked()) {
- changed = dreamDisplayGroupNoUpdateLocked(id, time, Process.SYSTEM_UID);
- } else {
- changed = sleepDisplayGroupNoUpdateLocked(id, time,
- PowerManager.GO_TO_SLEEP_REASON_TIMEOUT, 0, Process.SYSTEM_UID);
- }
+ | DIRTY_SCREEN_BRIGHTNESS_BOOST)) == 0) {
+ return changed;
+ }
+ final long time = mClock.uptimeMillis();
+ for (int id : mDisplayGroupIds) {
+ final PowerGroup powerGroup = mPowerGroups.get(id);
+ if (!(powerGroup.getWakefulnessLocked() == WAKEFULNESS_AWAKE
+ && isItBedTimeYetLocked(powerGroup))) {
+ continue;
+ }
+ if (DEBUG_SPEW) {
+ Slog.d(TAG, "updateWakefulnessLocked: Bed time for group " + id);
+ }
+ if (isAttentiveTimeoutExpired(powerGroup, time)) {
+ if (DEBUG) {
+ Slog.i(TAG, "Going to sleep now due to long user inactivity");
}
+ changed = sleepDisplayGroupNoUpdateLocked(powerGroup, time,
+ PowerManager.GO_TO_SLEEP_REASON_INATTENTIVE,
+ PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE, Process.SYSTEM_UID);
+ } else if (shouldNapAtBedTimeLocked()) {
+ changed = dreamDisplayGroupNoUpdateLocked(powerGroup, time, Process.SYSTEM_UID);
+ } else {
+ changed = sleepDisplayGroupNoUpdateLocked(powerGroup, time,
+ PowerManager.GO_TO_SLEEP_REASON_TIMEOUT, 0, Process.SYSTEM_UID);
}
}
return changed;
@@ -3029,39 +3052,38 @@ public final class PowerManagerService extends SystemService
}
/**
- * Returns true if the DisplayGroup with the provided {@code groupId} should go to sleep now.
+ * Returns true if the provided {@link PowerGroup} should go to sleep now.
* Also used when exiting a dream to determine whether we should go back to being fully awake or
* else go to sleep for good.
*/
@GuardedBy("mLock")
- private boolean isItBedTimeYetLocked(int groupId) {
+ private boolean isItBedTimeYetLocked(PowerGroup powerGroup) {
if (!mBootCompleted) {
return false;
}
long now = mClock.uptimeMillis();
- if (isAttentiveTimeoutExpired(groupId, now)) {
+ if (isAttentiveTimeoutExpired(powerGroup, now)) {
return !isBeingKeptFromInattentiveSleepLocked();
} else {
- return !isBeingKeptAwakeLocked(groupId);
+ return !isBeingKeptAwakeLocked(powerGroup);
}
}
/**
- * Returns true if the DisplayGroup with the provided {@code groupId} is being kept awake by a
- * wake lock, user activity or the stay on while powered setting. We also keep the phone awake
- * when the proximity sensor returns a positive result so that the device does not lock while in
- * a phone call. This function only controls whether the device will go to sleep or dream which
- * is independent of whether it will be allowed to suspend.
+ * Returns true if the provided {@link PowerGroup} is being kept awake by a wake lock, user
+ * activity or the stay on while powered setting. We also keep the phone awake when the
+ * proximity sensor returns a positive result so that the device does not lock while in a phone
+ * call. This function only controls whether the device will go to sleep or dream which is
+ * independent of whether it will be allowed to suspend.
*/
@GuardedBy("mLock")
- private boolean isBeingKeptAwakeLocked(int groupId) {
+ private boolean isBeingKeptAwakeLocked(final PowerGroup powerGroup) {
return mStayOn
|| mProximityPositive
- || (mPowerGroups.get(groupId).getWakeLockSummaryLocked() & WAKE_LOCK_STAY_AWAKE)
- != 0
- || (mPowerGroups.get(groupId).getUserActivitySummaryLocked() & (
- USER_ACTIVITY_SCREEN_BRIGHT | USER_ACTIVITY_SCREEN_DIM)) != 0
+ || (powerGroup.getWakeLockSummaryLocked() & WAKE_LOCK_STAY_AWAKE) != 0
+ || (powerGroup.getUserActivitySummaryLocked() & (
+ USER_ACTIVITY_SCREEN_BRIGHT | USER_ACTIVITY_SCREEN_DIM)) != 0
|| mScreenBrightnessBoostInProgress;
}
@@ -3130,12 +3152,12 @@ public final class PowerManagerService extends SystemService
// Group has been removed.
return;
}
- wakefulness = mPowerGroups.get(groupId).getWakefulnessLocked();
+ final PowerGroup powerGroup = mPowerGroups.get(groupId);
+ wakefulness = powerGroup.getWakefulnessLocked();
if ((wakefulness == WAKEFULNESS_DREAMING || wakefulness == WAKEFULNESS_DOZING) &&
- mPowerGroups.get(groupId).isSandmanSummonedLocked()
- && mPowerGroups.get(groupId).isReadyLocked()) {
- startDreaming = canDreamLocked(groupId) || canDozeLocked();
- mPowerGroups.get(groupId).setSandmanSummonedLocked(/* isSandmanSummoned= */ false);
+ powerGroup.isSandmanSummonedLocked() && powerGroup.isReadyLocked()) {
+ startDreaming = canDreamLocked(powerGroup) || canDozeLocked();
+ powerGroup.setSandmanSummonedLocked(/* isSandmanSummoned= */ false);
} else {
startDreaming = false;
}
@@ -3179,19 +3201,20 @@ public final class PowerManagerService extends SystemService
// If preconditions changed, wait for the next iteration to determine
// whether the dream should continue (or be restarted).
- if (mPowerGroups.get(groupId).isSandmanSummonedLocked()
- || mPowerGroups.get(groupId).getWakefulnessLocked() != wakefulness) {
+ final PowerGroup powerGroup = mPowerGroups.get(groupId);
+ if (powerGroup.isSandmanSummonedLocked()
+ || powerGroup.getWakefulnessLocked() != wakefulness) {
return; // wait for next cycle
}
// Determine whether the dream should continue.
long now = mClock.uptimeMillis();
if (wakefulness == WAKEFULNESS_DREAMING) {
- if (isDreaming && canDreamLocked(groupId)) {
+ if (isDreaming && canDreamLocked(powerGroup)) {
if (mDreamsBatteryLevelDrainCutoffConfig >= 0
&& mBatteryLevel < mBatteryLevelWhenDreamStarted
- mDreamsBatteryLevelDrainCutoffConfig
- && !isBeingKeptAwakeLocked(groupId)) {
+ && !isBeingKeptAwakeLocked(powerGroup)) {
// If the user activity timeout expired and the battery appears
// to be draining faster than it is charging then stop dreaming
// and go to sleep.
@@ -3206,13 +3229,14 @@ public final class PowerManagerService extends SystemService
}
// Dream has ended or will be stopped. Update the power state.
- if (isItBedTimeYetLocked(groupId)) {
- final int flags = isAttentiveTimeoutExpired(groupId, now)
+ if (isItBedTimeYetLocked(powerGroup)) {
+ final int flags = isAttentiveTimeoutExpired(powerGroup, now)
? PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE : 0;
- sleepDisplayGroupNoUpdateLocked(groupId, now,
+ sleepDisplayGroupNoUpdateLocked(powerGroup, now,
PowerManager.GO_TO_SLEEP_REASON_TIMEOUT, flags, Process.SYSTEM_UID);
} else {
- wakeDisplayGroupNoUpdateLocked(groupId, now, PowerManager.WAKE_REASON_UNKNOWN,
+ wakeDisplayGroupNoUpdateLocked(powerGroup, now,
+ PowerManager.WAKE_REASON_UNKNOWN,
"android.server.power:DREAM_FINISHED", Process.SYSTEM_UID,
mContext.getOpPackageName(), Process.SYSTEM_UID);
}
@@ -3223,7 +3247,7 @@ public final class PowerManagerService extends SystemService
}
// Doze has ended or will be stopped. Update the power state.
- reallySleepDisplayGroupNoUpdateLocked(groupId, now, Process.SYSTEM_UID);
+ reallySleepDisplayGroupNoUpdateLocked(powerGroup, now, Process.SYSTEM_UID);
updatePowerStateLocked();
}
}
@@ -3238,21 +3262,19 @@ public final class PowerManagerService extends SystemService
* Returns true if the {@code groupId} is allowed to dream in its current state.
*/
@GuardedBy("mLock")
- private boolean canDreamLocked(int groupId) {
- final DisplayPowerRequest displayPowerRequest =
- mPowerGroups.get(groupId).getDisplayPowerRequestLocked();
+ private boolean canDreamLocked(final PowerGroup powerGroup) {
+ final DisplayPowerRequest displayPowerRequest = powerGroup.getDisplayPowerRequestLocked();
if (!mBootCompleted
|| getWakefulnessLocked() != WAKEFULNESS_DREAMING
|| !mDreamsSupportedConfig
|| !mDreamsEnabledSetting
|| !displayPowerRequest.isBrightOrDim()
|| displayPowerRequest.isVr()
- || (mPowerGroups.get(groupId).getUserActivitySummaryLocked() & (
- USER_ACTIVITY_SCREEN_BRIGHT | USER_ACTIVITY_SCREEN_DIM
- | USER_ACTIVITY_SCREEN_DREAM)) == 0) {
+ || (powerGroup.getUserActivitySummaryLocked() & (USER_ACTIVITY_SCREEN_BRIGHT
+ | USER_ACTIVITY_SCREEN_DIM | USER_ACTIVITY_SCREEN_DREAM)) == 0) {
return false;
}
- if (!isBeingKeptAwakeLocked(groupId)) {
+ if (!isBeingKeptAwakeLocked(powerGroup)) {
if (!mIsPowered && !mDreamsEnabledOnBatteryConfig) {
return false;
}
@@ -3303,9 +3325,10 @@ public final class PowerManagerService extends SystemService
}
for (final int groupId : mDisplayGroupIds) {
+ final PowerGroup powerGroup = mPowerGroups.get(groupId);
final DisplayPowerRequest displayPowerRequest =
- mPowerGroups.get(groupId).getDisplayPowerRequestLocked();
- displayPowerRequest.policy = getDesiredScreenPolicyLocked(groupId);
+ powerGroup.getDisplayPowerRequestLocked();
+ displayPowerRequest.policy = getDesiredScreenPolicyLocked(powerGroup);
// Determine appropriate screen brightness and auto-brightness adjustments.
final boolean autoBrightness;
@@ -3334,7 +3357,7 @@ public final class PowerManagerService extends SystemService
if (displayPowerRequest.policy == DisplayPowerRequest.POLICY_DOZE) {
displayPowerRequest.dozeScreenState = mDozeScreenStateOverrideFromDreamManager;
- if ((mPowerGroups.get(groupId).getWakeLockSummaryLocked() & WAKE_LOCK_DRAW) != 0
+ if ((powerGroup.getWakeLockSummaryLocked() & WAKE_LOCK_DRAW) != 0
&& !mDrawWakeLockOverrideFromSidekick) {
if (displayPowerRequest.dozeScreenState == Display.STATE_DOZE_SUSPEND) {
displayPowerRequest.dozeScreenState = Display.STATE_DOZE;
@@ -3361,11 +3384,11 @@ public final class PowerManagerService extends SystemService
+ ", policy=" + policyToString(displayPowerRequest.policy)
+ ", mWakefulness="
+ PowerManagerInternal.wakefulnessToString(
- mPowerGroups.get(groupId).getWakefulnessLocked())
+ powerGroup.getWakefulnessLocked())
+ ", mWakeLockSummary=0x" + Integer.toHexString(
- mPowerGroups.get(groupId).getWakeLockSummaryLocked())
+ powerGroup.getWakeLockSummaryLocked())
+ ", mUserActivitySummary=0x" + Integer.toHexString(
- mPowerGroups.get(groupId).getUserActivitySummaryLocked())
+ powerGroup.getUserActivitySummaryLocked())
+ ", mBootCompleted=" + mBootCompleted
+ ", screenBrightnessOverride="
+ displayPowerRequest.screenBrightnessOverride
@@ -3376,16 +3399,15 @@ public final class PowerManagerService extends SystemService
+ ", sQuiescent=" + sQuiescent);
}
- final boolean displayReadyStateChanged =
- mPowerGroups.get(groupId).setReadyLocked(ready);
- final boolean poweringOn = mPowerGroups.get(groupId).isPoweringOnLocked();
+ final boolean displayReadyStateChanged = powerGroup.setReadyLocked(ready);
+ final boolean poweringOn = powerGroup.isPoweringOnLocked();
if (ready && displayReadyStateChanged && poweringOn
- && mPowerGroups.get(groupId).getWakefulnessLocked() == WAKEFULNESS_AWAKE) {
- mPowerGroups.get(groupId).setIsPoweringOnLocked(false);
+ && powerGroup.getWakefulnessLocked() == WAKEFULNESS_AWAKE) {
+ powerGroup.setIsPoweringOnLocked(false);
LatencyTracker.getInstance(mContext).onActionEnd(ACTION_TURN_ON_SCREEN);
Trace.asyncTraceEnd(Trace.TRACE_TAG_POWER, TRACE_SCREEN_ON, groupId);
final int latencyMs = (int) (mClock.uptimeMillis()
- - mPowerGroups.get(groupId).getLastPowerOnTimeLocked());
+ - powerGroup.getLastPowerOnTimeLocked());
if (latencyMs >= SCREEN_ON_LATENCY_WARNING_MS) {
Slog.w(TAG, "Screen on took " + latencyMs + " ms");
}
@@ -3431,8 +3453,12 @@ public final class PowerManagerService extends SystemService
@VisibleForTesting
@GuardedBy("mLock")
int getDesiredScreenPolicyLocked(int groupId) {
- final int wakefulness = mPowerGroups.get(groupId).getWakefulnessLocked();
- final int wakeLockSummary = mPowerGroups.get(groupId).getWakeLockSummaryLocked();
+ return getDesiredScreenPolicyLocked(mPowerGroups.get(groupId));
+ }
+
+ int getDesiredScreenPolicyLocked(final PowerGroup powerGroup) {
+ final int wakefulness = powerGroup.getWakefulnessLocked();
+ final int wakeLockSummary = powerGroup.getWakeLockSummaryLocked();
if (wakefulness == WAKEFULNESS_ASLEEP || sQuiescent) {
return DisplayPowerRequest.POLICY_OFF;
} else if (wakefulness == WAKEFULNESS_DOZING) {
@@ -3455,8 +3481,7 @@ public final class PowerManagerService extends SystemService
if ((wakeLockSummary & WAKE_LOCK_SCREEN_BRIGHT) != 0
|| !mBootCompleted
- || (mPowerGroups.get(groupId).getUserActivitySummaryLocked()
- & USER_ACTIVITY_SCREEN_BRIGHT) != 0
+ || (powerGroup.getUserActivitySummaryLocked() & USER_ACTIVITY_SCREEN_BRIGHT) != 0
|| mScreenBrightnessBoostInProgress) {
return DisplayPowerRequest.POLICY_BRIGHT;
}
@@ -3490,8 +3515,9 @@ public final class PowerManagerService extends SystemService
mProximityPositive = false;
mInterceptedPowerKeyForProximity = false;
mDirty |= DIRTY_PROXIMITY_POSITIVE;
- userActivityNoUpdateLocked(Display.DEFAULT_DISPLAY_GROUP, mClock.uptimeMillis(),
- PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, Process.SYSTEM_UID);
+ userActivityNoUpdateLocked(mPowerGroups.get(Display.DEFAULT_DISPLAY_GROUP),
+ mClock.uptimeMillis(), PowerManager.USER_ACTIVITY_EVENT_OTHER,
+ 0 /* flags */, Process.SYSTEM_UID);
updatePowerStateLocked();
}
}
@@ -4077,7 +4103,7 @@ public final class PowerManagerService extends SystemService
mScreenBrightnessBoostInProgress = true;
mDirty |= DIRTY_SCREEN_BRIGHTNESS_BOOST;
- userActivityNoUpdateLocked(Display.DEFAULT_DISPLAY_GROUP, eventTime,
+ userActivityNoUpdateLocked(mPowerGroups.get(Display.DEFAULT_DISPLAY_GROUP), eventTime,
PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, uid);
updatePowerStateLocked();
}
@@ -4202,8 +4228,8 @@ public final class PowerManagerService extends SystemService
// Place the system in an non-interactive state
boolean updatePowerState = false;
for (int id : mDisplayGroupIds) {
- updatePowerState |= sleepDisplayGroupNoUpdateLocked(id, mClock.uptimeMillis(),
- PowerManager.GO_TO_SLEEP_REASON_FORCE_SUSPEND,
+ updatePowerState |= sleepDisplayGroupNoUpdateLocked(mPowerGroups.get(id),
+ mClock.uptimeMillis(), PowerManager.GO_TO_SLEEP_REASON_FORCE_SUSPEND,
PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE, uid);
}
if (updatePowerState) {
@@ -4505,15 +4531,16 @@ public final class PowerManagerService extends SystemService
pw.println("Display Group User Activity:");
for (int id : mDisplayGroupIds) {
+ final PowerGroup powerGroup = mPowerGroups.get(id);
pw.println(" displayGroupId=" + id);
pw.println(" userActivitySummary=0x" + Integer.toHexString(
- mPowerGroups.get(id).getUserActivitySummaryLocked()));
+ powerGroup.getUserActivitySummaryLocked()));
pw.println(" lastUserActivityTime=" + TimeUtils.formatUptime(
- mPowerGroups.get(id).getLastUserActivityTimeLocked()));
+ powerGroup.getLastUserActivityTimeLocked()));
pw.println(" lastUserActivityTimeNoChangeLights=" + TimeUtils.formatUptime(
- mPowerGroups.get(id).getLastUserActivityTimeNoChangeLightsLocked()));
+ powerGroup.getLastUserActivityTimeNoChangeLightsLocked()));
pw.println(" mWakeLockSummary=0x" + Integer.toHexString(
- mPowerGroups.get(id).getWakeLockSummaryLocked()));
+ powerGroup.getWakeLockSummaryLocked()));
}
wcd = mWirelessChargerDetector;
@@ -4602,11 +4629,11 @@ public final class PowerManagerService extends SystemService
proto.write(PowerManagerServiceDumpProto.NOTIFY_LONG_NEXT_CHECK_MS, mNotifyLongNextCheck);
for (int id : mDisplayGroupIds) {
+ final PowerGroup powerGroup = mPowerGroups.get(id);
final long userActivityToken = proto.start(
PowerManagerServiceDumpProto.USER_ACTIVITY);
proto.write(PowerManagerServiceDumpProto.UserActivityProto.DISPLAY_GROUP_ID, id);
- final long userActivitySummary =
- mPowerGroups.get(id).getUserActivitySummaryLocked();
+ final long userActivitySummary = powerGroup.getUserActivitySummaryLocked();
proto.write(PowerManagerServiceDumpProto.UserActivityProto.IS_SCREEN_BRIGHT,
(userActivitySummary & USER_ACTIVITY_SCREEN_BRIGHT) != 0);
proto.write(PowerManagerServiceDumpProto.UserActivityProto.IS_SCREEN_DIM,
@@ -4615,10 +4642,10 @@ public final class PowerManagerService extends SystemService
(userActivitySummary & USER_ACTIVITY_SCREEN_DREAM) != 0);
proto.write(
PowerManagerServiceDumpProto.UserActivityProto.LAST_USER_ACTIVITY_TIME_MS,
- mPowerGroups.get(id).getLastUserActivityTimeLocked());
+ powerGroup.getLastUserActivityTimeLocked());
proto.write(
PowerManagerServiceDumpProto.UserActivityProto.LAST_USER_ACTIVITY_TIME_NO_CHANGE_LIGHTS_MS,
- mPowerGroups.get(id).getLastUserActivityTimeNoChangeLightsLocked());
+ powerGroup.getLastUserActivityTimeNoChangeLightsLocked());
proto.end(userActivityToken);
}