diff options
| -rw-r--r-- | core/java/android/credentials/ui/RequestInfo.java | 36 | ||||
| -rw-r--r-- | services/credentials/java/com/android/server/credentials/CreateRequestSession.java | 4 |
2 files changed, 34 insertions, 6 deletions
diff --git a/core/java/android/credentials/ui/RequestInfo.java b/core/java/android/credentials/ui/RequestInfo.java index 09d2db89a043..9ebb0585afd0 100644 --- a/core/java/android/credentials/ui/RequestInfo.java +++ b/core/java/android/credentials/ui/RequestInfo.java @@ -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<>()); } @@ -149,6 +157,20 @@ public final class RequestInfo implements Parcelable { } /** + * 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 diff --git a/services/credentials/java/com/android/server/credentials/CreateRequestSession.java b/services/credentials/java/com/android/server/credentials/CreateRequestSession.java index fc7fd1afe58f..b073ff400e44 100644 --- a/services/credentials/java/com/android/server/credentials/CreateRequestSession.java +++ b/services/credentials/java/com/android/server/credentials/CreateRequestSession.java @@ -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) { |