Merge "Fix ACTION_VOLUME_CHANGED behavior" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a6abfc6e1a
@@ -3710,6 +3710,10 @@ public class AudioService extends IAudioService.Stub
|
||||
Objects.requireNonNull(vi);
|
||||
Objects.requireNonNull(ada);
|
||||
Objects.requireNonNull(callingPackage);
|
||||
|
||||
AudioService.sVolumeLogger.loglogi("setDeviceVolume" + " from:" + callingPackage + " "
|
||||
+ vi + " " + ada, TAG);
|
||||
|
||||
if (!vi.hasStreamType()) {
|
||||
Log.e(TAG, "Unsupported non-stream type based VolumeInfo", new Exception());
|
||||
return;
|
||||
@@ -7839,6 +7843,7 @@ public class AudioService extends IAudioService.Stub
|
||||
boolean hasModifyAudioSettings) {
|
||||
boolean changed;
|
||||
int oldIndex;
|
||||
final boolean isCurrentDevice;
|
||||
synchronized (mSettingsLock) {
|
||||
synchronized (VolumeStreamState.class) {
|
||||
oldIndex = getIndex(device);
|
||||
@@ -7854,7 +7859,7 @@ public class AudioService extends IAudioService.Stub
|
||||
// - there is no volume index stored for this device on alias stream.
|
||||
// If changing volume of current device, also change volume of current
|
||||
// device on aliased stream
|
||||
final boolean isCurrentDevice = (device == getDeviceForStream(mStreamType));
|
||||
isCurrentDevice = (device == getDeviceForStream(mStreamType));
|
||||
final int numStreamTypes = AudioSystem.getNumStreamTypes();
|
||||
for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {
|
||||
final VolumeStreamState aliasStreamState = mStreamStates[streamType];
|
||||
@@ -7894,8 +7899,9 @@ public class AudioService extends IAudioService.Stub
|
||||
EventLogTags.writeVolumeChanged(mStreamType, oldIndex, index, mIndexMax / 10,
|
||||
caller);
|
||||
}
|
||||
// fire changed intents for all streams
|
||||
if (index != oldIndex) {
|
||||
// fire changed intents for all streams, but only when the device it changed on
|
||||
// is the current device
|
||||
if ((index != oldIndex) && isCurrentDevice) {
|
||||
mVolumeChanged.putExtra(AudioManager.EXTRA_VOLUME_STREAM_VALUE, index);
|
||||
mVolumeChanged.putExtra(AudioManager.EXTRA_PREV_VOLUME_STREAM_VALUE, oldIndex);
|
||||
mVolumeChanged.putExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE_ALIAS,
|
||||
|
||||
Reference in New Issue
Block a user