Fix reading attributes for playback restrictions

Playback restrictions can be lifted with the correct flag,
  FLAG_BYPASS_INTERRUPTION_POLICY, but this flag is for the
  system only. As such, it must be read by querying "all
  the flags" with AudioAttributes.getAllFlags() which is a
  system API which returns all the system flags. getFlags()
  only returns the public SDK flags.

Bug 19407114

Change-Id: I22dadfaf5d1b48b3c0754e1e6af00b734d790fec
This commit is contained in:
Jean-Michel Trivi
2015-05-20 13:58:18 -07:00
parent c1a9436d27
commit d3969546a8
3 changed files with 3 additions and 3 deletions

View File

@@ -1502,7 +1502,7 @@ public class AudioTrack
}
private boolean isRestricted() {
if ((mAttributes.getFlags() & AudioAttributes.FLAG_BYPASS_INTERRUPTION_POLICY) != 0) {
if ((mAttributes.getAllFlags() & AudioAttributes.FLAG_BYPASS_INTERRUPTION_POLICY) != 0) {
return false;
}
try {

View File

@@ -1757,7 +1757,7 @@ public class MediaPlayer implements SubtitleController.Listener
throw new IllegalArgumentException(msg);
}
mUsage = attributes.getUsage();
mBypassInterruptionPolicy = (attributes.getFlags()
mBypassInterruptionPolicy = (attributes.getAllFlags()
& AudioAttributes.FLAG_BYPASS_INTERRUPTION_POLICY) != 0;
Parcel pattributes = Parcel.obtain();
attributes.writeToParcel(pattributes, AudioAttributes.FLATTEN_TAGS);

View File

@@ -463,7 +463,7 @@ public class SoundPool {
}
private boolean isRestricted() {
if ((mAttributes.getFlags() & AudioAttributes.FLAG_BYPASS_INTERRUPTION_POLICY) != 0) {
if ((mAttributes.getAllFlags() & AudioAttributes.FLAG_BYPASS_INTERRUPTION_POLICY) != 0) {
return false;
}
try {