Add support for multiple fill contexts
When saving data filled by the user the platform provides to an autofill provider the state of the UI allowing the provider to interpret this state and store relevant information. A limitation of the current design is that the fill provider needs to interpret the screen content twice, once handling a fill request and once handling a save request. To address this we are introducing a id for each fill request allowing the autofill provider to associate arbitrary state with each fill request and store it in the client data bundle later passed to save. Another limitation of the current design is that if the screen changes dynamically while the user interacts with the app the UI state passed on save represents a static snapshot, therefore it is not possible to the autofill provider to determine the context in which the data in the UI was filled. We could keep the views and have deltas for views being removed/added /moved/changed but this is not enough as the fill provider needs to know not only what changed but what changed for every fill request and in one session there could be multiple fill requests. To address this we provide a list of fill contexts on save each of which has the id of the corresponding fill request. This allows the fill provider to know the exact context in which the data was popuplated and also use its custom client state for this fill request if desired. This change deprecates the old APIs and the new ones delegate to the old ones. Once the clients migrate to the new APIs we will remove the old ones. Test: all autofill CTS tests pass Change-Id: Idcebcc671aa3c078a305d8c358e225274fccc588
Loading
Please register or sign in to comment