diff options
author | Daniel Sandler <dsandler@google.com> | 2010-02-11 15:27:37 -0500 |
---|---|---|
committer | Daniel Sandler <dsandler@google.com> | 2010-02-12 16:36:00 -0500 |
commit | db783bdff33bbfcf825ec27d1b1af1fe7b3045e3 (patch) | |
tree | 9b303fc0188b4cdbe9fe23fc3d1be4951ee1edc4 | |
parent | 148e73eaed1fc0c12cdf84f0eb20a24624397a11 (diff) | |
download | frameworks_base-db783bdff33bbfcf825ec27d1b1af1fe7b3045e3.zip frameworks_base-db783bdff33bbfcf825ec27d1b1af1fe7b3045e3.tar.gz frameworks_base-db783bdff33bbfcf825ec27d1b1af1fe7b3045e3.tar.bz2 |
Support for lockscreen/keyguard sound effects.
See sibling change to frameworks/base (including basic
lockscreen sounds).
Change-Id: I62bb16b90c47353a3ca4a531e7f7d5b446486dde
-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(); |