Merge "Set the primary provider list to UI" into udc-dev

This commit is contained in:
Guangjie (Jerry) Shi
2023-05-04 21:21:57 +00:00
committed by Android (Google) Code Review
2 changed files with 9 additions and 6 deletions

View File

@@ -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) {

View File

@@ -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);
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