diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2014-09-09 20:49:49 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-09-09 20:49:50 +0000 |
commit | 97dc52c8579d70a075e9c999f1f244bbcf3e9bc1 (patch) | |
tree | 134d5b0609d2298172194854e3b24df13fd2a5a0 /services/core/java/com/android/server/notification | |
parent | 9ed0292a650eb52becc0c17e4001767065d325ca (diff) | |
parent | ceb79bc31a91daf3d43156947f6666d2a8887859 (diff) | |
download | frameworks_base-97dc52c8579d70a075e9c999f1f244bbcf3e9bc1.zip frameworks_base-97dc52c8579d70a075e9c999f1f244bbcf3e9bc1.tar.gz frameworks_base-97dc52c8579d70a075e9c999f1f244bbcf3e9bc1.tar.bz2 |
Merge "Prevent NotificationManagerService from using bad stream type" into lmp-dev
Diffstat (limited to 'services/core/java/com/android/server/notification')
-rw-r--r-- | services/core/java/com/android/server/notification/NotificationManagerService.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 280db73..c09eff8 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -49,6 +49,7 @@ import android.content.res.Resources; import android.database.ContentObserver; import android.media.AudioAttributes; import android.media.AudioManager; +import android.media.AudioSystem; import android.media.IRingtonePlayer; import android.net.Uri; import android.os.Binder; @@ -1945,14 +1946,19 @@ public class NotificationManagerService extends SystemService { } private static AudioAttributes audioAttributesForNotification(Notification n) { - if (n.audioAttributes != null - && !Notification.AUDIO_ATTRIBUTES_DEFAULT.equals(n.audioAttributes)) { + if (n.audioAttributes != null) { return n.audioAttributes; + } else if (n.audioStreamType >= 0 && n.audioStreamType < AudioSystem.getNumStreamTypes()) { + // the stream type is valid, use it + return new AudioAttributes.Builder() + .setInternalLegacyStreamType(n.audioStreamType) + .build(); + } else if (n.audioStreamType == AudioSystem.STREAM_DEFAULT) { + return Notification.AUDIO_ATTRIBUTES_DEFAULT; + } else { + Log.w(TAG, String.format("Invalid stream type: %d", n.audioStreamType)); + return Notification.AUDIO_ATTRIBUTES_DEFAULT; } - return new AudioAttributes.Builder() - .setLegacyStreamType(n.audioStreamType) - .setUsage(AudioAttributes.usageForLegacyStreamType(n.audioStreamType)) - .build(); } void showNextToastLocked() { |