Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit efc37f36 authored by Omer Ozer's avatar Omer Ozer Committed by Automerger Merge Worker
Browse files

Merge "Fix CredDesc reg flow bugs" into udc-dev am: 09917cd2 am: 5b9290b7 am: aa805fbd

parents 0ae91e23 aa805fbd
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -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
+12 −8
Original line number Diff line number Diff line
@@ -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,
@@ -262,8 +266,8 @@ public class ProviderRegistryGetSession extends ProviderSession<CredentialOption
                        mElementKeys);
        mCredentialEntries = mProviderResponse.stream().flatMap(
                            (Function<CredentialDescriptionRegistry.FilterResult,
                        Stream<CredentialEntry>>) filterResult
                        -> filterResult.mCredentialEntries.stream())
                                    Stream<CredentialEntry>>)
                filterResult -> filterResult.mCredentialEntries.stream())
                    .collect(Collectors.toList());
        updateStatusAndInvokeCallback(Status.CREDENTIALS_RECEIVED,
                    /*source=*/ CredentialsSource.REGISTRY);