audio policy: fix capture policy for HOTWORD source

Do not consider Assistant capturing with HOTWORD source
when determining lastest active capture client. As assistant
capturing for HOTWORD does not silence other captures, it should not
prevent another client from being selected as the latest active.

Bug: 135806801
Test: Start capture with Recorder app, place in background and trigger
false OK G detection

Change-Id: Ic17bfd70675ef749d6a678d067112b1dbd205746
Merged-In: Ic17bfd70675ef749d6a678d067112b1dbd205746
diff --git a/services/audiopolicy/service/AudioPolicyService.cpp b/services/audiopolicy/service/AudioPolicyService.cpp
index 85ea94f..62010e1 100644
--- a/services/audiopolicy/service/AudioPolicyService.cpp
+++ b/services/audiopolicy/service/AudioPolicyService.cpp
@@ -458,16 +458,20 @@
             continue;
         }
 
+        bool isAssistant = mUidPolicy->isAssistantUid(current->uid);
         if (appState == APP_STATE_TOP) {
             if (current->startTimeNs > topStartNs) {
                 topActive = current;
                 topStartNs = current->startTimeNs;
             }
-            if (mUidPolicy->isAssistantUid(current->uid)) {
+            if (isAssistant) {
                 isAssistantOnTop = true;
             }
         }
-        if (current->startTimeNs > latestStartNs) {
+        // Assistant capturing for HOTWORD not considered for latest active to avoid
+        // masking regular clients started before
+        if (current->startTimeNs > latestStartNs &&
+            !(current->attributes.source == AUDIO_SOURCE_HOTWORD && isAssistant)) {
             latestActive = current;
             latestStartNs = current->startTimeNs;
         }