CustomDescription
  public
  
  final
  
  class
  CustomDescription
  
    extends Object
  
  
  
  
  
      implements
      
        Parcelable
      
  
  
| java.lang.Object | |
| ↳ | android.service.autofill.CustomDescription | 
Defines a custom description for the autofill save UI.
This is useful when the autofill service needs to show a detailed view of what would be saved; for example, when the screen contains a credit card, it could display a logo of the credit card bank, the last four digits of the credit card number, and its expiration number.
A custom description is made of 2 parts:
- A presentation templatecontaining children views.
- Transformationsto populate the children views.
For the credit card example mentioned above, the (simplified) template would be:
<LinearLayout> <ImageView android:id="@+id/templateccLogo"/> <TextView android:id="@+id/templateCcNumber"/> <TextView android:id="@+id/templateExpDate"/> </LinearLayout>
Which in code translates to:
CustomDescription.Builder buider = new Builder(new RemoteViews(pgkName, R.layout.cc_template);
Then the value of each of the 3 children would be changed at runtime based on the the value of
 the screen fields and the Transformations:
 
// Image child - different logo for each bank, based on credit card prefix builder.addChild(R.id.templateccLogo, new ImageTransformation.Builder(ccNumberId) .addOption(Pattern.compile("^4815.*$"), R.drawable.ic_credit_card_logo1) .addOption(Pattern.compile("^1623.*$"), R.drawable.ic_credit_card_logo2) .addOption(Pattern.compile("^42.*$"), R.drawable.ic_credit_card_logo3) .build(); // Masked credit card number (as .....LAST_4_DIGITS) builder.addChild(R.id.templateCcNumber, new CharSequenceTransformation .Builder(ccNumberId, Pattern.compile("^.*(\\d\\d\\d\\d)$"), "...$1") .build(); // Expiration date as MM / YYYY: builder.addChild(R.id.templateExpDate, new CharSequenceTransformation .Builder(ccExpMonthId, Pattern.compile("^(\\d\\d)$"), "Exp: $1") .addField(ccExpYearId, Pattern.compile("^(\\d\\d)$"), "/$1") .build();
See ImageTransformation, CharSequenceTransformation for more info about these
 transformations.
Summary
| Nested classes | |
|---|---|
| 
        
        
        
        
        class | CustomDescription.BuilderBuilder for  | 
| Inherited constants | 
|---|
| Fields | |
|---|---|
| 
    public
    static
    final
    Creator<CustomDescription> | CREATOR
 | 
| Public methods | |
|---|---|
| 
        
        
        
        
        
        int | 
      describeContents()
      Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. | 
| 
        
        
        
        
        
        String | 
      toString()
      Returns a string representation of the object. | 
| 
        
        
        
        
        
        void | 
      writeToParcel(Parcel dest, int flags)
      Flatten this object in to a Parcel. | 
| Inherited methods | |
|---|---|
Fields
Public methods
describeContents
public int describeContents ()
Describe the kinds of special objects contained in this Parcelable
 instance's marshaled representation. For example, if the object will
 include a file descriptor in the output of writeToParcel(android.os.Parcel, int),
 the return value of this method must include the
 CONTENTS_FILE_DESCRIPTOR bit.
| Returns | |
|---|---|
| int | a bitmask indicating the set of special object types marshaled
 by this Parcelable object instance.
 Value is either 0orCONTENTS_FILE_DESCRIPTOR | 
toString
public String toString ()
Returns a string representation of the object.
| Returns | |
|---|---|
| String | a string representation of the object. | 
writeToParcel
public void writeToParcel (Parcel dest, int flags)
Flatten this object in to a Parcel.
| Parameters | |
|---|---|
| dest | Parcel: The Parcel in which the object should be written.
 This value cannot benull. | 
| flags | int: Additional flags about how the object should be written.
 May be 0 orParcelable.PARCELABLE_WRITE_RETURN_VALUE.
 Value is either0or a combination ofParcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES | 
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
