summaryrefslogtreecommitdiffstats
path: root/services/core/java/com/android/server/media
diff options
context:
space:
mode:
authorRoboErik <epastern@google.com>2014-11-14 00:45:03 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-11-14 00:45:03 +0000
commitcddfb9b7c084a67d12df9dcf8e94fff7e02831f1 (patch)
treed072ff21d4a8605c1aed0fe4ee8207317cd8091d /services/core/java/com/android/server/media
parent3733efc8c15c0253cb26f99ef6951a2495bbd3e1 (diff)
parent0f17d95e6fc0fb49fbaa87dbd3f04662e6d7e9cc (diff)
downloadframeworks_base-cddfb9b7c084a67d12df9dcf8e94fff7e02831f1.zip
frameworks_base-cddfb9b7c084a67d12df9dcf8e94fff7e02831f1.tar.gz
frameworks_base-cddfb9b7c084a67d12df9dcf8e94fff7e02831f1.tar.bz2
am 0f17d95e: am 9e070715: am f338fcba: Merge "Use the suggested stream if it\'s currently active" into lmp-mr1-dev
* commit '0f17d95e6fc0fb49fbaa87dbd3f04662e6d7e9cc': Use the suggested stream if it's currently active
Diffstat (limited to 'services/core/java/com/android/server/media')
-rw-r--r--services/core/java/com/android/server/media/MediaSessionService.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java
index 02c9fcb5..ba18f48 100644
--- a/services/core/java/com/android/server/media/MediaSessionService.java
+++ b/services/core/java/com/android/server/media/MediaSessionService.java
@@ -805,7 +805,12 @@ public class MediaSessionService extends SystemService implements Monitor {
+ flags + ", suggestedStream=" + suggestedStream);
}
- if (session == null) {
+ boolean preferSuggestedStream = false;
+ if (isValidLocalStreamType(suggestedStream)
+ && AudioSystem.isStreamActive(suggestedStream, 0)) {
+ preferSuggestedStream = true;
+ }
+ if (session == null || preferSuggestedStream) {
if ((flags & AudioManager.FLAG_ACTIVE_MEDIA_ONLY) != 0
&& !AudioSystem.isStreamActive(AudioManager.STREAM_MUSIC, 0)) {
if (DEBUG) {
@@ -959,6 +964,12 @@ public class MediaSessionService extends SystemService implements Monitor {
return keyCode == KeyEvent.KEYCODE_HEADSETHOOK;
}
+ // we only handle public stream types, which are 0-5
+ private boolean isValidLocalStreamType(int streamType) {
+ return streamType >= AudioManager.STREAM_VOICE_CALL
+ && streamType <= AudioManager.STREAM_NOTIFICATION;
+ }
+
private KeyEventWakeLockReceiver mKeyEventReceiver = new KeyEventWakeLockReceiver(mHandler);
class KeyEventWakeLockReceiver extends ResultReceiver implements Runnable,