Add id to the bundle so jetpack can access it

Test: built locally

Change-Id: If3df12fc32c21197c4c3847257874a6ae4fc1666
This commit is contained in:
Reema Bajwa
2023-02-09 00:17:45 +00:00
parent c8cb23c310
commit 844cc80138
3 changed files with 16 additions and 6 deletions

View File

@@ -39,6 +39,8 @@ import com.android.internal.util.Preconditions;
*/
@SuppressLint("ParcelNotFinal")
public class BeginGetCredentialOption implements Parcelable {
private static final String BUNDLE_ID_KEY =
"android.service.credentials.BeginGetCredentialOption.BUNDLE_ID_KEY";
/**
* A unique id associated with this request option.
*/
@@ -129,6 +131,11 @@ public class BeginGetCredentialOption implements Parcelable {
mType = Preconditions.checkStringNotEmpty(type, "type must not be empty");
mCandidateQueryData = requireNonNull(
candidateQueryData, "candidateQueryData must not be null");
addIdToBundle();
}
private void addIdToBundle() {
mCandidateQueryData.putString(BUNDLE_ID_KEY, mId);
}
private BeginGetCredentialOption(@NonNull Parcel in) {

View File

@@ -93,13 +93,14 @@ public final class ProviderCreateSession extends ProviderSession<
if (propagateToProvider) {
return new BeginCreateCredentialRequest(
type,
candidateQueryData
candidateQueryData,
callingAppInfo
);
}
return new BeginCreateCredentialRequest(
type,
candidateQueryData,
callingAppInfo);
candidateQueryData
);
}
@Nullable

View File

@@ -303,18 +303,20 @@ public final class ProviderGetSession extends ProviderSession<BeginGetCredential
Log.i(TAG, "in prepareUiProviderData creating ui entry with id " + entryId);
credentialUiEntries.add(new Entry(CREDENTIAL_ENTRY_KEY, entryId,
credentialEntry.getSlice(),
/*fillInIntent=*/setUpFillInIntent(credentialEntry.getType())));
/*fillInIntent=*/setUpFillInIntent(credentialEntry
.getBeginGetCredentialOption().getId())));
}
return credentialUiEntries;
}
private Intent setUpFillInIntent(@Nullable String id) {
private Intent setUpFillInIntent(@NonNull String id) {
// TODO: Determine if we should skip this entry if entry id is not set, or is set
// but does not resolve to a valid option. For now, not skipping it because
// it may be possible that the provider adds their own extras and expects to receive
// those and complete the flow.
if (id == null || mBeginGetOptionToCredentialOptionMap.get(id) == null) {
if (mBeginGetOptionToCredentialOptionMap.get(id) == null) {
Log.i(TAG, "Id from Credential Entry does not resolve to a valid option");
return new Intent();
}
return new Intent().putExtra(CredentialProviderService.EXTRA_GET_CREDENTIAL_REQUEST,
new GetCredentialRequest(