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

Commit 20f6a57d authored by Jerry Shi's avatar Jerry Shi
Browse files

Set the primary provider list to UI

Test: local build
Bug: 279480457

Change-Id: I74550e3b4febdaa5abb14bbb090f7864663f8d94
parent d07c89db
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
        ICreateCredentialCallback, CreateCredentialResponse>
        implements ProviderSession.ProviderInternalCallback<CreateCredentialResponse> {
    private static final String TAG = "CreateRequestSession";
    private final Set<String> mPrimaryProviders;

    CreateRequestSession(@NonNull Context context, RequestSession.SessionLifetime sessionCallback,
            Object lock, int userId, int callingUid,
@@ -56,6 +57,7 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
            ICreateCredentialCallback callback,
            CallingAppInfo callingAppInfo,
            Set<ComponentName> enabledProviders,
            Set<String> primaryProviders,
            CancellationSignal cancellationSignal,
            long startedTimestamp) {
        super(context, sessionCallback, lock, userId, callingUid, request, callback,
@@ -63,6 +65,7 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
                callingAppInfo, enabledProviders, cancellationSignal, startedTimestamp);
        mRequestSessionMetric.collectCreateFlowInitialMetricInfo(
                /*origin=*/request.getOrigin() != null);
        mPrimaryProviders = primaryProviders;
    }

    /**
@@ -99,8 +102,7 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
                            mClientAppInfo.getPackageName(),
                            PermissionUtils.hasPermission(mContext, mClientAppInfo.getPackageName(),
                                    Manifest.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS),
                            // TODO(b/279480457): populate
                            /*defaultProviderId=*/new ArrayList<>()),
                            /*defaultProviderId=*/new ArrayList<String>(mPrimaryProviders)),
                    providerDataList);
            mClientCallback.onPendingIntent(mPendingIntent);
        } catch (RemoteException e) {
+5 −4
Original line number Diff line number Diff line
@@ -281,13 +281,13 @@ public final class CredentialManagerService
        }
    }

    private Set<String> getPrimaryProvidersForUserId(int userId) {
    private static Set<String> getPrimaryProvidersForUserId(Context context, int userId) {
        final int resolvedUserId = ActivityManager.handleIncomingUser(
                Binder.getCallingPid(), Binder.getCallingUid(),
                userId, false, false,
                "getPrimaryProvidersForUserId", null);
        SecureSettingsServiceNameResolver resolver = new SecureSettingsServiceNameResolver(
                mContext, Settings.Secure.CREDENTIAL_SERVICE_PRIMARY,
                context, Settings.Secure.CREDENTIAL_SERVICE_PRIMARY,
                /* isMultipleMode= */ true);
        String[] serviceNames = resolver.readServiceNameList(resolvedUserId);
        return new HashSet<String>(Arrays.asList(serviceNames));
@@ -653,6 +653,7 @@ public final class CredentialManagerService
                            callback,
                            constructCallingAppInfo(callingPackage, userId, request.getOrigin()),
                            getEnabledProviders(),
                            getPrimaryProvidersForUserId(getContext(), userId),
                            CancellationSignal.fromTransport(cancelTransport),
                            timestampBegan);
            addSessionLocked(userId, session);
@@ -801,7 +802,7 @@ public final class CredentialManagerService

            return CredentialProviderInfoFactory.getCredentialProviderServices(
                    mContext, userId, providerFilter, getEnabledProviders(),
                    getPrimaryProvidersForUserId(userId));
                    getPrimaryProvidersForUserId(mContext, userId));
        }

        @Override
@@ -812,7 +813,7 @@ public final class CredentialManagerService
            final int userId = UserHandle.getCallingUserId();
            return CredentialProviderInfoFactory.getCredentialProviderServicesForTesting(
                    mContext, userId, providerFilter, getEnabledProviders(),
                    getPrimaryProvidersForUserId(userId));
                    getPrimaryProvidersForUserId(mContext, userId));
        }

        @Override