FillResponse.Builder
  public
  static
  final
  
  class
  FillResponse.Builder
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.service.autofill.FillResponse.Builder | 
Builder for FillResponse objects. You must to provide at least
 one dataset or set an authentication intent with a presentation view.
Summary
| Public constructors | |
|---|---|
| 
      Builder()
       | |
| Public methods | |
|---|---|
| 
        
        
        
        
        
        FillResponse.Builder | 
      addDataset(Dataset dataset)
      Adds a new  | 
| 
        
        
        
        
        
        FillResponse | 
      build()
      Builds a new  | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      disableAutofill(long duration)
      Disables autofill for the app or activity. | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setAuthentication(AutofillId[] ids, IntentSender authentication, RemoteViews presentation, InlinePresentation inlinePresentation)
      
      This method was deprecated
      in API level 33.
    Use
  | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setAuthentication(AutofillId[] ids, IntentSender authentication, Presentations presentations)
      Triggers a custom UI before autofilling the screen with any data set in this response. | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setAuthentication(AutofillId[] ids, IntentSender authentication, RemoteViews presentation)
      Triggers a custom UI before autofilling the screen with any data set in this response. | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setAuthentication(AutofillId[] ids, IntentSender authentication, RemoteViews presentation, InlinePresentation inlinePresentation, InlinePresentation inlineTooltipPresentation)
      
      This method was deprecated
      in API level 33.
    Use
  | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setClientState(Bundle clientState)
      Sets a bundle with state that is passed to subsequent APIs that manipulate this response. | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setDetectedFieldClassifications(Set<FieldClassification> fieldInfos)
      Adds a new  | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setDialogHeader(RemoteViews header)
      Sets the presentation of header in fill dialog UI. | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setFieldClassificationIds(AutofillId... ids)
      Sets which fields are used for field classification Note: This method automatically adds the
  | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setFillDialogTriggerIds(AutofillId... ids)
      Sets which fields are used for the fill dialog UI. | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setFlags(int flags)
      Sets flags changing the response behavior. | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setFooter(RemoteViews footer)
      Sets a footer to be shown as the last element in the list of datasets. | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setHeader(RemoteViews header)
      Sets a header to be shown as the first element in the list of datasets. | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setIconResourceId(int id)
      Overwrites Save/Fill dialog header icon with a specific one specified by resource id. | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setIgnoredIds(AutofillId... ids)
      Specifies views that should not trigger new
  | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setPresentationCancelIds(int[] ids)
      Sets target resource IDs of the child view in  | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setSaveInfo(SaveInfo saveInfo)
      Sets the  | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setServiceDisplayNameResourceId(int id)
      Overrides the service name in the Save Dialog header with a specific string defined in the service provider's manifest.xml | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setShowFillDialogIcon(boolean show)
      Whether or not to show the Autofill provider icon inside of the Fill Dialog | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setShowSaveDialogIcon(boolean show)
      Whether or not to show the Autofill provider icon inside of the Save Dialog | 
| 
        
        
        
        
        
        FillResponse.Builder | 
      setUserData(UserData userData)
      Sets a specific  | 
| Inherited methods | |
|---|---|
Public constructors
Builder
public Builder ()
Public methods
addDataset
public FillResponse.Builder addDataset (Dataset dataset)
Adds a new Dataset to this response.
 
Note:  on Android Build.VERSION_CODES.O, the total number of
 datasets is limited by the Binder transaction size, so it's recommended to keep it
 small (in the range of 10-20 at most) and use pagination by adding a fake
 authenticated dataset at the end
 with a presentation string like "Next 10" that would return a new FillResponse
 with the next 10 datasets, and so on. This limitation was lifted on
 Android Build.VERSION_CODES.O_MR1, although the Binder transaction
 size can still be reached if each dataset itself is too big.
| Parameters | |
|---|---|
| dataset | Dataset: This value may benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | This builder.
 This value cannot be null. | 
build
public FillResponse build ()
Builds a new FillResponse instance.
| Returns | |
|---|---|
| FillResponse | A built response.
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalStateException | if any of the following conditions occur: 
 | 
