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

added in API level 27
Creator<CustomDescription> CREATOR

Public methods

describeContents

added in API level 27
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(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.

toString

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

added in API level 27
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_WRITE_RETURN_VALUE.