Set the primary provider list to UI

Test: local build
Bug: 279480457

Change-Id: I74550e3b4febdaa5abb14bbb090f7864663f8d94
This commit is contained in:
Jerry Shi
2023-05-03 20:43:51 -07:00
parent d07c89db48
commit 20f6a57df3
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);
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