Merge "Move the presentation view to proper location."

This commit is contained in:
TreeHugger Robot
2017-02-22 03:31:49 +00:00
committed by Android (Google) Code Review
5 changed files with 35 additions and 66 deletions

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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();
}

View File

@@ -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();
}