disableAutofill
public FillResponse.Builder disableAutofill (long duration)
Disables autofill for the app or activity.
This method is useful to optimize performance in cases where the service knows it can not autofill an app—for example, when the service has a list of "denylisted" apps such as office suites.
By default, it disables autofill for all activities in the app, unless the response is
 flagged with FillResponse.FLAG_DISABLE_ACTIVITY_ONLY.
 
Autofill for the app or activity is automatically re-enabled after any of the following conditions:
- durationmilliseconds have passed.
- The autofill service for the user has changed.
- The device has rebooted.
Note: Activities that are running when autofill is re-enabled remain disabled for autofill until they finish and restart.
| Parameters | |
|---|---|
| duration | long: duration to disable autofill, in milliseconds. | 
| Returns | |
|---|---|
| FillResponse.Builder | this builder
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalArgumentException | if durationis not a positive number. | 
| IllegalStateException | if either addDataset(android.service.autofill.Dataset),setAuthentication(android.view.autofill.AutofillId[], android.content.IntentSender, android.service.autofill.Presentations),setSaveInfo(android.service.autofill.SaveInfo),setClientState(android.os.Bundle), orsetFieldClassificationIds(android.view.autofill.AutofillId)was already called. | 
setAuthentication
public FillResponse.Builder setAuthentication (AutofillId[] ids, IntentSender authentication, RemoteViews presentation, InlinePresentation inlinePresentation)
      This method was deprecated
      in API level 33.
    Use
 setAuthentication(android.view.autofill.AutofillId[], android.content.IntentSender, android.service.autofill.Presentations)
 instead.
  
Triggers a custom UI before autofilling the screen with any data set in this response.
Note: Although the name of this method suggests that it should be used just for
 authentication flow, it can be used for other advanced flows; see AutofillService
 for examples.
 
This method is similar to
 setAuthentication(android.view.autofill.AutofillId[], android.content.IntentSender, android.widget.RemoteViews), but also accepts
 an InlinePresentation presentation which is required for authenticating through
 the inline autofill flow.
 
Note: setHeader(android.widget.RemoteViews) or setFooter(android.widget.RemoteViews) does
 not work with InlinePresentation.
| Parameters | |
|---|---|
| ids | AutofillId: id of Views that when focused will display the authentication UI.
 This value cannot benull. | 
| authentication | IntentSender: Intent to an activity with your authentication flow.
 This value may benull. | 
| presentation | RemoteViews: The presentation to visualize the response.
 This value may benull. | 
| inlinePresentation | InlinePresentation: The inlinePresentation to visualize the response inline.
 This value may benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | This builder.
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalArgumentException | if any of the following occurs: 
 | 
| IllegalStateException | if a headeror afooterare already set for this builder. | 
See also:
setAuthentication
public FillResponse.Builder setAuthentication (AutofillId[] ids, IntentSender authentication, Presentations presentations)
Triggers a custom UI before autofilling the screen with any data set in this response.
Note: Although the name of this method suggests that it should be used just for
 authentication flow, it can be used for other advanced flows; see AutofillService
 for examples.
 
This is typically useful when a user interaction is required to unlock their
 data vault if you encrypt the data set labels and data set data. It is recommended
 to encrypt only the sensitive data and not the data set labels which would allow
 auth on the data set level leading to a better user experience. Note that if you
 use sensitive data as a label, for example an email address, then it should also
 be encrypted. The provided intent must be an
 Activity which implements your authentication flow. Also if you provide an auth
 intent you also need to specify the presentation view to be shown in the fill UI
 for the user to trigger your authentication flow.
 
When a user triggers autofill, the system launches the provided intent
 whose extras will have the
 screen
 content and your client state. Once you complete your authentication flow you should set the
 Activity result to Activity.RESULT_OK and set the
 AutofillManager.EXTRA_AUTHENTICATION_RESULT extra
 with the fully populated response (or null if the screen
 cannot be autofilled).
 
