From ba37dbb352d9cfaf25f607584c8784010a4a2c97 Mon Sep 17 00:00:00 2001 From: Ahaan Ugale Date: Sun, 17 Jan 2021 19:18:14 -0800 Subject: [PATCH] VIMS cleanup: set package on pm query instead of filtering results. Bug: 178410946 Test: atest CtsVoiceInteractionTestCases Change-Id: I8ab1824aba534857e2978861d001a74837de281d --- .../VoiceInteractionManagerService.java | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java index 81d511f42415a..e5f194877cf24 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java @@ -583,7 +583,8 @@ public class VoiceInteractionManagerService extends SystemService { VoiceInteractionServiceInfo findAvailInteractor(int userHandle, String packageName) { List available = mContext.getPackageManager().queryIntentServicesAsUser( - new Intent(VoiceInteractionService.SERVICE_INTERFACE), + new Intent(VoiceInteractionService.SERVICE_INTERFACE) + .setPackage(packageName), PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE, userHandle); int numAvailable = available.size(); @@ -603,19 +604,16 @@ public class VoiceInteractionManagerService extends SystemService { VoiceInteractionServiceInfo info = new VoiceInteractionServiceInfo( mContext.getPackageManager(), comp, userHandle); if (info.getParseError() == null) { - if (packageName == null || info.getServiceInfo().packageName.equals( - packageName)) { - if (foundInfo == null) { - foundInfo = info; - } else { - Slog.w(TAG, "More than one voice interaction service, " - + "picking first " - + new ComponentName( - foundInfo.getServiceInfo().packageName, - foundInfo.getServiceInfo().name) - + " over " - + new ComponentName(cur.packageName, cur.name)); - } + if (foundInfo == null) { + foundInfo = info; + } else { + Slog.w(TAG, "More than one voice interaction service, " + + "picking first " + + new ComponentName( + foundInfo.getServiceInfo().packageName, + foundInfo.getServiceInfo().name) + + " over " + + new ComponentName(cur.packageName, cur.name)); } } else { Slog.w(TAG, "Bad interaction service " + comp + ": "