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