CustomDescription
class CustomDescription : Parcelable
| kotlin.Any | |
| ↳ | 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 | |
|---|---|
| Builder for  | |
| Inherited constants | |
|---|---|
| Public methods | |
|---|---|
| Int | |
| String | toString() | 
| Unit | writeToParcel(dest: Parcel, flags: Int) | 
| Properties | |
|---|---|
| static Parcelable.Creator<CustomDescription!> | |
Public methods
describeContents
fun describeContents(): Int
| Return | |
|---|---|
| Int | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0orandroid.os.Parcelable#CONTENTS_FILE_DESCRIPTOR | 
toString
fun toString(): String
| Return | |
|---|---|
| String | a string representation of the object. | 
writeToParcel
fun writeToParcel(
dest: Parcel,
flags: Int
): Unit
| Parameters | |
|---|---|
| dest | Parcel: The Parcel in which the object should be written. This value cannot be null. | 
| flags | Int: Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE. Value is either0or a combination ofandroid.os.Parcelable#PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES | 
