Propagate SEET_ALLOWED_PROVIDERS permission to get flow

Test: Built locally
Bug: 281599707

Change-Id: I94db6c7a3b68ac2dc40da09be2a777225bdeb169
This commit is contained in:
Reema Bajwa
2023-05-09 19:08:02 +00:00
parent c51d3ed90c
commit b89ee43ee3
3 changed files with 23 additions and 2 deletions

View File

@@ -113,6 +113,21 @@ public final class RequestInfo implements Parcelable {
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. */
@NonNull
public static RequestInfo newGetRequestInfo(

View File

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

View File

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