For example, if you provided an empty response because the
 user's data was locked and marked that the response needs an authentication then
 in the response returned if authentication succeeds you need to provide all
 available data sets some of which may need to be further authenticated, for
 example a credit card whose CVV needs to be entered.
 
If you provide an authentication intent you must also provide a presentation which is used to visualize the response for triggering the authentication flow.
Note: Do not make the provided pending intent
 immutable by using PendingIntent.FLAG_IMMUTABLE as the
 platform needs to fill in the authentication arguments.
 
Note: setHeader(android.widget.RemoteViews) or setFooter(android.widget.RemoteViews) does
 not work with InlinePresentation.
| Parameters | |
|---|---|
| ids | AutofillId: id of Views that when focused will display the authentication UI.
 This value cannot benull. | 
| authentication | IntentSender: Intent to an activity with your authentication flow.
 This value may benull. | 
| presentations | Presentations: The presentations to visualize the response.
 This value may benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | This builder. | 
| Throws | |
|---|---|
| IllegalArgumentException | if any of the following occurs: 
 | 
| IllegalStateException | if a headeror afooterare already set for this builder. | 
setAuthentication
public FillResponse.Builder setAuthentication (AutofillId[] ids, IntentSender authentication, RemoteViews presentation)
Triggers a custom UI before autofilling the screen with any data set in this response.
Note: Although the name of this method suggests that it should be used just for
 authentication flow, it can be used for other advanced flows; see AutofillService
 for examples.
 
This is typically useful when a user interaction is required to unlock their
 data vault if you encrypt the data set labels and data set data. It is recommended
 to encrypt only the sensitive data and not the data set labels which would allow
 auth on the data set level leading to a better user experience. Note that if you
 use sensitive data as a label, for example an email address, then it should also
 be encrypted. The provided intent must be an
 Activity which implements your authentication flow. Also if you provide an auth
 intent you also need to specify the presentation view to be shown in the fill UI
 for the user to trigger your authentication flow.
 
When a user triggers autofill, the system launches the provided intent
 whose extras will have the
 screen
 content and your client state. Once you complete your authentication flow you should set the
 Activity result to Activity.RESULT_OK and set the
 AutofillManager.EXTRA_AUTHENTICATION_RESULT extra
 with the fully populated response (or null if the screen
 cannot be autofilled).
 
 IMPORTANT: Extras must be non-null on the intent being set for Android 12
 otherwise it will cause a crash. Do not use Activity.setResult(int), instead use
 Activity.setResult(int, Intent)
| Parameters | |
|---|---|
| ids | AutofillId | 
| authentication | IntentSender | 
| presentation | RemoteViews | 
| Returns | |
|---|---|
| FillResponse.Builder | |
setAuthentication
public FillResponse.Builder setAuthentication (AutofillId[] ids, IntentSender authentication, RemoteViews presentation, InlinePresentation inlinePresentation, InlinePresentation inlineTooltipPresentation)
      This method was deprecated
      in API level 33.
    Use
 setAuthentication(android.view.autofill.AutofillId[], android.content.IntentSender, android.service.autofill.Presentations)
 instead.
  
Triggers a custom UI before autofilling the screen with any data set in this response.
This method like
 setAuthentication(android.view.autofill.AutofillId[], android.content.IntentSender, android.widget.RemoteViews, android.service.autofill.InlinePresentation)
 but allows setting an InlinePresentation for the inline suggestion tooltip.
| Parameters | |
|---|---|
| ids | AutofillId: This value cannot benull. | 
| authentication | IntentSender: This value may benull. | 
| presentation | RemoteViews: This value may benull. | 
| inlinePresentation | InlinePresentation: This value may benull. | 
| inlineTooltipPresentation | InlinePresentation: This value may benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | This value cannot be null. | 
setClientState
public FillResponse.Builder setClientState (Bundle clientState)
Sets a bundle with state that is passed to subsequent APIs that manipulate this response.
You can use this bundle to store intermediate state that is passed to subsequent calls
 to AutofillService.onFillRequest(FillRequest, android.os.CancellationSignal,
 FillCallback) and AutofillService.onSaveRequest(SaveRequest, SaveCallback), and
 you can also retrieve it by calling FillEventHistory.Event.getClientState().
 
