FillEventHistory.Event
public
static
final
class
FillEventHistory.Event
extends Object
java.lang.Object | |
↳ | android.service.autofill.FillEventHistory.Event |
Description of an event that occurred after the latest call to
FillCallback#onSuccess(FillResponse)
.
Summary
Constants | |
---|---|
int |
NO_SAVE_UI_REASON_DATASET_MATCH
All fields matched contents of datasets. |
int |
NO_SAVE_UI_REASON_FIELD_VALIDATION_FAILED
Fields failed validation. |
int |
NO_SAVE_UI_REASON_HAS_EMPTY_REQUIRED
There was empty value for required ids. |
int |
NO_SAVE_UI_REASON_NONE
No reason for save dialog. |
int |
NO_SAVE_UI_REASON_NO_SAVE_INFO
The SaveInfo associated with the FillResponse is null. |
int |
NO_SAVE_UI_REASON_NO_VALUE_CHANGED
No value has been changed. |
int |
NO_SAVE_UI_REASON_WITH_DELAY_SAVE_FLAG
The service asked to delay save. |
int |
TYPE_AUTHENTICATION_SELECTED
A |
int |
TYPE_CONTEXT_COMMITTED
A committed autofill context for which the autofill service provided datasets. |
int |
TYPE_DATASETS_SHOWN
A dataset selector was shown. |
int |
TYPE_DATASET_AUTHENTICATION_SELECTED
A |
int |
TYPE_DATASET_SELECTED
A dataset was selected. |
int |
TYPE_SAVE_SHOWN
A save UI was shown. |
int |
TYPE_VIEW_REQUESTED_AUTOFILL
The app/user requested for a field to be Autofilled. |
int |
UI_TYPE_DIALOG
The autofill suggestion is shown as a dialog presentation. |
int |
UI_TYPE_INLINE
The autofill suggestion is shown as a keyboard inline presentation. |
int |
UI_TYPE_MENU
The autofill suggestion is shown as a menu popup presentation. |
int |
UI_TYPE_UNKNOWN
The autofill suggestion presentation is unknown, this will be set for the event that is unrelated to fill Ui presentation |
Public methods | |
---|---|
Map<AutofillId, String>
|
getChangedFields()
Returns which fields in the selected datasets were changed by the user after the dataset was selected. |
Bundle
|
getClientState()
Returns the client state from the |
String
|
getDatasetId()
Returns the id of dataset the id was on. |
Map<AutofillId, FieldClassification>
|
getFieldsClassification()
Gets the field classification results. |
Set<String>
|
getIgnoredDatasetIds()
Returns which datasets were NOT selected by the user. |
Map<AutofillId, Set<String>>
|
getManuallyEnteredField()
Returns which fields were available on datasets provided by the service but manually entered by the user. |
int
|
getNoSaveUiReason()
Returns the reason why a save dialog was not shown. |
Set<String>
|
getSelectedDatasetIds()
Returns which datasets were selected by the user. |
int
|
getType()
Returns the type of the event. |
int
|
getUiType()
Returns fill suggestion ui presentation type which corresponds to types defined in {@link android.service.autofill.Presentations). |
String
|
toString()
Returns a string representation of the object. |
Inherited methods | |
---|---|
Constants
NO_SAVE_UI_REASON_DATASET_MATCH
public static final int NO_SAVE_UI_REASON_DATASET_MATCH
All fields matched contents of datasets.
Constant Value: 6 (0x00000006)
NO_SAVE_UI_REASON_FIELD_VALIDATION_FAILED
public static final int NO_SAVE_UI_REASON_FIELD_VALIDATION_FAILED
Fields failed validation.
Constant Value: 5 (0x00000005)
NO_SAVE_UI_REASON_HAS_EMPTY_REQUIRED
public static final int NO_SAVE_UI_REASON_HAS_EMPTY_REQUIRED
There was empty value for required ids.
Constant Value: 3 (0x00000003)
NO_SAVE_UI_REASON_NONE
public static final int NO_SAVE_UI_REASON_NONE
No reason for save dialog.
Constant Value: 0 (0x00000000)
NO_SAVE_UI_REASON_NO_SAVE_INFO
public static final int NO_SAVE_UI_REASON_NO_SAVE_INFO
The SaveInfo associated with the FillResponse is null.
Constant Value: 1 (0x00000001)
NO_SAVE_UI_REASON_NO_VALUE_CHANGED
public static final int NO_SAVE_UI_REASON_NO_VALUE_CHANGED
No value has been changed.
Constant Value: 4 (0x00000004)
NO_SAVE_UI_REASON_WITH_DELAY_SAVE_FLAG
public static final int NO_SAVE_UI_REASON_WITH_DELAY_SAVE_FLAG
The service asked to delay save.
Constant Value: 2 (0x00000002)
TYPE_AUTHENTICATION_SELECTED
public static final int TYPE_AUTHENTICATION_SELECTED
A fill response authentication
was selected.
Constant Value: 2 (0x00000002)
TYPE_CONTEXT_COMMITTED
public static final int TYPE_CONTEXT_COMMITTED
A committed autofill context for which the autofill service provided datasets.
This event is useful to track:
- Which datasets (if any) were selected by the user
(
getSelectedDatasetIds()
). - Which datasets (if any) were NOT selected by the user
(
getIgnoredDatasetIds()
). - Which fields in the selected datasets were changed by the user after the dataset
was selected (
getChangedFields()
. - Which fields match the
UserData
set by the service.
Note: This event is only generated when:
- The autofill context is committed.
- The service provides at least one dataset in the
fill responses
associated with the context. - The last
fill responses
associated with the context has theFillResponse#FLAG_TRACK_CONTEXT_COMMITED
flag.
See AutofillManager
for more information about autofill
contexts.
Constant Value: 4 (0x00000004)
TYPE_DATASETS_SHOWN
public static final int TYPE_DATASETS_SHOWN
A dataset selector was shown.
This event is fired whenever the autofill UI was presented to the user.
Constant Value: 5 (0x00000005)
TYPE_DATASET_AUTHENTICATION_SELECTED
public static final int TYPE_DATASET_AUTHENTICATION_SELECTED
A dataset authentication
was
selected. The dataset authenticated can be read from getDatasetId()
.
Constant Value: 1 (0x00000001)
TYPE_DATASET_SELECTED
public static final int TYPE_DATASET_SELECTED
A dataset was selected. The dataset selected can be read from getDatasetId()
.
Note: on Android Build.VERSION_CODES.O
, this event was also
incorrectly reported after a
dataset authentication
was
selected and the service returned a dataset in the
AutofillManager#EXTRA_AUTHENTICATION_RESULT
of the activity launched from that
IntentSender
. This behavior was fixed on Android
Build.VERSION_CODES.O_MR1
.
Constant Value: 0 (0x00000000)
TYPE_SAVE_SHOWN
public static final int TYPE_SAVE_SHOWN
A save UI was shown.
Constant Value: 3 (0x00000003)
TYPE_VIEW_REQUESTED_AUTOFILL
public static final int TYPE_VIEW_REQUESTED_AUTOFILL
The app/user requested for a field to be Autofilled. This event is fired when the view has been entered (by user or app) in order to differentiate from FillRequests that have been pretriggered for FillDialogs. For example, the user might navigate away from a screen without tapping any fields. In this case, a FillRequest/FillResponse has been generated, but was not used for Autofilling. The user did not intend to see an Autofill result, but a FillRequest was still generated. This is different from when the user did tap on a field after the pretriggered FillRequest, this event will appear in the FillEventHistory, signaling that the user did intend to Autofill something.
Constant Value: 6 (0x00000006)
UI_TYPE_DIALOG
public static final int UI_TYPE_DIALOG
The autofill suggestion is shown as a dialog presentation.
Constant Value: 3 (0x00000003)
UI_TYPE_INLINE
public static final int UI_TYPE_INLINE
The autofill suggestion is shown as a keyboard inline presentation.
Constant Value: 2 (0x00000002)
UI_TYPE_MENU
public static final int UI_TYPE_MENU
The autofill suggestion is shown as a menu popup presentation.
Constant Value: 1 (0x00000001)
UI_TYPE_UNKNOWN
public static final int UI_TYPE_UNKNOWN
The autofill suggestion presentation is unknown, this will be set for the event that is unrelated to fill Ui presentation
Constant Value: 0 (0x00000000)
Public methods
getChangedFields
public Map<AutofillId, String> getChangedFields ()
Returns which fields in the selected datasets were changed by the user after the dataset was selected.
For example, server provides:
FillResponse response = new FillResponse.Builder() .addDataset(new Dataset.Builder(presentation1) .setId("4815") .setValue(usernameId, AutofillValue.forText("MrPlow")) .build()) .addDataset(new Dataset.Builder(presentation2) .setId("162342") .setValue(passwordId, AutofillValue.forText("D'OH")) .build()) .build();
User select both datasets (for username and password) but after the fields are autofilled, user changes them to:
username = "ElBarto"; password = "AyCaramba";
Then the result is the following map:
usernameId => "4815" passwordId => "162342"
Note: Only set on events of type TYPE_CONTEXT_COMMITTED
.
Returns | |
---|---|
Map<AutofillId, String> |
map map whose key is the id of the change fields, and value is the id of
dataset that has that field and was selected by the user.
This value cannot be null . |
getClientState
public Bundle getClientState ()
Returns the client state from the FillResponse
used to generate this event.
Note: the state is associated with the app that was autofilled in the previous
AutofillService.onFillRequest(android.service.autofill.FillRequest, android.os.CancellationSignal, android.service.autofill.FillCallback)
,
which is not necessary the same app being autofilled now.
Returns | |
---|---|
Bundle |
This value may be null . |
getDatasetId
public String getDatasetId ()
Returns the id of dataset the id was on.
Returns | |
---|---|
String |
The id of dataset, or null the event is not associated with a dataset. |
getFieldsClassification
public Map<AutofillId, FieldClassification> getFieldsClassification ()
Gets the field classification results.
Note: Only set on events of type TYPE_CONTEXT_COMMITTED
, when the
service requested field classification
.
Returns | |
---|---|
Map<AutofillId, FieldClassification> |
This value cannot be null . |
getIgnoredDatasetIds
public Set<String> getIgnoredDatasetIds ()
Returns which datasets were NOT selected by the user.
Note: Only set on events of type TYPE_CONTEXT_COMMITTED
.
Returns | |
---|---|
Set<String> |
This value cannot be null . |
getManuallyEnteredField
public Map<AutofillId, Set<String>> getManuallyEnteredField ()
Returns which fields were available on datasets provided by the service but manually entered by the user.
For example, server provides:
FillResponse response = new FillResponse.Builder() .addDataset(new Dataset.Builder(presentation1) .setId("4815") .setValue(usernameId, AutofillValue.forText("MrPlow")) .setValue(passwordId, AutofillValue.forText("AyCaramba")) .build()) .addDataset(new Dataset.Builder(presentation2) .setId("162342") .setValue(usernameId, AutofillValue.forText("ElBarto")) .setValue(passwordId, AutofillValue.forText("D'OH")) .build()) .addDataset(new Dataset.Builder(presentation3) .setId("108") .setValue(usernameId, AutofillValue.forText("MrPlow")) .setValue(passwordId, AutofillValue.forText("D'OH")) .build()) .build();
User doesn't select a dataset but manually enters:
username = "MrPlow"; password = "D'OH";
Then the result is the following map:
usernameId => { "4815", "108"} passwordId => { "162342", "108" }
Note: Only set on events of type TYPE_CONTEXT_COMMITTED
.
Returns | |
---|---|
Map<AutofillId, Set<String>> |
map map whose key is the id of the manually-entered field, and value is the
ids of the datasets that have that value but were not selected by the user.
This value cannot be null . |
getNoSaveUiReason
public int getNoSaveUiReason ()
Returns the reason why a save dialog was not shown.
Note: Only set on events of type TYPE_CONTEXT_COMMITTED
. For the other
event types, the reason is set to NO_SAVE_UI_REASON_NONE.
Returns | |
---|---|
int |
The reason why a save dialog was not shown.
Value is NO_SAVE_UI_REASON_NONE , NO_SAVE_UI_REASON_NO_SAVE_INFO , NO_SAVE_UI_REASON_WITH_DELAY_SAVE_FLAG , NO_SAVE_UI_REASON_HAS_EMPTY_REQUIRED , NO_SAVE_UI_REASON_NO_VALUE_CHANGED , NO_SAVE_UI_REASON_FIELD_VALIDATION_FAILED , or NO_SAVE_UI_REASON_DATASET_MATCH |
getSelectedDatasetIds
public Set<String> getSelectedDatasetIds ()
Returns which datasets were selected by the user.
Note: Only set on events of type TYPE_CONTEXT_COMMITTED
.
Returns | |
---|---|
Set<String> |
This value cannot be null . |
getType
public int getType ()
Returns the type of the event.
Returns | |
---|---|
int |
The type of the event |
getUiType
public int getUiType ()
Returns fill suggestion ui presentation type which corresponds to types defined in {@link android.service.autofill.Presentations).
Note: Only set on events of type {@link #TYPE_DATASETS_SHOWN} and {@link #TYPE_DATASET_SELECTED}. For the other event types, the type is set to {@link #UI_TYPE_UNKNOWN}.
Returns | |
---|---|
int |
The ui presentation type shown for user.Value is UI_TYPE_UNKNOWN , UI_TYPE_MENU , UI_TYPE_INLINE , UI_TYPE_DIALOG , or android.service.autofill.FillEventHistory.Event.UI_TYPE_CREDMAN_BOTTOM_SHEET |
toString
public String toString ()
Returns a string representation of the object.
Returns | |
---|---|
String |
a string representation of the object. |