summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jean-Baptiste Queru <jbq@google.com> 2010-10-10 18:51:43 -0700
committer Android Git Automerger <android-git-automerger@android.com> 2010-10-10 18:51:43 -0700
commitc43189e76964facad8bac6ee7a17ea1016bba4e3 (patch)
tree466eb3d111d93b6f4a4f47f47f77e638113bc558
parent5bf55c801dfd67e8cf98278f3590d352f9e6d64f (diff)
parent2aaa1ce1768d3425c07e55d43aaa400282424f8c (diff)
am 2aaa1ce1: Merge "Hold partial wakelock during shutdown to avoid entering sleep"
Merge commit '2aaa1ce1768d3425c07e55d43aaa400282424f8c' into gingerbread-plus-aosp * commit '2aaa1ce1768d3425c07e55d43aaa400282424f8c': Hold partial wakelock during shutdown to avoid entering sleep
-rw-r--r--core/java/com/android/internal/app/ShutdownThread.java31
1 files changed, 24 insertions, 7 deletions
diff --git a/core/java/com/android/internal/app/ShutdownThread.java b/core/java/com/android/internal/app/ShutdownThread.java
index e07c54f59c34..fed6785f15d2 100644
--- a/core/java/com/android/internal/app/ShutdownThread.java
+++ b/core/java/com/android/internal/app/ShutdownThread.java
@@ -67,7 +67,8 @@ public final class ShutdownThread extends Thread {
private boolean mActionDone;
private Context mContext;
private PowerManager mPowerManager;
- private PowerManager.WakeLock mWakeLock;
+ private PowerManager.WakeLock mCpuWakeLock;
+ private PowerManager.WakeLock mScreenWakeLock;
private Handler mHandler;
private ShutdownThread() {
@@ -155,20 +156,36 @@ public final class ShutdownThread extends Thread {
pd.show();
- // start the thread that initiates shutdown
sInstance.mContext = context;
sInstance.mPowerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
- sInstance.mWakeLock = null;
+
+ // make sure we never fall asleep again
+ sInstance.mCpuWakeLock = null;
+ try {
+ sInstance.mCpuWakeLock = sInstance.mPowerManager.newWakeLock(
+ PowerManager.PARTIAL_WAKE_LOCK, TAG + "-cpu");
+ sInstance.mCpuWakeLock.setReferenceCounted(false);
+ sInstance.mCpuWakeLock.acquire();
+ } catch (SecurityException e) {
+ Log.w(TAG, "No permission to acquire wake lock", e);
+ sInstance.mCpuWakeLock = null;
+ }
+
+ // also make sure the screen stays on for better user experience
+ sInstance.mScreenWakeLock = null;
if (sInstance.mPowerManager.isScreenOn()) {
try {
- sInstance.mWakeLock = sInstance.mPowerManager.newWakeLock(
- PowerManager.FULL_WAKE_LOCK, "Shutdown");
- sInstance.mWakeLock.acquire();
+ sInstance.mScreenWakeLock = sInstance.mPowerManager.newWakeLock(
+ PowerManager.FULL_WAKE_LOCK, TAG + "-screen");
+ sInstance.mScreenWakeLock.setReferenceCounted(false);
+ sInstance.mScreenWakeLock.acquire();
} catch (SecurityException e) {
Log.w(TAG, "No permission to acquire wake lock", e);
- sInstance.mWakeLock = null;
+ sInstance.mScreenWakeLock = null;
}
}
+
+ // start the thread that initiates shutdown
sInstance.mHandler = new Handler() {
};
sInstance.start();