If this method is called on multiple FillResponse objects for the same
 screen, just the latest bundle is passed back to the service.
| Parameters | |
|---|---|
| clientState | Bundle: The custom client state.
 This value may benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | This builder.
 This value cannot be null. | 
setDetectedFieldClassifications
public FillResponse.Builder setDetectedFieldClassifications (Set<FieldClassification> fieldInfos)
Adds a new FieldClassification to this response, to
 help the platform provide more accurate detection results.
 Call this when a field has been detected with a type.
 Altough similiarly named with setFieldClassificationIds(AutofillId),
 it provides a different functionality - setFieldClassificationIds should
 be used when a field is only suspected to be Autofillable.
 This method should be used when a field is certainly Autofillable
 with a certain type.
| Parameters | |
|---|---|
| fieldInfos | Set: This value cannot benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | This value cannot be null. | 
setDialogHeader
public FillResponse.Builder setDialogHeader (RemoteViews header)
Sets the presentation of header in fill dialog UI. The header should have a prompt for what datasets are shown in the dialog. If this is not set, the dialog only shows your application icon. More details about the fill dialog, see fill dialog UI
| Parameters | |
|---|---|
| header | RemoteViews: This value cannot benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | This value cannot be null. | 
setFieldClassificationIds
public FillResponse.Builder setFieldClassificationIds (AutofillId... ids)
Sets which fields are used for field classification
Note: This method automatically adds the
 FillResponse.FLAG_TRACK_CONTEXT_COMMITED to the flags.
| Parameters | |
|---|---|
| ids | AutofillId: This value cannot benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | This value cannot be null. | 
| Throws | |
|---|---|
| IllegalArgumentException | is length of idsargs is more thanUserData.getMaxFieldClassificationIdsSize(). | 
| IllegalStateException | if build()ordisableAutofill(long)was
 already called. | 
| NullPointerException | if idsor any element on it isnull. | 
setFillDialogTriggerIds
public FillResponse.Builder setFillDialogTriggerIds (AutofillId... ids)
Sets which fields are used for the fill dialog UI. More details about the fill dialog, see fill dialog UI
| Parameters | |
|---|---|
| ids | AutofillId: This value cannot benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | This value cannot be null. | 
| Throws | |
|---|---|
| IllegalStateException | if build()was already called. | 
| NullPointerException | if idsor any element on it isnull. | 
setFlags
public FillResponse.Builder setFlags (int flags)
Sets flags changing the response behavior.
| Parameters | |
|---|---|
| flags | int: a combination ofFillResponse.FLAG_TRACK_CONTEXT_COMMITEDandFillResponse.FLAG_DISABLE_ACTIVITY_ONLY, or0.
 Value is either0or a combination ofFillResponse.FLAG_TRACK_CONTEXT_COMMITED,FillResponse.FLAG_DISABLE_ACTIVITY_ONLY,FillResponse.FLAG_DELAY_FILL, and android.service.autofill.FillResponse.FLAG_CREDENTIAL_MANAGER_RESPONSE | 
| Returns | |
|---|---|
| FillResponse.Builder | This builder.
 This value cannot be null. | 
setFooter
public FillResponse.Builder setFooter (RemoteViews footer)
Sets a footer to be shown as the last element in the list of datasets.
When this method is called, you must also add a dataset,
 otherwise build() throws an IllegalStateException. Similarly, this
 method should only be used on FillResponses that do not require
 authentication (as the footer could have been set directly in the main presentation in
 these cases).
 
Theme does not work with RemoteViews layout. Avoid hardcoded text color or background color: Autofill on different platforms may have different themes.
| Parameters | |
|---|---|
| footer | RemoteViews: a presentation to represent the footer. This presentation is not clickable
 —callingRemoteViews.setOnClickPendingIntent(int, android.app.PendingIntent)on it would
 have no effect.
 This value cannot benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | this builder
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalStateException | if the FillResponse requires authentication. | 
setHeader
public FillResponse.Builder setHeader (RemoteViews header)
Sets a header to be shown as the first element in the list of datasets.
When this method is called, you must also add a dataset,
 otherwise build() throws an IllegalStateException. Similarly, this
 method should only be used on FillResponses that do not require
 authentication (as the header could have been set directly in the main presentation in
 these cases).
 
