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 fill response authentication was selected.

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 dataset authentication was selected.

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<AutofillIdString> 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 FillResponse used to generate this event.

String getDatasetId()

Returns the id of dataset the id was on.

Map<AutofillIdFieldClassification> getFieldsClassification()

Gets the field classification results.

Set<String> getIgnoredDatasetIds()

Returns which datasets were NOT selected by the user.

Map<AutofillIdSet<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

Added in API level 31
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

Added in API level 31
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

Added in API level 31
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

Added in API level 31
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

Added in API level 31
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

Added in API level 31
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

Added in API level 31
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

Added in API level 26
public static final int TYPE_AUTHENTICATION_SELECTED

A fill response authentication was selected.

Constant Value: 2 (0x00000002)

TYPE_CONTEXT_COMMITTED

Added in API level 28
public static final int TYPE_CONTEXT_COMMITTED

A committed autofill context for which the autofill service provided datasets.

This event is useful to track:

Note: This event is only generated when:

See AutofillManager for more information about autofill contexts.

Constant Value: 4 (0x00000004)

TYPE_DATASETS_SHOWN

Added in API level 30
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

Added in API level 26
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

Added in API level 26
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

Added in API level 26
public static final int TYPE_SAVE_SHOWN

A save UI was shown.

Constant Value: 3 (0x00000003)

TYPE_VIEW_REQUESTED_AUTOFILL

Added in API level 34
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

Added in API level 33
public static final int UI_TYPE_DIALOG

The autofill suggestion is shown as a dialog presentation.

Constant Value: 3 (0x00000003)

UI_TYPE_INLINE

Added in API level 33
public static final int UI_TYPE_INLINE

The autofill suggestion is shown as a keyboard inline presentation.

Constant Value: 2 (0x00000002)

UI_TYPE_MENU

Added in API level 33
public static final int UI_TYPE_MENU

The autofill suggestion is shown as a menu popup presentation.

Constant Value: 1 (0x00000001)

UI_TYPE_UNKNOWN

Added in API level 33
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

Added in API level 28
public Map<AutofillIdString> 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<AutofillIdString> 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

Added in API level 28
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

Added in API level 26
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

Added in API level 28
public Map<AutofillIdFieldClassification> getFieldsClassification ()

Gets the field classification results.

Note: Only set on events of type TYPE_CONTEXT_COMMITTED, when the service requested field classification.

Returns
Map<AutofillIdFieldClassification> This value cannot be null.

getIgnoredDatasetIds

Added in API level 28
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

Added in API level 28
public Map<AutofillIdSet<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<AutofillIdSet<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

Added in API level 31
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

Added in API level 28
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

Added in API level 26
public int getType ()

Returns the type of the event.

Returns
int The type of the event

getUiType

Added in API level 33
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, or UI_TYPE_DIALOG

toString

Added in API level 26
public String toString ()

Returns a string representation of the object.

Returns
String a string representation of the object.