Merge "AudioService: logs for decision on ACTION_AUDIO_BECOMING_NOISY" into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
3440697aed
@@ -239,6 +239,9 @@ public class AudioDeviceInventory {
|
|||||||
|
|
||||||
//------------------------------------------------------------
|
//------------------------------------------------------------
|
||||||
/*package*/ void dump(PrintWriter pw, String prefix) {
|
/*package*/ void dump(PrintWriter pw, String prefix) {
|
||||||
|
pw.println("\n" + prefix + "BECOMING_NOISY_INTENT_DEVICES_SET=");
|
||||||
|
BECOMING_NOISY_INTENT_DEVICES_SET.forEach(device -> {
|
||||||
|
pw.print(" 0x" + Integer.toHexString(device)); });
|
||||||
pw.println("\n" + prefix + "Preferred devices for strategy:");
|
pw.println("\n" + prefix + "Preferred devices for strategy:");
|
||||||
mPreferredDevices.forEach((strategy, device) -> {
|
mPreferredDevices.forEach((strategy, device) -> {
|
||||||
pw.println(" " + prefix + "strategy:" + strategy + " device:" + device); });
|
pw.println(" " + prefix + "strategy:" + strategy + " device:" + device); });
|
||||||
@@ -1168,10 +1171,13 @@ public class AudioDeviceInventory {
|
|||||||
state == AudioService.CONNECTION_STATE_CONNECTED
|
state == AudioService.CONNECTION_STATE_CONNECTED
|
||||||
? MediaMetrics.Value.CONNECTED : MediaMetrics.Value.DISCONNECTED);
|
? MediaMetrics.Value.CONNECTED : MediaMetrics.Value.DISCONNECTED);
|
||||||
if (state != AudioService.CONNECTION_STATE_DISCONNECTED) {
|
if (state != AudioService.CONNECTION_STATE_DISCONNECTED) {
|
||||||
|
Log.i(TAG, "not sending NOISY: state=" + state);
|
||||||
mmi.set(MediaMetrics.Property.DELAY_MS, 0).record(); // OK to return
|
mmi.set(MediaMetrics.Property.DELAY_MS, 0).record(); // OK to return
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (!BECOMING_NOISY_INTENT_DEVICES_SET.contains(device)) {
|
if (!BECOMING_NOISY_INTENT_DEVICES_SET.contains(device)) {
|
||||||
|
Log.i(TAG, "not sending NOISY: device=0x" + Integer.toHexString(device)
|
||||||
|
+ " not in set " + BECOMING_NOISY_INTENT_DEVICES_SET);
|
||||||
mmi.set(MediaMetrics.Property.DELAY_MS, 0).record(); // OK to return
|
mmi.set(MediaMetrics.Property.DELAY_MS, 0).record(); // OK to return
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1181,18 +1187,24 @@ public class AudioDeviceInventory {
|
|||||||
if (((di.mDeviceType & AudioSystem.DEVICE_BIT_IN) == 0)
|
if (((di.mDeviceType & AudioSystem.DEVICE_BIT_IN) == 0)
|
||||||
&& BECOMING_NOISY_INTENT_DEVICES_SET.contains(di.mDeviceType)) {
|
&& BECOMING_NOISY_INTENT_DEVICES_SET.contains(di.mDeviceType)) {
|
||||||
devices.add(di.mDeviceType);
|
devices.add(di.mDeviceType);
|
||||||
|
Log.i(TAG, "NOISY: adding 0x" + Integer.toHexString(di.mDeviceType));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (musicDevice == AudioSystem.DEVICE_NONE) {
|
if (musicDevice == AudioSystem.DEVICE_NONE) {
|
||||||
musicDevice = mDeviceBroker.getDeviceForStream(AudioSystem.STREAM_MUSIC);
|
musicDevice = mDeviceBroker.getDeviceForStream(AudioSystem.STREAM_MUSIC);
|
||||||
|
Log.i(TAG, "NOISY: musicDevice changing from NONE to 0x"
|
||||||
|
+ Integer.toHexString(musicDevice));
|
||||||
}
|
}
|
||||||
|
|
||||||
// always ignore condition on device being actually used for music when in communication
|
// always ignore condition on device being actually used for music when in communication
|
||||||
// because music routing is altered in this case.
|
// because music routing is altered in this case.
|
||||||
// also checks whether media routing if affected by a dynamic policy or mirroring
|
// also checks whether media routing if affected by a dynamic policy or mirroring
|
||||||
if (((device == musicDevice) || mDeviceBroker.isInCommunication())
|
final boolean inCommunication = mDeviceBroker.isInCommunication();
|
||||||
&& AudioSystem.isSingleAudioDeviceType(devices, device)
|
final boolean singleAudioDeviceType = AudioSystem.isSingleAudioDeviceType(devices, device);
|
||||||
&& !mDeviceBroker.hasMediaDynamicPolicy()
|
final boolean hasMediaDynamicPolicy = mDeviceBroker.hasMediaDynamicPolicy();
|
||||||
|
if (((device == musicDevice) || inCommunication)
|
||||||
|
&& singleAudioDeviceType
|
||||||
|
&& !hasMediaDynamicPolicy
|
||||||
&& (musicDevice != AudioSystem.DEVICE_OUT_REMOTE_SUBMIX)) {
|
&& (musicDevice != AudioSystem.DEVICE_OUT_REMOTE_SUBMIX)) {
|
||||||
if (!mAudioSystem.isStreamActive(AudioSystem.STREAM_MUSIC, 0 /*not looking in past*/)
|
if (!mAudioSystem.isStreamActive(AudioSystem.STREAM_MUSIC, 0 /*not looking in past*/)
|
||||||
&& !mDeviceBroker.hasAudioFocusUsers()) {
|
&& !mDeviceBroker.hasAudioFocusUsers()) {
|
||||||
@@ -1205,6 +1217,12 @@ public class AudioDeviceInventory {
|
|||||||
}
|
}
|
||||||
mDeviceBroker.postBroadcastBecomingNoisy();
|
mDeviceBroker.postBroadcastBecomingNoisy();
|
||||||
delay = AudioService.BECOMING_NOISY_DELAY_MS;
|
delay = AudioService.BECOMING_NOISY_DELAY_MS;
|
||||||
|
} else {
|
||||||
|
Log.i(TAG, "not sending NOISY: device:0x" + Integer.toHexString(device)
|
||||||
|
+ " musicDevice:0x" + Integer.toHexString(musicDevice)
|
||||||
|
+ " inComm:" + inCommunication
|
||||||
|
+ " mediaPolicy:" + hasMediaDynamicPolicy
|
||||||
|
+ " singleDevice:" + singleAudioDeviceType);
|
||||||
}
|
}
|
||||||
|
|
||||||
mmi.set(MediaMetrics.Property.DELAY_MS, delay).record();
|
mmi.set(MediaMetrics.Property.DELAY_MS, delay).record();
|
||||||
|
|||||||
Reference in New Issue
Block a user