# Print output for @column tags ?> CustomDescription - Android SDK | Android Developers

Most visited

Recently visited

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:

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 Transformation:

 // 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.Builder

Builder for CustomDescription objects. 

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

CREATOR

public static final Creator<CustomDescription> CREATOR

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 0 or CONTENTS_FILE_DESCRIPTOR

toString

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

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.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES