Merge "Set the primary provider list to UI" into udc-dev am: 6bcbecdd34 am: a4302436fb

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23016277

Change-Id: I74ecdf78ff20081fa5d4d6db6bf7b4fdf947710b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Guangjie (Jerry) Shi
2023-05-05 00:25:27 +00:00
committed by Automerger Merge Worker
2 changed files with 9 additions and 6 deletions

View File

@@ -49,6 +49,7 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
ICreateCredentialCallback, CreateCredentialResponse> ICreateCredentialCallback, CreateCredentialResponse>
implements ProviderSession.ProviderInternalCallback<CreateCredentialResponse> { implements ProviderSession.ProviderInternalCallback<CreateCredentialResponse> {
private static final String TAG = "CreateRequestSession"; private static final String TAG = "CreateRequestSession";
private final Set<String> mPrimaryProviders;
CreateRequestSession(@NonNull Context context, RequestSession.SessionLifetime sessionCallback, CreateRequestSession(@NonNull Context context, RequestSession.SessionLifetime sessionCallback,
Object lock, int userId, int callingUid, Object lock, int userId, int callingUid,
@@ -56,6 +57,7 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
ICreateCredentialCallback callback, ICreateCredentialCallback callback,
CallingAppInfo callingAppInfo, CallingAppInfo callingAppInfo,
Set<ComponentName> enabledProviders, Set<ComponentName> enabledProviders,
Set<String> primaryProviders,
CancellationSignal cancellationSignal, CancellationSignal cancellationSignal,
long startedTimestamp) { long startedTimestamp) {
super(context, sessionCallback, lock, userId, callingUid, request, callback, super(context, sessionCallback, lock, userId, callingUid, request, callback,
@@ -63,6 +65,7 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
callingAppInfo, enabledProviders, cancellationSignal, startedTimestamp); callingAppInfo, enabledProviders, cancellationSignal, startedTimestamp);
mRequestSessionMetric.collectCreateFlowInitialMetricInfo( mRequestSessionMetric.collectCreateFlowInitialMetricInfo(
/*origin=*/request.getOrigin() != null); /*origin=*/request.getOrigin() != null);
mPrimaryProviders = primaryProviders;
} }
/** /**
@@ -99,8 +102,7 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
mClientAppInfo.getPackageName(), mClientAppInfo.getPackageName(),
PermissionUtils.hasPermission(mContext, mClientAppInfo.getPackageName(), PermissionUtils.hasPermission(mContext, mClientAppInfo.getPackageName(),
Manifest.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS), Manifest.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS),
// TODO(b/279480457): populate /*defaultProviderId=*/new ArrayList<String>(mPrimaryProviders)),
/*defaultProviderId=*/new ArrayList<>()),
providerDataList); providerDataList);
mClientCallback.onPendingIntent(mPendingIntent); mClientCallback.onPendingIntent(mPendingIntent);
} catch (RemoteException e) { } 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( final int resolvedUserId = ActivityManager.handleIncomingUser(
Binder.getCallingPid(), Binder.getCallingUid(), Binder.getCallingPid(), Binder.getCallingUid(),
userId, false, false, userId, false, false,
"getPrimaryProvidersForUserId", null); "getPrimaryProvidersForUserId", null);
SecureSettingsServiceNameResolver resolver = new SecureSettingsServiceNameResolver( SecureSettingsServiceNameResolver resolver = new SecureSettingsServiceNameResolver(
mContext, Settings.Secure.CREDENTIAL_SERVICE_PRIMARY, context, Settings.Secure.CREDENTIAL_SERVICE_PRIMARY,
/* isMultipleMode= */ true); /* isMultipleMode= */ true);
String[] serviceNames = resolver.readServiceNameList(resolvedUserId); String[] serviceNames = resolver.readServiceNameList(resolvedUserId);
if (serviceNames == null) { if (serviceNames == null) {
@@ -656,6 +656,7 @@ public final class CredentialManagerService
callback, callback,
constructCallingAppInfo(callingPackage, userId, request.getOrigin()), constructCallingAppInfo(callingPackage, userId, request.getOrigin()),
getEnabledProviders(), getEnabledProviders(),
getPrimaryProvidersForUserId(getContext(), userId),
CancellationSignal.fromTransport(cancelTransport), CancellationSignal.fromTransport(cancelTransport),
timestampBegan); timestampBegan);
addSessionLocked(userId, session); addSessionLocked(userId, session);
@@ -804,7 +805,7 @@ public final class CredentialManagerService
return CredentialProviderInfoFactory.getCredentialProviderServices( return CredentialProviderInfoFactory.getCredentialProviderServices(
mContext, userId, providerFilter, getEnabledProviders(), mContext, userId, providerFilter, getEnabledProviders(),
getPrimaryProvidersForUserId(userId)); getPrimaryProvidersForUserId(mContext, userId));
} }
@Override @Override
@@ -815,7 +816,7 @@ public final class CredentialManagerService
final int userId = UserHandle.getCallingUserId(); final int userId = UserHandle.getCallingUserId();
return CredentialProviderInfoFactory.getCredentialProviderServicesForTesting( return CredentialProviderInfoFactory.getCredentialProviderServicesForTesting(
mContext, userId, providerFilter, getEnabledProviders(), mContext, userId, providerFilter, getEnabledProviders(),
getPrimaryProvidersForUserId(userId)); getPrimaryProvidersForUserId(mContext, userId));
} }
@Override @Override