diff options
| author | 2013-10-16 10:57:05 -0700 | |
|---|---|---|
| committer | 2013-10-25 12:49:55 -0700 | |
| commit | 738ffdc9da55db3127146df1b3fcb15b5163a335 (patch) | |
| tree | 64ff46a6b4aecee3657562e861f8d60fd6c11466 | |
| parent | ec646dc9cf08d288d516521a45f343a0fd529e01 (diff) | |
Add a method to set a list of uids for a wake lock
Cherrypicked from master.
b/9464621
Change-Id: Ia6a9d36d55129ae87d3ec070fbf10dc02f4b6cb4
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. } |