summaryrefslogtreecommitdiffstats
path: root/core/java/android/os/PowerManager.java
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2010-09-13 16:02:57 -0700
committerDianne Hackborn <hackbod@google.com>2010-09-13 16:56:10 -0700
commite746f03c6c8b8d0897d322ab524d545ace200fcd (patch)
treec994b35c248fe2f75bbb4060b1441289a9cca292 /core/java/android/os/PowerManager.java
parent1510770165b7bc675e5171560e907c0269dbe0fa (diff)
parent53686433a9790bcfe7211a661b26783ee12bb436 (diff)
downloadframeworks_base-e746f03c6c8b8d0897d322ab524d545ace200fcd.zip
frameworks_base-e746f03c6c8b8d0897d322ab524d545ace200fcd.tar.gz
frameworks_base-e746f03c6c8b8d0897d322ab524d545ace200fcd.tar.bz2
resolved conflicts for merge of 53686433 to master
Change-Id: I27004dc464f5771d3205ae5757c6eccc5b16854d
Diffstat (limited to 'core/java/android/os/PowerManager.java')
-rw-r--r--core/java/android/os/PowerManager.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index f4ca8bc..3876a3e 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -209,6 +209,7 @@ public class PowerManager
int mCount = 0;
boolean mRefCounted = true;
boolean mHeld = false;
+ WorkSource mWorkSource;
WakeLock(int flags, String tag)
{
@@ -247,7 +248,7 @@ public class PowerManager
synchronized (mToken) {
if (!mRefCounted || mCount++ == 0) {
try {
- mService.acquireWakeLock(mFlags, mToken, mTag);
+ mService.acquireWakeLock(mFlags, mToken, mTag, mWorkSource);
} catch (RemoteException e) {
}
mHeld = true;
@@ -313,6 +314,32 @@ public class PowerManager
}
}
+ public void setWorkSource(WorkSource ws) {
+ synchronized (mToken) {
+ if (ws != null && ws.size() == 0) {
+ ws = null;
+ }
+ boolean changed = true;
+ if (ws == null) {
+ mWorkSource = null;
+ } else if (mWorkSource == null) {
+ changed = mWorkSource != null;
+ mWorkSource = new WorkSource(ws);
+ } else {
+ changed = mWorkSource.diff(ws);
+ if (changed) {
+ mWorkSource.set(ws);
+ }
+ }
+ if (changed && mHeld) {
+ try {
+ mService.updateWakeLockWorkSource(mToken, mWorkSource);
+ } catch (RemoteException e) {
+ }
+ }
+ }
+ }
+
public String toString() {
synchronized (mToken) {
return "WakeLock{"