diff --git a/services/credentials/java/com/android/server/credentials/CreateRequestSession.java b/services/credentials/java/com/android/server/credentials/CreateRequestSession.java index 4b3206242d774..0af56470965c4 100644 --- a/services/credentials/java/com/android/server/credentials/CreateRequestSession.java +++ b/services/credentials/java/com/android/server/credentials/CreateRequestSession.java @@ -49,6 +49,7 @@ public final class CreateRequestSession extends RequestSession implements ProviderSession.ProviderInternalCallback { private static final String TAG = "CreateRequestSession"; + private final Set mPrimaryProviders; CreateRequestSession(@NonNull Context context, RequestSession.SessionLifetime sessionCallback, Object lock, int userId, int callingUid, @@ -56,6 +57,7 @@ public final class CreateRequestSession extends RequestSession enabledProviders, + Set primaryProviders, CancellationSignal cancellationSignal, long startedTimestamp) { super(context, sessionCallback, lock, userId, callingUid, request, callback, @@ -63,6 +65,7 @@ public final class CreateRequestSession extends RequestSession()), + /*defaultProviderId=*/new ArrayList(mPrimaryProviders)), providerDataList); mClientCallback.onPendingIntent(mPendingIntent); } catch (RemoteException e) { diff --git a/services/credentials/java/com/android/server/credentials/CredentialManagerService.java b/services/credentials/java/com/android/server/credentials/CredentialManagerService.java index d90cb36fcd04d..8728c3c647159 100644 --- a/services/credentials/java/com/android/server/credentials/CredentialManagerService.java +++ b/services/credentials/java/com/android/server/credentials/CredentialManagerService.java @@ -281,13 +281,13 @@ public final class CredentialManagerService } } - private Set getPrimaryProvidersForUserId(int userId) { + private static Set 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); if (serviceNames == null) { @@ -656,6 +656,7 @@ public final class CredentialManagerService callback, constructCallingAppInfo(callingPackage, userId, request.getOrigin()), getEnabledProviders(), + getPrimaryProvidersForUserId(getContext(), userId), CancellationSignal.fromTransport(cancelTransport), timestampBegan); addSessionLocked(userId, session); @@ -804,7 +805,7 @@ public final class CredentialManagerService return CredentialProviderInfoFactory.getCredentialProviderServices( mContext, userId, providerFilter, getEnabledProviders(), - getPrimaryProvidersForUserId(userId)); + getPrimaryProvidersForUserId(mContext, userId)); } @Override @@ -815,7 +816,7 @@ public final class CredentialManagerService final int userId = UserHandle.getCallingUserId(); return CredentialProviderInfoFactory.getCredentialProviderServicesForTesting( mContext, userId, providerFilter, getEnabledProviders(), - getPrimaryProvidersForUserId(userId)); + getPrimaryProvidersForUserId(mContext, userId)); } @Override