summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Marco Nelissen <marcone@google.com> 2013-10-16 10:57:05 -0700
committer Marco Nelissen <marcone@google.com> 2013-10-25 12:49:55 -0700
commit738ffdc9da55db3127146df1b3fcb15b5163a335 (patch)
tree64ff46a6b4aecee3657562e861f8d60fd6c11466
parentec646dc9cf08d288d516521a45f343a0fd529e01 (diff)
Add a method to set a list of uids for a wake lock
Cherrypicked from master. b/9464621 Change-Id: Ia6a9d36d55129ae87d3ec070fbf10dc02f4b6cb4
-rw-r--r--core/java/android/os/IPowerManager.aidl3
-rw-r--r--services/java/com/android/server/power/PowerManagerService.java15
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java5
3 files changed, 22 insertions, 1 deletions
diff --git a/core/java/android/os/IPowerManager.aidl b/core/java/android/os/IPowerManager.aidl
index 4c7bbb48f52b..56176a479fb3 100644
--- a/core/java/android/os/IPowerManager.aidl
+++ b/core/java/android/os/IPowerManager.aidl
@@ -23,11 +23,12 @@ import android.os.WorkSource;
interface IPowerManager
{
- // WARNING: The first three methods must remain the first three methods because their
+ // WARNING: The first four methods must remain the first three methods because their
// transaction numbers must not change unless IPowerManager.cpp is also updated.
void acquireWakeLock(IBinder lock, int flags, String tag, String packageName, in WorkSource ws);
void acquireWakeLockWithUid(IBinder lock, int flags, String tag, String packageName, int uidtoblame);
void releaseWakeLock(IBinder lock, int flags);
+ void updateWakeLockUids(IBinder lock, in int[] uids);
void updateWakeLockWorkSource(IBinder lock, in WorkSource ws);
boolean isWakeLockLevelSupported(int level);
diff --git a/services/java/com/android/server/power/PowerManagerService.java b/services/java/com/android/server/power/PowerManagerService.java
index 8fbde14897e8..da9548f7266e 100644
--- a/services/java/com/android/server/power/PowerManagerService.java
+++ b/services/java/com/android/server/power/PowerManagerService.java
@@ -747,6 +747,21 @@ public final class PowerManagerService extends IPowerManager.Stub
}
@Override // Binder call
+ public void updateWakeLockUids(IBinder lock, int[] uids) {
+ WorkSource ws = null;
+
+ if (uids != null) {
+ ws = new WorkSource();
+ // XXX should WorkSource have a way to set uids as an int[] instead of adding them
+ // one at a time?
+ for (int i = 0; i < uids.length; i++) {
+ ws.add(uids[i]);
+ }
+ }
+ updateWakeLockWorkSource(lock, ws);
+ }
+
+ @Override // Binder call
public void updateWakeLockWorkSource(IBinder lock, WorkSource ws) {
if (lock == null) {
throw new IllegalArgumentException("lock must not be null");
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java
index a8b58aaff20a..281337c5caa1 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java
@@ -81,6 +81,11 @@ public class BridgePowerManager implements IPowerManager {
}
@Override
+ public void updateWakeLockUids(IBinder arg0, int[] arg1) throws RemoteException {
+ // pass for now.
+ }
+
+ @Override
public void setAttentionLight(boolean arg0, int arg1) throws RemoteException {
// pass for now.
}