Loading media/java/android/media/AudioManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -8402,6 +8402,12 @@ public class AudioManager { * {@link #addAssistantServicesUids(int[])} and not yet removed with * {@link #removeAssistantServicesUids(int[])} * * <p> Note that during native audioserver crash and after boot up the list of assistant * UIDs will be reset to an empty list (i.e. no UID will be considered as assistant) * Just after user switch, the list of assistant will also reset to empty. * In both cases,The component's UID of the assistiant role or assistant setting will be * automitically added to the list by the audio service. * * @return array of assistants UIDs * * @hide Loading services/core/java/com/android/server/audio/AudioService.java +16 −6 Original line number Diff line number Diff line Loading @@ -1368,14 +1368,18 @@ public class AudioService extends IAudioService.Stub mRm = (RoleManager) mContext.getSystemService(Context.ROLE_SERVICE); if (mRm != null) { mRm.addOnRoleHoldersChangedListenerAsUser(mExecutor, this, UserHandle.ALL); updateAssistantUId(true); synchronized (mSettingsLock) { updateAssistantUIdLocked(/* forceUpdate= */ true); } } } @Override public void onRoleHoldersChanged(@NonNull String roleName, @NonNull UserHandle user) { if (RoleManager.ROLE_ASSISTANT.equals(roleName)) { updateAssistantUId(false); synchronized (mSettingsLock) { updateAssistantUIdLocked(/* forceUpdate= */ false); } } } Loading Loading @@ -1474,7 +1478,7 @@ public class AudioService extends IAudioService.Stub sendEncodedSurroundMode(mContentResolver, "onAudioServerDied"); sendEnabledSurroundFormats(mContentResolver, true); AudioSystem.setRttEnabled(mRttEnabled); updateAssistantServicesUidsLocked(); resetAssistantServicesUidsLocked(); } synchronized (mAccessibilityServiceUidsLock) { Loading Loading @@ -1602,6 +1606,12 @@ public class AudioService extends IAudioService.Stub } } @GuardedBy("mSettingsLock") private void resetAssistantServicesUidsLocked() { mAssistantUids.clear(); updateAssistantUIdLocked(/* forceUpdate= */ true); } @GuardedBy("mSettingsLock") private void updateAssistantServicesUidsLocked() { int[] assistantUids = mAssistantUids.stream().mapToInt(Integer::intValue).toArray(); Loading Loading @@ -2386,7 +2396,7 @@ public class AudioService extends IAudioService.Stub } @GuardedBy("mSettingsLock") private void updateAssistantUId(boolean forceUpdate) { private void updateAssistantUIdLocked(boolean forceUpdate) { int assistantUid = INVALID_UID; // Consider assistants in the following order of priority: // 1) apk in assistant role Loading Loading @@ -2484,7 +2494,7 @@ public class AudioService extends IAudioService.Stub readDockAudioSettings(cr); sendEncodedSurroundMode(cr, "readPersistedSettings"); sendEnabledSurroundFormats(cr, true); updateAssistantUId(true); updateAssistantUIdLocked(/* forceUpdate= */ true); resetActiveAssistantUidsLocked(); AudioSystem.setRttEnabled(mRttEnabled); } Loading Loading @@ -8317,7 +8327,7 @@ public class AudioService extends IAudioService.Stub updateMasterBalance(mContentResolver); updateEncodedSurroundOutput(); sendEnabledSurroundFormats(mContentResolver, mSurroundModeChanged); updateAssistantUId(false); updateAssistantUIdLocked(/* forceUpdate= */ false); } } Loading services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java +4 −0 Original line number Diff line number Diff line Loading @@ -679,6 +679,7 @@ final class HotwordDetectionConnection { private void restartProcessLocked() { Slog.v(TAG, "Restarting hotword detection process"); ServiceConnection oldConnection = mRemoteHotwordDetectionService; HotwordDetectionServiceIdentity previousIdentity = mIdentity; // TODO(volnov): this can be done after connect() has been successful. if (mValidatingDspTrigger) { Loading Loading @@ -722,6 +723,9 @@ final class HotwordDetectionConnection { } oldConnection.ignoreConnectionStatusEvents(); oldConnection.unbind(); if (previousIdentity != null) { removeServiceUidForAudioPolicy(previousIdentity.getIsolatedUid()); } } static final class SoundTriggerCallback extends IRecognitionStatusCallback.Stub { Loading Loading
media/java/android/media/AudioManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -8402,6 +8402,12 @@ public class AudioManager { * {@link #addAssistantServicesUids(int[])} and not yet removed with * {@link #removeAssistantServicesUids(int[])} * * <p> Note that during native audioserver crash and after boot up the list of assistant * UIDs will be reset to an empty list (i.e. no UID will be considered as assistant) * Just after user switch, the list of assistant will also reset to empty. * In both cases,The component's UID of the assistiant role or assistant setting will be * automitically added to the list by the audio service. * * @return array of assistants UIDs * * @hide Loading
services/core/java/com/android/server/audio/AudioService.java +16 −6 Original line number Diff line number Diff line Loading @@ -1368,14 +1368,18 @@ public class AudioService extends IAudioService.Stub mRm = (RoleManager) mContext.getSystemService(Context.ROLE_SERVICE); if (mRm != null) { mRm.addOnRoleHoldersChangedListenerAsUser(mExecutor, this, UserHandle.ALL); updateAssistantUId(true); synchronized (mSettingsLock) { updateAssistantUIdLocked(/* forceUpdate= */ true); } } } @Override public void onRoleHoldersChanged(@NonNull String roleName, @NonNull UserHandle user) { if (RoleManager.ROLE_ASSISTANT.equals(roleName)) { updateAssistantUId(false); synchronized (mSettingsLock) { updateAssistantUIdLocked(/* forceUpdate= */ false); } } } Loading Loading @@ -1474,7 +1478,7 @@ public class AudioService extends IAudioService.Stub sendEncodedSurroundMode(mContentResolver, "onAudioServerDied"); sendEnabledSurroundFormats(mContentResolver, true); AudioSystem.setRttEnabled(mRttEnabled); updateAssistantServicesUidsLocked(); resetAssistantServicesUidsLocked(); } synchronized (mAccessibilityServiceUidsLock) { Loading Loading @@ -1602,6 +1606,12 @@ public class AudioService extends IAudioService.Stub } } @GuardedBy("mSettingsLock") private void resetAssistantServicesUidsLocked() { mAssistantUids.clear(); updateAssistantUIdLocked(/* forceUpdate= */ true); } @GuardedBy("mSettingsLock") private void updateAssistantServicesUidsLocked() { int[] assistantUids = mAssistantUids.stream().mapToInt(Integer::intValue).toArray(); Loading Loading @@ -2386,7 +2396,7 @@ public class AudioService extends IAudioService.Stub } @GuardedBy("mSettingsLock") private void updateAssistantUId(boolean forceUpdate) { private void updateAssistantUIdLocked(boolean forceUpdate) { int assistantUid = INVALID_UID; // Consider assistants in the following order of priority: // 1) apk in assistant role Loading Loading @@ -2484,7 +2494,7 @@ public class AudioService extends IAudioService.Stub readDockAudioSettings(cr); sendEncodedSurroundMode(cr, "readPersistedSettings"); sendEnabledSurroundFormats(cr, true); updateAssistantUId(true); updateAssistantUIdLocked(/* forceUpdate= */ true); resetActiveAssistantUidsLocked(); AudioSystem.setRttEnabled(mRttEnabled); } Loading Loading @@ -8317,7 +8327,7 @@ public class AudioService extends IAudioService.Stub updateMasterBalance(mContentResolver); updateEncodedSurroundOutput(); sendEnabledSurroundFormats(mContentResolver, mSurroundModeChanged); updateAssistantUId(false); updateAssistantUIdLocked(/* forceUpdate= */ false); } } Loading
services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java +4 −0 Original line number Diff line number Diff line Loading @@ -679,6 +679,7 @@ final class HotwordDetectionConnection { private void restartProcessLocked() { Slog.v(TAG, "Restarting hotword detection process"); ServiceConnection oldConnection = mRemoteHotwordDetectionService; HotwordDetectionServiceIdentity previousIdentity = mIdentity; // TODO(volnov): this can be done after connect() has been successful. if (mValidatingDspTrigger) { Loading Loading @@ -722,6 +723,9 @@ final class HotwordDetectionConnection { } oldConnection.ignoreConnectionStatusEvents(); oldConnection.unbind(); if (previousIdentity != null) { removeServiceUidForAudioPolicy(previousIdentity.getIsolatedUid()); } } static final class SoundTriggerCallback extends IRecognitionStatusCallback.Stub { Loading