diff options
author | Daniel Sandler <dsandler@android.com> | 2010-02-12 20:33:46 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-02-12 20:33:46 -0800 |
commit | 676074890e3cf1a9190bfa6fc9d5d96725f5e54e (patch) | |
tree | a020256c015aecea0e1e8609c1b4dfcc7c117b15 /policy | |
parent | d13e213396051cab824f405c80d4988fa049952e (diff) | |
parent | db783bdff33bbfcf825ec27d1b1af1fe7b3045e3 (diff) | |
download | frameworks_base-676074890e3cf1a9190bfa6fc9d5d96725f5e54e.zip frameworks_base-676074890e3cf1a9190bfa6fc9d5d96725f5e54e.tar.gz frameworks_base-676074890e3cf1a9190bfa6fc9d5d96725f5e54e.tar.bz2 |
Merge "Support for lockscreen/keyguard sound effects."
Diffstat (limited to 'policy')
-rw-r--r-- | policy/com/android/internal/policy/impl/KeyguardViewMediator.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/policy/com/android/internal/policy/impl/KeyguardViewMediator.java b/policy/com/android/internal/policy/impl/KeyguardViewMediator.java index b35b3fc..c8e8cd4 100644 --- a/policy/com/android/internal/policy/impl/KeyguardViewMediator.java +++ b/policy/com/android/internal/policy/impl/KeyguardViewMediator.java @@ -24,9 +24,13 @@ import android.app.AlarmManager; import android.app.PendingIntent; import android.app.StatusBarManager; import android.content.BroadcastReceiver; +import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.media.Ringtone; +import android.media.RingtoneManager; +import android.net.Uri; import android.os.Handler; import android.os.IBinder; import android.os.LocalPowerManager; @@ -35,6 +39,7 @@ import android.os.PowerManager; import android.os.RemoteException; import android.os.SystemClock; import android.os.SystemProperties; +import android.provider.Settings; import android.telephony.TelephonyManager; import android.util.Config; import android.util.EventLog; @@ -908,6 +913,30 @@ public class KeyguardViewMediator implements KeyguardViewCallback, } } + private void playSounds(boolean locked) { + // User feedback for keyguard. + final ContentResolver cr = mContext.getContentResolver(); + if (Settings.System.getInt(cr, Settings.System.LOCKSCREEN_SOUNDS_ENABLED, 1) == 1) + { + final String whichSound = locked + ? Settings.System.LOCK_SOUND + : Settings.System.UNLOCK_SOUND; + final String soundPath = Settings.System.getString(cr, whichSound); + if (soundPath != null) { + final Uri soundUri = Uri.parse("file://" + soundPath); + if (soundUri != null) { + final Ringtone sfx = RingtoneManager.getRingtone(mContext, soundUri); + if (sfx != null) sfx.play(); + else Log.d(TAG, "playSounds: failed to load ringtone from uri: " + soundUri); + } else { + Log.d(TAG, "playSounds: could not parse Uri: " + soundPath); + } + } else { + Log.d(TAG, "playSounds: whichSound = " + whichSound + "; soundPath was null"); + } + } + } + /** * Handle message sent by {@link #showLocked}. * @see #SHOW @@ -917,6 +946,8 @@ public class KeyguardViewMediator implements KeyguardViewCallback, if (DEBUG) Log.d(TAG, "handleShow"); if (!mSystemReady) return; + playSounds(true); + mKeyguardViewManager.show(); mShowing = true; adjustUserActivityLocked(); @@ -941,6 +972,8 @@ public class KeyguardViewMediator implements KeyguardViewCallback, return; } + playSounds(false); + mKeyguardViewManager.hide(); mShowing = false; adjustUserActivityLocked(); |