FillEventHistory.Event

public static final class FillEventHistory.Event
extends Object

java.lang.Object
   ↳ android.service.autofill.FillEventHistory.Event


Description of an event that occured after the latest call to onSuccess(FillResponse).

Summary

Constants

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_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.

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.

Set<String> getSelectedDatasetIds()

Returns which datasets were selected by the user.

int getType()

Returns the type of the event.

String toString()

Returns a string representation of the object.

Inherited methods

Constants

TYPE_AUTHENTICATION_SELECTED

added in API level 26
int TYPE_AUTHENTICATION_SELECTED

A fill response authentication was selected.

Constant Value: 2 (0x00000002)

TYPE_CONTEXT_COMMITTED

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_DATASET_AUTHENTICATION_SELECTED

added in API level 26
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
int TYPE_DATASET_SELECTED

A dataset was selected. The dataset selected can be read from getDatasetId().

Note: on Android O, this event was also incorrectly reported after a dataset authentication was selected and the service returned a dataset in the EXTRA_AUTHENTICATION_RESULT of the activity launched from that IntentSender. This behavior was fixed on Android O_MR1.

Constant Value: 0 (0x00000000)

TYPE_SAVE_SHOWN

added in API level 26
int TYPE_SAVE_SHOWN

A save UI was shown.

Constant Value: 3 (0x00000003)

Public methods

getChangedFields

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 will never be null.

getClientState

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 onFillRequest(FillRequest, android.os.CancellationSignal, FillCallback), which is not necessary the same app being autofilled now.

Returns
Bundle

This value may be null.

getDatasetId

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

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 will never be null.

getIgnoredDatasetIds

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 will never be null.

getManuallyEnteredField

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 will never be null.

getSelectedDatasetIds

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 will never be null.

getType

added in API level 26
int getType ()

Returns the type of the event.

Returns
int The type of the event

toString

added in API level 26
String toString ()

Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Returns
String a string representation of the object.