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