Merge "Propagate SEET_ALLOWED_PROVIDERS permission to get flow" into udc-dev

This commit is contained in:
Reema Bajwa
2023-05-10 18:01:39 +00:00
committed by Android (Google) Code Review
3 changed files with 23 additions and 2 deletions

View File

@@ -113,6 +113,21 @@ public final class RequestInfo implements Parcelable {
hasPermissionToOverrideDefault, defaultProviderIds); hasPermissionToOverrideDefault, defaultProviderIds);
} }
/**
* Creates new {@code RequestInfo} for a get-credential flow.
*
* @hide
*/
@NonNull
public static RequestInfo newGetRequestInfo(
@NonNull IBinder token, @NonNull GetCredentialRequest getCredentialRequest,
@NonNull String appPackageName, boolean hasPermissionToOverrideDefault) {
return new RequestInfo(
token, TYPE_GET, appPackageName, null, getCredentialRequest,
hasPermissionToOverrideDefault,
/*defaultProviderIds=*/ new ArrayList<>());
}
/** Creates new {@code RequestInfo} for a get-credential flow. */ /** Creates new {@code RequestInfo} for a get-credential flow. */
@NonNull @NonNull
public static RequestInfo newGetRequestInfo( public static RequestInfo newGetRequestInfo(

View File

@@ -16,6 +16,7 @@
package com.android.server.credentials; package com.android.server.credentials;
import android.Manifest;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
@@ -30,6 +31,7 @@ import android.credentials.ui.RequestInfo;
import android.os.CancellationSignal; import android.os.CancellationSignal;
import android.os.RemoteException; import android.os.RemoteException;
import android.service.credentials.CallingAppInfo; import android.service.credentials.CallingAppInfo;
import android.service.credentials.PermissionUtils;
import android.util.Slog; import android.util.Slog;
import com.android.server.credentials.metrics.ProviderSessionMetric; import com.android.server.credentials.metrics.ProviderSessionMetric;
@@ -101,7 +103,9 @@ public class GetRequestSession extends RequestSession<GetCredentialRequest,
try { try {
mPendingIntent = mCredentialManagerUi.createPendingIntent( mPendingIntent = mCredentialManagerUi.createPendingIntent(
RequestInfo.newGetRequestInfo( RequestInfo.newGetRequestInfo(
mRequestId, mClientRequest, mClientAppInfo.getPackageName()), mRequestId, mClientRequest, mClientAppInfo.getPackageName(),
PermissionUtils.hasPermission(mContext, mClientAppInfo.getPackageName(),
Manifest.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS)),
providerDataList); providerDataList);
mClientCallback.onPendingIntent(mPendingIntent); mClientCallback.onPendingIntent(mPendingIntent);
} catch (RemoteException e) { } catch (RemoteException e) {

View File

@@ -189,7 +189,9 @@ public class PrepareGetRequestSession extends GetRequestSession {
if (!providerDataList.isEmpty()) { if (!providerDataList.isEmpty()) {
return mCredentialManagerUi.createPendingIntent( return mCredentialManagerUi.createPendingIntent(
RequestInfo.newGetRequestInfo( RequestInfo.newGetRequestInfo(
mRequestId, mClientRequest, mClientAppInfo.getPackageName()), mRequestId, mClientRequest, mClientAppInfo.getPackageName(),
PermissionUtils.hasPermission(mContext, mClientAppInfo.getPackageName(),
Manifest.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS)),
providerDataList); providerDataList);
} else { } else {
return null; return null;