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

Commit b960bcb4 authored by Reema Bajwa's avatar Reema Bajwa Committed by Android (Google) Code Review
Browse files

Merge "Skip filtering of options for hybrid service" into main

parents 62493fe7 f5696ed0
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ public final class ProviderGetSession extends ProviderSession<BeginGetCredential
        android.credentials.GetCredentialRequest filteredRequest =
                filterOptions(providerInfo.getCapabilities(),
                        getRequestSession.mClientRequest,
                        providerInfo);
                        providerInfo, getRequestSession.mHybridService);
        if (filteredRequest != null) {
            Map<String, CredentialOption> beginGetOptionToCredentialOptionMap =
                    new HashMap<>();
@@ -129,7 +129,7 @@ public final class ProviderGetSession extends ProviderSession<BeginGetCredential
        android.credentials.GetCredentialRequest filteredRequest =
                filterOptions(providerInfo.getCapabilities(),
                        getRequestSession.mClientRequest,
                        providerInfo);
                        providerInfo, getRequestSession.mHybridService);
        if (filteredRequest != null) {
            Map<String, CredentialOption> beginGetOptionToCredentialOptionMap =
                    new HashMap<>();
@@ -179,9 +179,19 @@ public final class ProviderGetSession extends ProviderSession<BeginGetCredential
    private static android.credentials.GetCredentialRequest filterOptions(
            List<String> providerCapabilities,
            android.credentials.GetCredentialRequest clientRequest,
            CredentialProviderInfo info
    ) {
            CredentialProviderInfo info,
            String hybridService) {
        Slog.i(TAG, "Filtering request options for: " + info.getComponentName());
        if (android.credentials.flags.Flags.hybridFilterFixEnabled()) {
            ComponentName hybridComponentName = ComponentName.unflattenFromString(hybridService);
            if (hybridComponentName != null && hybridComponentName
                    .equals(info.getComponentName())) {
                Slog.i(TAG, "Skipping filtering of options for hybrid service");
                return clientRequest;
            }
            Slog.w(TAG, "Could not parse hybrid service while filtering options");
        }

        List<CredentialOption> filteredOptions = new ArrayList<>();
        for (CredentialOption option : clientRequest.getCredentialOptions()) {
            if (providerCapabilities.contains(option.getType())