Merge "Fix CredDesc reg flow bugs" into udc-dev am: 09917cd2df
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23721907 Change-Id: Ibed2cc6b397efc37c0408429747599aa8a3c21d4 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -28,6 +28,7 @@ import android.credentials.GetCredentialResponse;
|
||||
import android.credentials.IGetCredentialCallback;
|
||||
import android.credentials.ui.ProviderData;
|
||||
import android.credentials.ui.RequestInfo;
|
||||
import android.os.Binder;
|
||||
import android.os.CancellationSignal;
|
||||
import android.os.RemoteException;
|
||||
import android.service.credentials.CallingAppInfo;
|
||||
@@ -98,8 +99,9 @@ public class GetRequestSession extends RequestSession<GetCredentialRequest,
|
||||
protected void launchUiWithProviderData(ArrayList<ProviderData> providerDataList) {
|
||||
mRequestSessionMetric.collectUiCallStartTime(System.nanoTime());
|
||||
mCredentialManagerUi.setStatus(CredentialManagerUi.UiStatus.USER_INTERACTION);
|
||||
cancelExistingPendingIntent();
|
||||
Binder.withCleanCallingIdentity(()-> {
|
||||
try {
|
||||
cancelExistingPendingIntent();
|
||||
mPendingIntent = mCredentialManagerUi.createPendingIntent(
|
||||
RequestInfo.newGetRequestInfo(
|
||||
mRequestId, mClientRequest, mClientAppInfo.getPackageName(),
|
||||
@@ -112,9 +114,9 @@ public class GetRequestSession extends RequestSession<GetCredentialRequest,
|
||||
mCredentialManagerUi.setStatus(CredentialManagerUi.UiStatus.TERMINATED);
|
||||
String exception = GetCredentialException.TYPE_UNKNOWN;
|
||||
mRequestSessionMetric.collectFrameworkException(exception);
|
||||
respondToClientWithErrorAndFinish(
|
||||
exception, "Unable to instantiate selector");
|
||||
}
|
||||
respondToClientWithErrorAndFinish(exception, "Unable to instantiate selector");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -38,11 +38,13 @@ import android.util.Slog;
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -116,7 +118,7 @@ public class ProviderRegistryGetSession extends ProviderSession<CredentialOption
|
||||
@NonNull String servicePackageName,
|
||||
@NonNull CredentialOption requestOption) {
|
||||
super(context, requestOption, session,
|
||||
new ComponentName(servicePackageName, servicePackageName),
|
||||
new ComponentName(servicePackageName, UUID.randomUUID().toString()),
|
||||
userId, null);
|
||||
mCredentialDescriptionRegistry = CredentialDescriptionRegistry.forUser(userId);
|
||||
mCallingAppInfo = callingAppInfo;
|
||||
@@ -133,7 +135,7 @@ public class ProviderRegistryGetSession extends ProviderSession<CredentialOption
|
||||
@NonNull String servicePackageName,
|
||||
@NonNull CredentialOption requestOption) {
|
||||
super(context, requestOption, session,
|
||||
new ComponentName(servicePackageName, servicePackageName),
|
||||
new ComponentName(servicePackageName, UUID.randomUUID().toString()),
|
||||
userId, null);
|
||||
mCredentialDescriptionRegistry = CredentialDescriptionRegistry.forUser(userId);
|
||||
mCallingAppInfo = callingAppInfo;
|
||||
@@ -179,7 +181,9 @@ public class ProviderRegistryGetSession extends ProviderSession<CredentialOption
|
||||
return null;
|
||||
}
|
||||
return new GetCredentialProviderData.Builder(
|
||||
mComponentName.flattenToString()).setActionChips(null)
|
||||
mComponentName.flattenToString())
|
||||
.setActionChips(Collections.EMPTY_LIST)
|
||||
.setAuthenticationEntries(Collections.EMPTY_LIST)
|
||||
.setCredentialEntries(prepareUiCredentialEntries(
|
||||
mProviderResponse.stream().flatMap((Function<CredentialDescriptionRegistry
|
||||
.FilterResult,
|
||||
@@ -261,12 +265,12 @@ public class ProviderRegistryGetSession extends ProviderSession<CredentialOption
|
||||
.getFilteredResultForProvider(mCredentialProviderPackageName,
|
||||
mElementKeys);
|
||||
mCredentialEntries = mProviderResponse.stream().flatMap(
|
||||
(Function<CredentialDescriptionRegistry.FilterResult,
|
||||
Stream<CredentialEntry>>) filterResult
|
||||
-> filterResult.mCredentialEntries.stream())
|
||||
.collect(Collectors.toList());
|
||||
(Function<CredentialDescriptionRegistry.FilterResult,
|
||||
Stream<CredentialEntry>>)
|
||||
filterResult -> filterResult.mCredentialEntries.stream())
|
||||
.collect(Collectors.toList());
|
||||
updateStatusAndInvokeCallback(Status.CREDENTIALS_RECEIVED,
|
||||
/*source=*/ CredentialsSource.REGISTRY);
|
||||
/*source=*/ CredentialsSource.REGISTRY);
|
||||
mProviderSessionMetric.collectCandidateEntryMetrics(mCredentialEntries);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user