am a1bd2d00: am 1ed9a88e: Merge "MediaSession: unmute stream when adjusting volume" into lmp-mr1-dev
* commit 'a1bd2d0008e5d9cb563936b7f044d8796c37fb2f': MediaSession: unmute stream when adjusting volume
This commit is contained in:
@@ -257,41 +257,59 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
|
||||
if (mUseMasterVolume) {
|
||||
// If this device only uses master volume and playback is local
|
||||
// just adjust the master volume and return.
|
||||
boolean isMasterMute = mAudioManager.isMasterMute();
|
||||
if (isMute) {
|
||||
mAudioManagerInternal.setMasterMuteForUid(!mAudioManager.isMasterMute(),
|
||||
mAudioManagerInternal.setMasterMuteForUid(!isMasterMute,
|
||||
flags, packageName, mICallback, uid);
|
||||
} else {
|
||||
mAudioManagerInternal.adjustMasterVolumeForUid(direction, flags, packageName,
|
||||
uid);
|
||||
if (isMasterMute) {
|
||||
mAudioManagerInternal.setMasterMuteForUid(false,
|
||||
flags, packageName, mICallback, uid);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
int stream = AudioAttributes.toLegacyStreamType(mAudioAttrs);
|
||||
boolean isStreamMute = mAudioManager.isStreamMute(stream);
|
||||
if (useSuggested) {
|
||||
if (AudioSystem.isStreamActive(stream, 0)) {
|
||||
if (isMute) {
|
||||
mAudioManager.setStreamMute(stream, !mAudioManager.isStreamMute(stream));
|
||||
mAudioManager.setStreamMute(stream, !isStreamMute);
|
||||
} else {
|
||||
mAudioManagerInternal.adjustSuggestedStreamVolumeForUid(stream, direction,
|
||||
flags, packageName, uid);
|
||||
if (isStreamMute) {
|
||||
mAudioManager.setStreamMute(stream, false);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
flags |= previousFlagPlaySound;
|
||||
isStreamMute =
|
||||
mAudioManager.isStreamMute(AudioManager.USE_DEFAULT_STREAM_TYPE);
|
||||
if (isMute) {
|
||||
mAudioManager.setStreamMute(AudioManager.USE_DEFAULT_STREAM_TYPE,
|
||||
!mAudioManager.isStreamMute(AudioManager.USE_DEFAULT_STREAM_TYPE));
|
||||
!isStreamMute);
|
||||
} else {
|
||||
mAudioManagerInternal.adjustSuggestedStreamVolumeForUid(
|
||||
AudioManager.USE_DEFAULT_STREAM_TYPE, direction, flags, packageName,
|
||||
uid);
|
||||
if (isStreamMute) {
|
||||
mAudioManager.setStreamMute(AudioManager.USE_DEFAULT_STREAM_TYPE,
|
||||
false);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (isMute) {
|
||||
mAudioManager.setStreamMute(stream, !mAudioManager.isStreamMute(stream));
|
||||
mAudioManager.setStreamMute(stream, !isStreamMute);
|
||||
} else {
|
||||
mAudioManagerInternal.adjustStreamVolumeForUid(stream, direction, flags,
|
||||
packageName, uid);
|
||||
if (isStreamMute) {
|
||||
mAudioManager.setStreamMute(stream, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -829,21 +829,27 @@ public class MediaSessionService extends SystemService implements Monitor {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
String packageName = getContext().getOpPackageName();
|
||||
if (mUseMasterVolume) {
|
||||
boolean isMasterMute = mAudioService.isMasterMute();
|
||||
if (direction == MediaSessionManager.DIRECTION_MUTE) {
|
||||
mAudioService.setMasterMute(!mAudioService.isMasterMute(), flags,
|
||||
getContext().getOpPackageName(), mICallback);
|
||||
mAudioService.setMasterMute(!isMasterMute, flags, packageName, mICallback);
|
||||
} else {
|
||||
mAudioService.adjustMasterVolume(direction, flags,
|
||||
getContext().getOpPackageName());
|
||||
mAudioService.adjustMasterVolume(direction, flags, packageName);
|
||||
if (isMasterMute) {
|
||||
mAudioService.setMasterMute(false, flags, packageName, mICallback);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
boolean isStreamMute = mAudioService.isStreamMute(suggestedStream);
|
||||
if (direction == MediaSessionManager.DIRECTION_MUTE) {
|
||||
mAudioService.setStreamMute(suggestedStream,
|
||||
!mAudioService.isStreamMute(suggestedStream), mICallback);
|
||||
mAudioService.setStreamMute(suggestedStream, !isStreamMute, mICallback);
|
||||
} else {
|
||||
mAudioService.adjustSuggestedStreamVolume(direction, suggestedStream,
|
||||
flags, getContext().getOpPackageName());
|
||||
flags, packageName);
|
||||
if (isStreamMute) {
|
||||
mAudioService.setStreamMute(suggestedStream, false, mICallback);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
|
||||
Reference in New Issue
Block a user