Specifically:
1. for the create request, add the api for prefetch data that's the partial request data used
during the initial ping to each provider. This is needed for security
reason, so that we don't send sensitive request data to providers
until the user explicitly consents.
2. for both requests, add(unhide) the requireSystemProvider api, which when true indicates
this request can only be fulfilled by system providers.
Bug: 246564035
Bug: 253153445
CTS-Coverage-Bug: 246637346
Test: Local Build & Deployment
Change-Id: I9f4a96dc28e87f92924abda8412b15010ee431b7
Apis (get/create credentials) that involves UIs now requires an app
activity as an input paramter that's used to launch UIs throughout the
flows. This way the UIs will be launched within the app activity task
stack.
Bug: 246564035
Bug: 253156924
Bug: 253156958
CTS-Coverage-Bug: 246637346
Test: Local Build & Deployment
Change-Id: Ia099c387adce516ebc52deb9ae00a6b046e9d296
This API is independent of the get-credential api because at
the time of the get call, information about whether the previous /
existing user state should be cleared has already been lost. That is,
we can't have this as a parameter to the get call because it'd be
impossible to set it at that point.
Bug: 246564035
CTS-Coverage-Bug: 246637346
Test: Local Build & Deployment
Change-Id: Icc12a89039e7088bcee8fd6ae20a6349f730ac91
This is a temporary version that does not impact public apis. A
follow-up change will be sent out that adds the api changes and properly
launches the UI using an app activity, not just the context.
Test: deployed locally.
Bug: 246564035
Bug: 253156924
Bug: 253156958
Change-Id: I3f43fb7332d58f2baffab7a80c4550d95c67854e
Get the regular paths (credential selection, cancellation, navigations
etc.) functional E2E.
Still missing cases like authentication entry, remote entry, etc. Those
will be added later.
Recording: http://shortn/_fEseNusjo2
Bug: 253157237
Test: local deployment
Change-Id: I715c0143c03f7a99a94da784542260590ab4767c
This api is similar to the web preventSilentAccess api that clears the
user credential session to prevent future automatic sign-in.
Test: local deployment
Bug: 256848673
Change-Id: I510fd0160d5689ef396fbf1078c42c0e1b643669
Also split up the ProviderData into type specific subclasses: one for
get, one for create, and one for disabled providers.
Test: local deployment
Bug: 247855226
Bug: 253156958
Change-Id: I453e615c30a150dc2d3cf987c1affa7a9f4f9356
Test: Built & deployed locally
Bug: 253155340
General TODOs :
- Locking
- Reduce logging post debugging phase
- More generalization/abstraction as create flow is added
Change-Id: Ib35fbe8a9118a62df346ecb19207e5b54f95b019
Provides conversion between the framework requests and the jetpack
requests. Note that these classes technically should be defined in the
jetpack library but are temporarily left util we are able to ship the
jetpack code into the framework.
Bug: 255688485
Test: local deployment
Change-Id: I31ae459bb1578ee41492de1a2b0523f9ed72cee2
Note that the UI has not started using the
new jetpack entry classes (defined under
packages/CredentialManager/src/com/android/credentialmanager/jetpack).
Next, the existing *UI.kt files under
packages/CredentialManager/src/com/android/credentialmanager needs to be
removed and the UI begin adopting these new structures.
Test: deployed locally
Bug: 247855226
Bug: 253156958
Change-Id: I35c48a4a224fad019efc10b841a1910ae940185c
This abstracts the understanding of the extra key mapping and result
recever parcelling.
Test: deployed locally
Bug: 247855226
Change-Id: Idc671f2f8118d098463f006e7d05d20e1e65cf77
Includes propagating the result back to the service and closing the
activity, when the user cancels (cancel code) or selects an entry
(success code + request token + provider chosen + entry chosen)
Test: deployed locally
Bug: 247855226
Change-Id: Ibbe2fa183d12eb43093aa1191b2691244f58e00c
Note: The intent data is not a full list of everything we need yet so
the ux is looking a bit raw operating on the only information it can
get. Following up will be improving this.
Test: deployed locally
Bug: 247855226
Change-Id: Icd66866d37210486f3c5223c9e93b9b589476f96
Contains information about what user has chosen during the credential
selection UI flow. Returned as part of the intent extras when the
activity completes successfully.
Test: deployed locally
Bug: 247855226
Change-Id: Ia8252280882407e4c766dca7a36e5fb79108240b
With this bit set to true, a given request can only be fulfilled by
system providers matching the given credential type.
Bug: 246564035
Test: Local Build & Deployment
Change-Id: Ic842894bfa092e551f20a4f8c1a969395ede663f
Which will be used to decide which type of dialog to render, and whether
to render the provider-centric selection page, respectively.
Test: deployed locally
Bug: 247855226
Change-Id: Ief3d26dc85ead5df6f2031a20c61b29206cd0bdc
The CredMan selector UI will expect request/provider info from the
launching intent. ProviderInfo contains metadata and entry info for a
single provider. RequestInfo contains metadata about the app request
that initiated this ui flow.
Test: deployed locally
Bug: 247855226
Change-Id: I3348ec582920d7d8019b272b8fc2b3c2d48404c6
The CredentialManager module provides solution for developers to create
or get credential from a user that can be used to authenticate to the app.
It can potentially launch system level UI flows to collect user consent,
render a unified selector when more than one credential exists, and
perform anything else needed.
Check bug id for detailed design.
Note that this is still very early stage of productionizing the module
and proper test cases will be added subsequently when the service
gets more concrete business logic.
Bug: 246564035
CTS-Coverage-Bug: 246637346
Test: Local Build & Deployment
Change-Id: Ia5884a7f6a3908de3b8b4b29f154f98e25730bd7