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 template
containing children views. Transformations
to 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 |