Merge "Move the presentation view to proper location."
This commit is contained in:
committed by
Android (Google) Code Review
commit
f92a582c1f
@@ -36244,10 +36244,9 @@ package android.service.autofill {
|
||||
}
|
||||
|
||||
public static final class Dataset.Builder {
|
||||
ctor public Dataset.Builder();
|
||||
ctor public Dataset.Builder(android.widget.RemoteViews);
|
||||
method public android.service.autofill.Dataset build();
|
||||
method public android.service.autofill.Dataset.Builder setAuthentication(android.content.IntentSender);
|
||||
method public android.service.autofill.Dataset.Builder setPresentation(android.widget.RemoteViews);
|
||||
method public android.service.autofill.Dataset.Builder setValue(android.view.autofill.AutoFillId, android.view.autofill.AutoFillValue);
|
||||
}
|
||||
|
||||
@@ -36267,9 +36266,8 @@ package android.service.autofill {
|
||||
method public android.service.autofill.FillResponse.Builder addDataset(android.service.autofill.Dataset);
|
||||
method public android.service.autofill.FillResponse.Builder addSavableFields(android.view.autofill.AutoFillId...);
|
||||
method public android.service.autofill.FillResponse build();
|
||||
method public android.service.autofill.FillResponse.Builder setAuthentication(android.content.IntentSender);
|
||||
method public android.service.autofill.FillResponse.Builder setAuthentication(android.content.IntentSender, android.widget.RemoteViews);
|
||||
method public android.service.autofill.FillResponse.Builder setExtras(android.os.Bundle);
|
||||
method public android.service.autofill.FillResponse.Builder setPresentation(android.widget.RemoteViews);
|
||||
}
|
||||
|
||||
public final class SaveCallback {
|
||||
|
||||
@@ -39364,10 +39364,9 @@ package android.service.autofill {
|
||||
}
|
||||
|
||||
public static final class Dataset.Builder {
|
||||
ctor public Dataset.Builder();
|
||||
ctor public Dataset.Builder(android.widget.RemoteViews);
|
||||
method public android.service.autofill.Dataset build();
|
||||
method public android.service.autofill.Dataset.Builder setAuthentication(android.content.IntentSender);
|
||||
method public android.service.autofill.Dataset.Builder setPresentation(android.widget.RemoteViews);
|
||||
method public android.service.autofill.Dataset.Builder setValue(android.view.autofill.AutoFillId, android.view.autofill.AutoFillValue);
|
||||
}
|
||||
|
||||
@@ -39387,9 +39386,8 @@ package android.service.autofill {
|
||||
method public android.service.autofill.FillResponse.Builder addDataset(android.service.autofill.Dataset);
|
||||
method public android.service.autofill.FillResponse.Builder addSavableFields(android.view.autofill.AutoFillId...);
|
||||
method public android.service.autofill.FillResponse build();
|
||||
method public android.service.autofill.FillResponse.Builder setAuthentication(android.content.IntentSender);
|
||||
method public android.service.autofill.FillResponse.Builder setAuthentication(android.content.IntentSender, android.widget.RemoteViews);
|
||||
method public android.service.autofill.FillResponse.Builder setExtras(android.os.Bundle);
|
||||
method public android.service.autofill.FillResponse.Builder setPresentation(android.widget.RemoteViews);
|
||||
}
|
||||
|
||||
public final class SaveCallback {
|
||||
|
||||
@@ -36383,10 +36383,9 @@ package android.service.autofill {
|
||||
}
|
||||
|
||||
public static final class Dataset.Builder {
|
||||
ctor public Dataset.Builder();
|
||||
ctor public Dataset.Builder(android.widget.RemoteViews);
|
||||
method public android.service.autofill.Dataset build();
|
||||
method public android.service.autofill.Dataset.Builder setAuthentication(android.content.IntentSender);
|
||||
method public android.service.autofill.Dataset.Builder setPresentation(android.widget.RemoteViews);
|
||||
method public android.service.autofill.Dataset.Builder setValue(android.view.autofill.AutoFillId, android.view.autofill.AutoFillValue);
|
||||
}
|
||||
|
||||
@@ -36406,9 +36405,8 @@ package android.service.autofill {
|
||||
method public android.service.autofill.FillResponse.Builder addDataset(android.service.autofill.Dataset);
|
||||
method public android.service.autofill.FillResponse.Builder addSavableFields(android.view.autofill.AutoFillId...);
|
||||
method public android.service.autofill.FillResponse build();
|
||||
method public android.service.autofill.FillResponse.Builder setAuthentication(android.content.IntentSender);
|
||||
method public android.service.autofill.FillResponse.Builder setAuthentication(android.content.IntentSender, android.widget.RemoteViews);
|
||||
method public android.service.autofill.FillResponse.Builder setExtras(android.os.Bundle);
|
||||
method public android.service.autofill.FillResponse.Builder setPresentation(android.widget.RemoteViews);
|
||||
}
|
||||
|
||||
public final class SaveCallback {
|
||||
|
||||
@@ -106,15 +106,13 @@ public final class Dataset implements Parcelable {
|
||||
private boolean mDestroyed;
|
||||
|
||||
/**
|
||||
* Sets the presentation used to visualize this dataset.
|
||||
* Creates a new builder.
|
||||
*
|
||||
* @param presentation The presentation view.
|
||||
*
|
||||
* @return This builder.
|
||||
* @param presentation The presentation used to visualize this dataset.
|
||||
*/
|
||||
public @NonNull Builder setPresentation(@Nullable RemoteViews presentation) {
|
||||
public Builder(@NonNull RemoteViews presentation) {
|
||||
Preconditions.checkNotNull(presentation, "presentation must be non-null");
|
||||
mPresentation = presentation;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -201,9 +199,6 @@ public final class Dataset implements Parcelable {
|
||||
throw new IllegalArgumentException(
|
||||
"at least one value must be set");
|
||||
}
|
||||
if (mPresentation == null) {
|
||||
throw new IllegalArgumentException("presentation must be set");
|
||||
}
|
||||
return new Dataset(this);
|
||||
}
|
||||
|
||||
@@ -225,9 +220,9 @@ public final class Dataset implements Parcelable {
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel parcel, int flags) {
|
||||
parcel.writeParcelable(mPresentation, flags);
|
||||
parcel.writeTypedArrayList(mFieldIds, flags);
|
||||
parcel.writeTypedArrayList(mFieldValues, flags);
|
||||
parcel.writeParcelable(mPresentation, flags);
|
||||
parcel.writeParcelable(mAuthentication, flags);
|
||||
}
|
||||
|
||||
@@ -237,7 +232,7 @@ public final class Dataset implements Parcelable {
|
||||
// Always go through the builder to ensure the data ingested by
|
||||
// the system obeys the contract of the builder to avoid attacks
|
||||
// using specially crafted parcels.
|
||||
final Builder builder = new Builder();
|
||||
final Builder builder = new Builder(parcel.readParcelable(null));
|
||||
final ArrayList<AutoFillId> ids = parcel.readTypedArrayList(null);
|
||||
final ArrayList<AutoFillValue> values = parcel.readTypedArrayList(null);
|
||||
final int idCount = (ids != null) ? ids.size() : 0;
|
||||
@@ -247,7 +242,6 @@ public final class Dataset implements Parcelable {
|
||||
AutoFillValue value = (valueCount > i) ? values.get(i) : null;
|
||||
builder.setValue(id, value);
|
||||
}
|
||||
builder.setPresentation(parcel.readParcelable(null));
|
||||
builder.setAuthentication(parcel.readParcelable(null));
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
@@ -45,8 +45,7 @@ import java.util.ArrayList;
|
||||
*
|
||||
* <pre class="prettyprint">
|
||||
* new FillResponse.Builder()
|
||||
* .add(new Dataset.Builder()
|
||||
* .setPresentation(createPresentation())
|
||||
* .add(new Dataset.Builder(createPresentation())
|
||||
* .setTextFieldValue(id1, "homer")
|
||||
* .setTextFieldValue(id2, "D'OH!")
|
||||
* .build())
|
||||
@@ -57,13 +56,11 @@ import java.util.ArrayList;
|
||||
*
|
||||
* <pre class="prettyprint">
|
||||
* new FillResponse.Builder()
|
||||
* .add(new Dataset.Builder()
|
||||
* .setPresentation(createFirstPresentation())
|
||||
* .add(new Dataset.Builder(createFirstPresentation())
|
||||
* .setTextFieldValue(id1, "homer")
|
||||
* .setTextFieldValue(id2, "D'OH!")
|
||||
* .build())
|
||||
* .add(new Dataset.Builder()
|
||||
* .setPresentation(createSecondPresentation())
|
||||
* .add(new Dataset.Builder(createSecondPresentation())
|
||||
* .setTextFieldValue(id1, "elbarto")
|
||||
* .setTextFieldValue(id2, "cowabonga")
|
||||
* .build())
|
||||
@@ -87,8 +84,7 @@ import java.util.ArrayList;
|
||||
*
|
||||
* <pre class="prettyprint">
|
||||
* new FillResponse.Builder()
|
||||
* .add(new Dataset.Builder(")
|
||||
* .setPresentation(createPresentation())
|
||||
* .add(new Dataset.Builder(createPresentation())
|
||||
* .setTextFieldValue(id1, "Homer") // first name
|
||||
* .setTextFieldValue(id2, "Simpson") // last name
|
||||
* .setTextFieldValue(id3, "742 Evergreen Terrace") // street
|
||||
@@ -116,13 +112,11 @@ import java.util.ArrayList;
|
||||
*
|
||||
* <pre class="prettyprint">
|
||||
* new FillResponse.Builder()
|
||||
* .add(new Dataset.Builder()
|
||||
* .setPresentation(createFirstPresentation())
|
||||
* .add(new Dataset.Builder(createFirstPresentation())
|
||||
* .setTextFieldValue(id1, "Homer")
|
||||
* .setTextFieldValue(id2, "Simpson")
|
||||
* .build())
|
||||
* .add(new Dataset.Builder()
|
||||
* .setPresentation(createSecondPresentation())
|
||||
* .add(new Dataset.Builder(createSecondPresentation())
|
||||
* .setTextFieldValue(id1, "Bart")
|
||||
* .setTextFieldValue(id2, "Simpson")
|
||||
* .build())
|
||||
@@ -134,13 +128,11 @@ import java.util.ArrayList;
|
||||
*
|
||||
* <pre class="prettyprint">
|
||||
* new FillResponse.Builder()
|
||||
* .add(new Dataset.Builder()
|
||||
* .setPresentation(createThirdPresentation())
|
||||
* .add(new Dataset.Builder(createThirdPresentation())
|
||||
* .setTextFieldValue(id3, "742 Evergreen Terrace")
|
||||
* .setTextFieldValue(id4, "Springfield")
|
||||
* .build())
|
||||
* .add(new Dataset.Builder()
|
||||
* .setPresentation(createFourthPresentation())
|
||||
* .add(new Dataset.Builder(createFourthPresentation())
|
||||
* .setTextFieldValue(id3, "Springfield Power Plant")
|
||||
* .setTextFieldValue(id4, "Springfield")
|
||||
* .build())
|
||||
@@ -216,23 +208,6 @@ public final class FillResponse implements Parcelable {
|
||||
private IntentSender mAuthentication;
|
||||
private boolean mDestroyed;
|
||||
|
||||
/**
|
||||
* Sets the presentation used to visualize this response. You should
|
||||
* set this only if you need an authentication as this is the only
|
||||
* case the response needs to be presented to the user.
|
||||
*
|
||||
* @param presentation The presentation view.
|
||||
*
|
||||
* @return This builder.
|
||||
*
|
||||
* @see #setAuthentication(IntentSender)
|
||||
*/
|
||||
public @NonNull
|
||||
FillResponse.Builder setPresentation(@Nullable RemoteViews presentation) {
|
||||
mPresentation = presentation;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Requires a fill response authentication before auto-filling the activity with
|
||||
* any data set in this response.
|
||||
@@ -259,19 +234,29 @@ public final class FillResponse implements Parcelable {
|
||||
* available data sets some of which may need to be further authenticated, for
|
||||
* example a credit card whose CVV needs to be entered.</p>
|
||||
*
|
||||
* <p>If you provide an authentication intent you must also provide a presentation
|
||||
* which is used to visualize visualize the response for triggering the authentication
|
||||
* flow.</p>
|
||||
*
|
||||
* <p></><strong>Note:</strong> Do not make the provided pending intent
|
||||
* immutable by using {@link android.app.PendingIntent#FLAG_IMMUTABLE} as the
|
||||
* platform needs to fill in the authentication arguments.</p>
|
||||
*
|
||||
* @param authentication Intent to an activity with your authentication flow.
|
||||
* @param presentation The presentation to visualize the response.
|
||||
* @return This builder.
|
||||
*
|
||||
* @see android.app.PendingIntent#getIntentSender()
|
||||
* @see #setPresentation(RemoteViews)
|
||||
*/
|
||||
public @NonNull Builder setAuthentication(@Nullable IntentSender authentication) {
|
||||
public @NonNull Builder setAuthentication(@Nullable IntentSender authentication,
|
||||
@Nullable RemoteViews presentation) {
|
||||
throwIfDestroyed();
|
||||
if (authentication == null ^ presentation == null) {
|
||||
throw new IllegalArgumentException("authentication and presentation"
|
||||
+ " must be both non-null or null");
|
||||
}
|
||||
mAuthentication = authentication;
|
||||
mPresentation = presentation;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -355,10 +340,6 @@ public final class FillResponse implements Parcelable {
|
||||
*/
|
||||
public FillResponse build() {
|
||||
throwIfDestroyed();
|
||||
if (mAuthentication == null ^ mPresentation == null) {
|
||||
throw new IllegalArgumentException("authentication and presentation"
|
||||
+ " must be both non-null or null");
|
||||
}
|
||||
if (mAuthentication == null && mDatasets == null && mSavableIds == null) {
|
||||
throw new IllegalArgumentException("need to provide at least one"
|
||||
+ " data set or savable ids or an authentication with a presentation");
|
||||
@@ -403,8 +384,8 @@ public final class FillResponse implements Parcelable {
|
||||
parcel.writeTypedArrayList(mDatasets, flags);
|
||||
parcel.writeTypedArraySet(mSavableIds, flags);
|
||||
parcel.writeParcelable(mExtras, flags);
|
||||
parcel.writeParcelable(mPresentation, flags);
|
||||
parcel.writeParcelable(mAuthentication, flags);
|
||||
parcel.writeParcelable(mPresentation, flags);
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator<FillResponse> CREATOR =
|
||||
@@ -426,8 +407,8 @@ public final class FillResponse implements Parcelable {
|
||||
builder.addSavableFields(fillIds.valueAt(i));
|
||||
}
|
||||
builder.setExtras(parcel.readParcelable(null));
|
||||
builder.setPresentation(parcel.readParcelable(null));
|
||||
builder.setAuthentication(parcel.readParcelable(null));
|
||||
builder.setAuthentication(parcel.readParcelable(null),
|
||||
parcel.readParcelable(null));
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user