summaryrefslogtreecommitdiffstats
path: root/policy
diff options
context:
space:
mode:
authorDaniel Sandler <dsandler@android.com>2010-02-12 20:33:46 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-02-12 20:33:46 -0800
commit676074890e3cf1a9190bfa6fc9d5d96725f5e54e (patch)
treea020256c015aecea0e1e8609c1b4dfcc7c117b15 /policy
parentd13e213396051cab824f405c80d4988fa049952e (diff)
parentdb783bdff33bbfcf825ec27d1b1af1fe7b3045e3 (diff)
downloadframeworks_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.java33
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();