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

int CONTENTS_FILE_DESCRIPTOR

Descriptor bit used with describeContents(): indicates that the Parcelable object's flattened representation includes a file descriptor.

int PARCELABLE_WRITE_RETURN_VALUE

Flag for use with writeToParcel(Parcel, int): the object being written is a return value, that is the result of a function such as "Parcelable someFunction()", "void someFunction(out Parcelable)", or "void someFunction(inout Parcelable)".

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

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

Wakes up a single thread that is waiting on this object's monitor.

final void notifyAll()

Wakes up all threads that are waiting on this object's monitor.

String toString()

Returns a string representation of the object.

final void wait(long timeoutMillis, int nanos)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait(long timeoutMillis)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait()

Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

abstract int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

abstract void writeToParcel(Parcel dest, int flags)

Flatten this object in to a Parcel.

Fields

CREATOR

Added in API level 27
public static final Creator<CustomDescription> CREATOR

Public methods

describeContents

Added in API level 27
public 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(android.os.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. Value is either 0 or CONTENTS_FILE_DESCRIPTOR

toString

Added in API level 27
public String toString ()

Returns a string representation of the object.

Returns
String a string representation of the object.

writeToParcel

Added in API level 27
public 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. This value cannot be null.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES