diff options
| author | 2018-01-03 13:03:18 +0000 | |
|---|---|---|
| committer | 2018-01-03 13:03:18 +0000 | |
| commit | f10a9e75685405fe8de89c20c56cac298392bc9e (patch) | |
| tree | 4eb30834200d8975b7d9daf514aeb37cf3179dfd | |
| parent | 339a30332b512aa79c8ed311a97ad38a00871135 (diff) | |
| parent | 2f916edf5ab86075e0207e473a7158b89bf61472 (diff) | |
Merge "PowerManagerService: Account for WorkChains in wakeLockAffectsUser."
| -rw-r--r-- | services/core/java/com/android/server/power/PowerManagerService.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 02c8f681e7c4..bc7f2e691e86 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -57,6 +57,7 @@ import android.os.Trace; import android.os.UserHandle; import android.os.UserManager; import android.os.WorkSource; +import android.os.WorkSource.WorkChain; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.service.dreams.DreamManagerInternal; @@ -1976,6 +1977,16 @@ public final class PowerManagerService extends SystemService return true; } } + + final ArrayList<WorkChain> workChains = wakeLock.mWorkSource.getWorkChains(); + if (workChains != null) { + for (int k = 0; k < workChains.size(); k++) { + final int uid = workChains.get(k).getAttributionUid(); + if (userId == UserHandle.getUserId(uid)) { + return true; + } + } + } } return userId == UserHandle.getUserId(wakeLock.mOwnerUid); } |