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

Commit 062f015c authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add request to remote entry pendingIntent for get/create"

parents f97c1324 da213ccf
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -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,11 +188,21 @@ 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,
@@ -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();
    }

+4 −1
Original line number Diff line number Diff line
@@ -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;
    }
+1 −3
Original line number Diff line number Diff line
@@ -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;



    /**