Merge "MediaSession: Do not lock on AudioManager.getStreamVolume" into mnc-dev

This commit is contained in:
Jae Seo
2015-07-20 20:45:07 +00:00
committed by Android (Google) Code Review

View File

@@ -1067,23 +1067,22 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
@Override
public ParcelableVolumeInfo getVolumeAttributes() {
int volumeType;
AudioAttributes attributes;
synchronized (mLock) {
int type;
int max;
int current;
if (mVolumeType == PlaybackInfo.PLAYBACK_TYPE_REMOTE) {
type = mVolumeControlType;
max = mMaxVolume;
current = mOptimisticVolume != -1 ? mOptimisticVolume
: mCurrentVolume;
} else {
int stream = AudioAttributes.toLegacyStreamType(mAudioAttrs);
type = VolumeProvider.VOLUME_CONTROL_ABSOLUTE;
max = mAudioManager.getStreamMaxVolume(stream);
current = mAudioManager.getStreamVolume(stream);
int current = mOptimisticVolume != -1 ? mOptimisticVolume : mCurrentVolume;
return new ParcelableVolumeInfo(
mVolumeType, mAudioAttrs, mVolumeControlType, mMaxVolume, current);
}
return new ParcelableVolumeInfo(mVolumeType, mAudioAttrs, type, max, current);
volumeType = mVolumeType;
attributes = mAudioAttrs;
}
int stream = AudioAttributes.toLegacyStreamType(attributes);
int max = mAudioManager.getStreamMaxVolume(stream);
int current = mAudioManager.getStreamVolume(stream);
return new ParcelableVolumeInfo(
volumeType, attributes, VolumeProvider.VOLUME_CONTROL_ABSOLUTE, max, current);
}
@Override