Theme does not work with RemoteViews layout. Avoid hardcoded text color or background color: Autofill on different platforms may have different themes.
| Parameters | |
|---|---|
| header | RemoteViews: a presentation to represent the header. This presentation is not clickable
 —callingRemoteViews.setOnClickPendingIntent(int, android.app.PendingIntent)on it would
 have no effect.
 This value cannot benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | this builder
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalStateException | if an authenticationwas already set for this builder. | 
setIconResourceId
public FillResponse.Builder setIconResourceId (int id)
Overwrites Save/Fill dialog header icon with a specific one specified by resource id. The image is pulled from the package, so id should be defined in the manifest.
| Parameters | |
|---|---|
| id | int:Drawableresource id of the icon to be used.
 A value of 0 indicates to use the default header icon. | 
| Returns | |
|---|---|
| FillResponse.Builder | this builder
 This value cannot be null. | 
setIgnoredIds
public FillResponse.Builder setIgnoredIds (AutofillId... ids)
Specifies views that should not trigger new
 AutofillService.onFillRequest(FillRequest, android.os.CancellationSignal,
 FillCallback) requests.
 
This is typically used when the service cannot autofill the view; for example, a text field representing the result of a Captcha challenge.
| Parameters | |
|---|---|
| ids | AutofillId | 
| Returns | |
|---|---|
| FillResponse.Builder | This value cannot be null. | 
setPresentationCancelIds
public FillResponse.Builder setPresentationCancelIds (int[] ids)
Sets target resource IDs of the child view in Presentation Template
 which will cancel the session when clicked.
 Those targets will be respectively applied to a child of the header, footer and
 each Dataset.
| Parameters | |
|---|---|
| ids | int: array of the resource id. Empty list or non-existing id has no effect.
 This value may benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | this builder
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalStateException | if build()was already called. | 
setSaveInfo
public FillResponse.Builder setSaveInfo (SaveInfo saveInfo)
Sets the SaveInfo associated with this response.
| Parameters | |
|---|---|
| saveInfo | SaveInfo: This value cannot benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | This builder.
 This value cannot be null. | 
setServiceDisplayNameResourceId
public FillResponse.Builder setServiceDisplayNameResourceId (int id)
Overrides the service name in the Save Dialog header with a specific string defined in the service provider's manifest.xml
| Parameters | |
|---|---|
| id | int: Resoure Id of the custom string defined in the provider's manifest. If set
 to 0, the default name will be used. | 
| Returns | |
|---|---|
| FillResponse.Builder | this builder
 This value cannot be null. | 
setShowFillDialogIcon
public FillResponse.Builder setShowFillDialogIcon (boolean show)
Whether or not to show the Autofill provider icon inside of the Fill Dialog
| Parameters | |
|---|---|
| show | boolean: True to show, false to hide. Defaults to true. | 
| Returns | |
|---|---|
| FillResponse.Builder | this builder
 This value cannot be null. | 
setShowSaveDialogIcon
public FillResponse.Builder setShowSaveDialogIcon (boolean show)
Whether or not to show the Autofill provider icon inside of the Save Dialog
| Parameters | |
|---|---|
| show | boolean: True to show, false to hide. Defaults to true. | 
| Returns | |
|---|---|
| FillResponse.Builder | this builder
 This value cannot be null. | 
setUserData
public FillResponse.Builder setUserData (UserData userData)
Sets a specific UserData for field classification for this request only.
 
Any fields in this UserData will override corresponding fields in the generic UserData object
| Parameters | |
|---|---|
| userData | UserData: This value cannot benull. | 
| Returns | |
|---|---|
| FillResponse.Builder | this builder
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalStateException | if the FillResponse requires authentication. | 
