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

Commit 676a2b4b authored by Guangjie (Jerry) Shi's avatar Guangjie (Jerry) Shi Committed by Automerger Merge Worker
Browse files

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

Merge "Set the primary provider list to UI" into udc-dev am: 6bcbecdd am: 0984366a am: b6a8824f

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



Change-Id: I89284b356aa9b30c2f4ab45cbd4ddc1b620cd958
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c35e55eb b6a8824f
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -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) {
+5 −4
Original line number Original line 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(
        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