summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Narayan Kamath <narayan@google.com> 2018-01-03 13:03:18 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-01-03 13:03:18 +0000
commitf10a9e75685405fe8de89c20c56cac298392bc9e (patch)
tree4eb30834200d8975b7d9daf514aeb37cf3179dfd
parent339a30332b512aa79c8ed311a97ad38a00871135 (diff)
parent2f916edf5ab86075e0207e473a7158b89bf61472 (diff)
Merge "PowerManagerService: Account for WorkChains in wakeLockAffectsUser."
-rw-r--r--services/core/java/com/android/server/power/PowerManagerService.java11
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);
}