Added in API level 27

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:

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

Inherited constants
Public methods
Int

String

Unit
writeToParcel(dest: Parcel, flags: Int)

Properties
static Parcelable.Creator<CustomDescription!>

Public methods

describeContents

Added in API level 27
fun describeContents(): Int
Return
Int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or android.os.Parcelable#CONTENTS_FILE_DESCRIPTOR

toString

Added in API level 27
fun toString(): String
Return
String a string representation of the object.

writeToParcel

Added in API level 27
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 either 0 or a combination of android.os.Parcelable#PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES

Properties

CREATOR

Added in API level 27
static val CREATOR: Parcelable.Creator<CustomDescription!>