Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 79593fb9 authored by Ahaan Ugale's avatar Ahaan Ugale
Browse files

VIMS: Helper method for InteractionService query.

Code is duplicated in a couple of places.

Bug: 178410946
Test: atest
Change-Id: I1385a03a098ed7fdee7254c4752df6cbaae4a7a2
parent 6809b5c0
Loading
Loading
Loading
Loading
+17 −16
Original line number Original line Diff line number Diff line
@@ -581,17 +581,24 @@ public class VoiceInteractionManagerService extends SystemService {
            }
            }
        }
        }


        VoiceInteractionServiceInfo findAvailInteractor(int userHandle, String packageName) {
        private List<ResolveInfo> queryInteractorServices(
            List<ResolveInfo> available =
                @UserIdInt int user,
                    mContext.getPackageManager().queryIntentServicesAsUser(
                @Nullable String packageName) {
                            new Intent(VoiceInteractionService.SERVICE_INTERFACE)
            return mContext.getPackageManager().queryIntentServicesAsUser(
                                    .setPackage(packageName),
                    new Intent(VoiceInteractionService.SERVICE_INTERFACE).setPackage(packageName),
                    PackageManager.GET_META_DATA
                    PackageManager.GET_META_DATA
                            | PackageManager.MATCH_DIRECT_BOOT_AWARE
                            | PackageManager.MATCH_DIRECT_BOOT_AWARE
                                    | PackageManager.MATCH_DIRECT_BOOT_UNAWARE, userHandle);
                            | PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
                    user);
        }

        VoiceInteractionServiceInfo findAvailInteractor(
                @UserIdInt int user,
                @Nullable String packageName) {
            List<ResolveInfo> available = queryInteractorServices(user, packageName);
            int numAvailable = available.size();
            int numAvailable = available.size();
            if (numAvailable == 0) {
            if (numAvailable == 0) {
                Slog.w(TAG, "no available voice interaction services found for user " + userHandle);
                Slog.w(TAG, "no available voice interaction services found for user " + user);
                return null;
                return null;
            }
            }
            // Find first system package.  We never want to allow third party services to
            // Find first system package.  We never want to allow third party services to
@@ -1643,13 +1650,7 @@ public class VoiceInteractionManagerService extends SystemService {
                    String pkg = roleHolders.get(0);
                    String pkg = roleHolders.get(0);


                    // Try to set role holder as VoiceInteractionService
                    // Try to set role holder as VoiceInteractionService
                    List<ResolveInfo> services = mPm.queryIntentServicesAsUser(
                    for (ResolveInfo resolveInfo : queryInteractorServices(userId, pkg)) {
                            new Intent(VoiceInteractionService.SERVICE_INTERFACE).setPackage(pkg),
                            PackageManager.GET_META_DATA
                                    | PackageManager.MATCH_DIRECT_BOOT_AWARE
                                    | PackageManager.MATCH_DIRECT_BOOT_UNAWARE, userId);

                    for (ResolveInfo resolveInfo : services) {
                        ServiceInfo serviceInfo = resolveInfo.serviceInfo;
                        ServiceInfo serviceInfo = resolveInfo.serviceInfo;


                        VoiceInteractionServiceInfo voiceInteractionServiceInfo =
                        VoiceInteractionServiceInfo voiceInteractionServiceInfo =