From e47e8520fa48bd014287eda94ea39927de73d6bc Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Wed, 21 Sep 2011 13:34:33 -0700 Subject: [PATCH] Keyguard sound needs to hold wake lock. We need to hold a wakelock while playing the keyguard lock sound, so that it actually completes before the CPU goes to sleep. Change-Id: I144c345383afeb911ea461b2eb17b31183b6d092 --- media/java/android/media/Ringtone.java | 17 ++++++++++++++++- .../policy/impl/KeyguardViewMediator.java | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java index 0ce35269bf392..f2c1694b62f95 100644 --- a/media/java/android/media/Ringtone.java +++ b/media/java/android/media/Ringtone.java @@ -203,7 +203,22 @@ public class Ringtone { mUri = uri; openMediaPlayer(); } - + + /** @hide */ + public void setWakeMode(Context context, int mode) { + if (mAudio == null) { + try { + openMediaPlayer(); + } catch (Exception ex) { + Log.e(TAG, "setWakeMode() caught ", ex); + mAudio = null; + } + } + if (mAudio != null) { + mAudio.setWakeMode(context, mode); + } + } + /** * Plays the ringtone. */ diff --git a/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java b/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java index 5d3dee9d1b0c7..0f1d6337fde60 100644 --- a/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java +++ b/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java @@ -1054,6 +1054,7 @@ public class KeyguardViewMediator implements KeyguardViewCallback, final Ringtone sfx = RingtoneManager.getRingtone(mContext, soundUri); if (sfx != null) { sfx.setStreamType(AudioManager.STREAM_SYSTEM); + sfx.setWakeMode(mContext, PowerManager.PARTIAL_WAKE_LOCK); sfx.play(); } else { if (DEBUG) Log.d(TAG, "playSounds: failed to load ringtone from uri: "