Merge "AudioService: logs for decision on ACTION_AUDIO_BECOMING_NOISY" into sc-v2-dev am: 3440697aed

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16584443

Change-Id: If8b788620d17250dff60159eaa2d6b45db37922a
This commit is contained in:
TreeHugger Robot
2022-01-07 20:54:11 +00:00
committed by Automerger Merge Worker

View File

@@ -237,6 +237,9 @@ public class AudioDeviceInventory {
//------------------------------------------------------------
/*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:");
mPreferredDevices.forEach((strategy, device) -> {
pw.println(" " + prefix + "strategy:" + strategy + " device:" + device); });
@@ -1171,10 +1174,13 @@ public class AudioDeviceInventory {
state == AudioService.CONNECTION_STATE_CONNECTED
? MediaMetrics.Value.CONNECTED : MediaMetrics.Value.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
return 0;
}
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
return 0;
}
@@ -1184,18 +1190,24 @@ public class AudioDeviceInventory {
if (((di.mDeviceType & AudioSystem.DEVICE_BIT_IN) == 0)
&& BECOMING_NOISY_INTENT_DEVICES_SET.contains(di.mDeviceType)) {
devices.add(di.mDeviceType);
Log.i(TAG, "NOISY: adding 0x" + Integer.toHexString(di.mDeviceType));
}
}
if (musicDevice == AudioSystem.DEVICE_NONE) {
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
// because music routing is altered in this case.
// also checks whether media routing if affected by a dynamic policy or mirroring
if (((device == musicDevice) || mDeviceBroker.isInCommunication())
&& AudioSystem.isSingleAudioDeviceType(devices, device)
&& !mDeviceBroker.hasMediaDynamicPolicy()
final boolean inCommunication = mDeviceBroker.isInCommunication();
final boolean singleAudioDeviceType = AudioSystem.isSingleAudioDeviceType(devices, device);
final boolean hasMediaDynamicPolicy = mDeviceBroker.hasMediaDynamicPolicy();
if (((device == musicDevice) || inCommunication)
&& singleAudioDeviceType
&& !hasMediaDynamicPolicy
&& (musicDevice != AudioSystem.DEVICE_OUT_REMOTE_SUBMIX)) {
if (!mAudioSystem.isStreamActive(AudioSystem.STREAM_MUSIC, 0 /*not looking in past*/)
&& !mDeviceBroker.hasAudioFocusUsers()) {
@@ -1208,6 +1220,12 @@ public class AudioDeviceInventory {
}
mDeviceBroker.postBroadcastBecomingNoisy();
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();