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

Commit 8feb89a0 authored by Helen Qin's avatar Helen Qin Committed by Android (Google) Code Review
Browse files

Merge "Add default provider id to the UI-backend interface" into udc-dev

parents 64eaba03 7159bca3
Loading
Loading
Loading
Loading
+31 −5
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ import com.android.internal.util.AnnotationValidations;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.List;

/**
 * Contains information about the request that initiated this UX flow.
@@ -64,6 +66,9 @@ public final class RequestInfo implements Parcelable {
    @Nullable
    private final CreateCredentialRequest mCreateCredentialRequest;

    @NonNull
    private final List<String> mDefaultProviderIds;

    @Nullable
    private final GetCredentialRequest mGetCredentialRequest;

@@ -83,7 +88,8 @@ public final class RequestInfo implements Parcelable {
            @NonNull String appPackageName) {
        return new RequestInfo(
                token, TYPE_CREATE, appPackageName, createCredentialRequest, null,
                /*hasPermissionToOverrideDefault=*/ false);
                /*hasPermissionToOverrideDefault=*/ false,
                /*defaultProviderIds=*/ new ArrayList<>());
    }

    /**
@@ -94,10 +100,11 @@ public final class RequestInfo implements Parcelable {
    @NonNull
    public static RequestInfo newCreateRequestInfo(
            @NonNull IBinder token, @NonNull CreateCredentialRequest createCredentialRequest,
            @NonNull String appPackageName, boolean hasPermissionToOverrideDefault) {
            @NonNull String appPackageName, boolean hasPermissionToOverrideDefault,
            @NonNull List<String> defaultProviderIds) {
        return new RequestInfo(
                token, TYPE_CREATE, appPackageName, createCredentialRequest, null,
                hasPermissionToOverrideDefault);
                hasPermissionToOverrideDefault, defaultProviderIds);
    }

    /** Creates new {@code RequestInfo} for a get-credential flow. */
@@ -107,7 +114,8 @@ public final class RequestInfo implements Parcelable {
            @NonNull String appPackageName) {
        return new RequestInfo(
                token, TYPE_GET, appPackageName, null, getCredentialRequest,
                /*hasPermissionToOverrideDefault=*/ false);
                /*hasPermissionToOverrideDefault=*/ false,
                /*defaultProviderIds=*/ new ArrayList<>());
    }


@@ -148,6 +156,20 @@ public final class RequestInfo implements Parcelable {
        return mCreateCredentialRequest;
    }

    /**
     * Returns default provider identifier (flattened component name) configured from the user
     * settings.
     *
     * Will only be possibly non-empty for the create use case. Not meaningful for the sign-in use
     * case.
     *
     * @hide
     */
    @NonNull
    public List<String> getDefaultProviderIds() {
        return mDefaultProviderIds;
    }

    /**
     * Returns the non-null GetCredentialRequest when the type of the request is {@link
     * #TYPE_GET}, or null otherwise.
@@ -161,13 +183,15 @@ public final class RequestInfo implements Parcelable {
            @NonNull String appPackageName,
            @Nullable CreateCredentialRequest createCredentialRequest,
            @Nullable GetCredentialRequest getCredentialRequest,
            boolean hasPermissionToOverrideDefault) {
            boolean hasPermissionToOverrideDefault,
            @NonNull List<String> defaultProviderIds) {
        mToken = token;
        mType = type;
        mAppPackageName = appPackageName;
        mCreateCredentialRequest = createCredentialRequest;
        mGetCredentialRequest = getCredentialRequest;
        mHasPermissionToOverrideDefault = hasPermissionToOverrideDefault;
        mDefaultProviderIds = defaultProviderIds == null ? new ArrayList<>() : defaultProviderIds;
    }

    private RequestInfo(@NonNull Parcel in) {
@@ -188,6 +212,7 @@ public final class RequestInfo implements Parcelable {
        mCreateCredentialRequest = createCredentialRequest;
        mGetCredentialRequest = getCredentialRequest;
        mHasPermissionToOverrideDefault = in.readBoolean();
        mDefaultProviderIds = in.createStringArrayList();
    }

    @Override
@@ -198,6 +223,7 @@ public final class RequestInfo implements Parcelable {
        dest.writeTypedObject(mCreateCredentialRequest, flags);
        dest.writeTypedObject(mGetCredentialRequest, flags);
        dest.writeBoolean(mHasPermissionToOverrideDefault);
        dest.writeStringList(mDefaultProviderIds);
    }

    @Override
+3 −1
Original line number Diff line number Diff line
@@ -98,7 +98,9 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
                            mRequestId, mClientRequest,
                            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<>()),
                    providerDataList);
            mClientCallback.onPendingIntent(mPendingIntent);
        } catch (RemoteException e) {