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

Commit 7159bca3 authored by Helen Qin's avatar Helen Qin
Browse files

Add default provider id to the UI-backend interface

Bug: 279857017
Test: local build
Change-Id: I7dce4224be444444247b4348f452f3276033fd74
parent 5a2d1e8f
Loading
Loading
Loading
Loading
+31 −5
Original line number Original line Diff line number Diff line
@@ -30,6 +30,8 @@ import com.android.internal.util.AnnotationValidations;


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


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


    @NonNull
    private final List<String> mDefaultProviderIds;

    @Nullable
    @Nullable
    private final GetCredentialRequest mGetCredentialRequest;
    private final GetCredentialRequest mGetCredentialRequest;


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


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


    /** Creates new {@code RequestInfo} for a get-credential flow. */
    /** Creates new {@code RequestInfo} for a get-credential flow. */
@@ -107,7 +114,8 @@ public final class RequestInfo implements Parcelable {
            @NonNull String appPackageName) {
            @NonNull String appPackageName) {
        return new RequestInfo(
        return new RequestInfo(
                token, TYPE_GET, appPackageName, null, getCredentialRequest,
                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;
        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
     * Returns the non-null GetCredentialRequest when the type of the request is {@link
     * #TYPE_GET}, or null otherwise.
     * #TYPE_GET}, or null otherwise.
@@ -161,13 +183,15 @@ public final class RequestInfo implements Parcelable {
            @NonNull String appPackageName,
            @NonNull String appPackageName,
            @Nullable CreateCredentialRequest createCredentialRequest,
            @Nullable CreateCredentialRequest createCredentialRequest,
            @Nullable GetCredentialRequest getCredentialRequest,
            @Nullable GetCredentialRequest getCredentialRequest,
            boolean hasPermissionToOverrideDefault) {
            boolean hasPermissionToOverrideDefault,
            @NonNull List<String> defaultProviderIds) {
        mToken = token;
        mToken = token;
        mType = type;
        mType = type;
        mAppPackageName = appPackageName;
        mAppPackageName = appPackageName;
        mCreateCredentialRequest = createCredentialRequest;
        mCreateCredentialRequest = createCredentialRequest;
        mGetCredentialRequest = getCredentialRequest;
        mGetCredentialRequest = getCredentialRequest;
        mHasPermissionToOverrideDefault = hasPermissionToOverrideDefault;
        mHasPermissionToOverrideDefault = hasPermissionToOverrideDefault;
        mDefaultProviderIds = defaultProviderIds == null ? new ArrayList<>() : defaultProviderIds;
    }
    }


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


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


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