Add request to remote entry pendingIntent for get/create
Test: built & deployed locally Change-Id: Ibebffacca3fe3d4abc7fcc308dd1cb55ee658a21
This commit is contained in:
@@ -35,6 +35,7 @@ import android.service.credentials.CreateEntry;
|
||||
import android.service.credentials.CredentialProviderInfo;
|
||||
import android.service.credentials.CredentialProviderService;
|
||||
import android.util.Log;
|
||||
import android.util.Pair;
|
||||
import android.util.Slog;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -62,6 +63,8 @@ public final class ProviderCreateSession extends ProviderSession<
|
||||
|
||||
private CreateCredentialException mProviderException;
|
||||
|
||||
@Nullable protected Pair<String, CreateEntry> mUiRemoteEntry;
|
||||
|
||||
/** Creates a new provider session to be used by the request session. */
|
||||
@Nullable public static ProviderCreateSession createNewSession(
|
||||
Context context,
|
||||
@@ -185,12 +188,22 @@ public final class ProviderCreateSession extends ProviderSession<
|
||||
Log.i(TAG, "In prepareUiData save entries not null");
|
||||
return prepareUiProviderData(
|
||||
prepareUiSaveEntries(response.getCreateEntries()),
|
||||
null,
|
||||
/*isDefaultProvider=*/false);
|
||||
prepareUiRemoteEntry(response.getRemoteCreateEntry()));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private Entry prepareUiRemoteEntry(CreateEntry remoteCreateEntry) {
|
||||
if (remoteCreateEntry == null) {
|
||||
return null;
|
||||
}
|
||||
String entryId = generateUniqueId();
|
||||
Entry remoteEntry = new Entry(REMOTE_ENTRY_KEY, entryId, remoteCreateEntry.getSlice(),
|
||||
setUpFillInIntent());
|
||||
mUiRemoteEntry = new Pair<>(entryId, remoteCreateEntry);
|
||||
return remoteEntry;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUiEntrySelected(String entryType, String entryKey,
|
||||
ProviderPendingIntentResponse providerPendingIntentResponse) {
|
||||
@@ -246,10 +259,11 @@ public final class ProviderCreateSession extends ProviderSession<
|
||||
}
|
||||
|
||||
private CreateCredentialProviderData prepareUiProviderData(List<Entry> saveEntries,
|
||||
Entry remoteEntry, boolean isDefaultProvider) {
|
||||
Entry remoteEntry) {
|
||||
return new CreateCredentialProviderData.Builder(
|
||||
mComponentName.flattenToString())
|
||||
.setSaveEntries(saveEntries)
|
||||
.setRemoteEntry(remoteEntry)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@@ -75,6 +75,8 @@ public final class ProviderGetSession extends ProviderSession<BeginGetCredential
|
||||
@Nullable
|
||||
private final Map<String, Action> mUiAuthenticationEntries = new HashMap<>();
|
||||
|
||||
@Nullable protected Pair<String, CredentialEntry> mUiRemoteEntry;
|
||||
|
||||
/** The complete request to be used in the second round. */
|
||||
private final android.credentials.GetCredentialRequest mCompleteRequest;
|
||||
private final CallingAppInfo mCallingAppInfo;
|
||||
@@ -271,7 +273,8 @@ public final class ProviderGetSession extends ProviderSession<BeginGetCredential
|
||||
return null;
|
||||
}
|
||||
String entryId = generateUniqueId();
|
||||
Entry remoteEntry = new Entry(REMOTE_ENTRY_KEY, entryId, remoteCredentialEntry.getSlice());
|
||||
Entry remoteEntry = new Entry(REMOTE_ENTRY_KEY, entryId, remoteCredentialEntry.getSlice(),
|
||||
setUpFillInIntent(remoteCredentialEntry.getType()));
|
||||
mUiRemoteEntry = new Pair<>(entryId, remoteCredentialEntry);
|
||||
return remoteEntry;
|
||||
}
|
||||
|
||||
@@ -25,10 +25,8 @@ import android.credentials.ui.ProviderData;
|
||||
import android.credentials.ui.ProviderPendingIntentResponse;
|
||||
import android.os.ICancellationSignal;
|
||||
import android.os.RemoteException;
|
||||
import android.service.credentials.CredentialEntry;
|
||||
import android.service.credentials.CredentialProviderInfo;
|
||||
import android.util.Log;
|
||||
import android.util.Pair;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@@ -54,7 +52,7 @@ public abstract class ProviderSession<T, R>
|
||||
@NonNull protected final T mProviderRequest;
|
||||
@Nullable protected R mProviderResponse;
|
||||
@NonNull protected Boolean mProviderResponseSet = false;
|
||||
@Nullable protected Pair<String, CredentialEntry> mUiRemoteEntry;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user