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

This commit is contained in:
Helen Qin
2023-04-28 04:22:44 +00:00
committed by Android (Google) Code Review
2 changed files with 34 additions and 6 deletions

View File

@@ -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

View File

@@ -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) {