audio: prefer STRATEGY_SONIFICATION when ringotne is active
Use the STRATEGY_SONIFICATION as the major routing
when ringtone is concurrency with touch/system/media playback
Bug: 191220137
Test:
b/192304579 to test
1. incoming ring on haptic audio + touch/media on BT/USB/Speaker Safe
2. incoming ring on primary + touch/media on BT/USB/Speaker Safe
Signed-off-by: Carter Hsu <carterhsu@google.com>
Change-Id: Id7da4e66cf8533798f5098c02aaacbbe574e3290
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index 2e866ff..0c4608a 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -5847,11 +5847,12 @@
// With low-latency playing on speaker, music on WFD, when the first low-latency
// output is stopped, getNewOutputDevices checks for a product strategy
// from the list, as STRATEGY_SONIFICATION comes prior to STRATEGY_MEDIA.
- // If an ALARM or ENFORCED_AUDIBLE stream is supported by the product strategy,
+ // If an ALARM, RING or ENFORCED_AUDIBLE stream is supported by the product strategy,
// devices are returned for STRATEGY_SONIFICATION without checking whether the
// stream is associated to the output descriptor.
if (doGetOutputDevicesForVoice() || outputDesc->isStrategyActive(productStrategy) ||
((hasStreamActive(AUDIO_STREAM_ALARM) ||
+ hasStreamActive(AUDIO_STREAM_RING) ||
hasStreamActive(AUDIO_STREAM_ENFORCED_AUDIBLE)) &&
mOutputs.isStrategyActiveOnSameModule(productStrategy, outputDesc))) {
// Retrieval of devices for voice DL is done on primary output profile, cannot