Autofill, Content Capture, and Augmented Autofill API fixes:
- Added @Nullable / @NonNull on some returned values.
- Removed APIs that won't be implemented for Q.
- Made Builders final.
Test: m update-api
Bug: 123100695
Fixes: 126702168
Fixes: 126701052
Fixes: 126702191
Fixes: 126700602
Fixes: 126700135
Fixes: 126700413
Fixes: 126698817
Fixes: 126698792
Change-Id: I20710537c02051361da18370bc5cc642cc3c26e1
diff --git a/core/java/android/content/LocusId.java b/core/java/android/content/LocusId.java
index 9548f9c..d669728 100644
--- a/core/java/android/content/LocusId.java
+++ b/core/java/android/content/LocusId.java
@@ -101,12 +101,14 @@
public static final Parcelable.Creator<LocusId> CREATOR =
new Parcelable.Creator<LocusId>() {
+ @NonNull
@Override
public LocusId createFromParcel(Parcel source) {
final Uri uri = source.readParcelable(null);
return new LocusId(uri);
}
+ @NonNull
@Override
public LocusId[] newArray(int size) {
return new LocusId[size];
diff --git a/core/java/android/service/autofill/VisibilitySetterAction.java b/core/java/android/service/autofill/VisibilitySetterAction.java
index 9f977d7..81f5d38 100644
--- a/core/java/android/service/autofill/VisibilitySetterAction.java
+++ b/core/java/android/service/autofill/VisibilitySetterAction.java
@@ -70,7 +70,7 @@
/**
* Builder for {@link VisibilitySetterAction} objects.
*/
- public static class Builder {
+ public static final class Builder {
private final SparseIntArray mVisibilities = new SparseIntArray();
private boolean mDestroyed;
@@ -96,6 +96,7 @@
* @throws IllegalArgumentException if visibility is not one of {@link View#VISIBLE},
* {@link View#INVISIBLE}, or {@link View#GONE}.
*/
+ @NonNull
public Builder setVisibility(@IdRes int id, @Visibility int visibility) {
throwIfDestroyed();
switch (visibility) {
@@ -111,6 +112,7 @@
/**
* Creates a new {@link VisibilitySetterAction} instance.
*/
+ @NonNull
public VisibilitySetterAction build() {
throwIfDestroyed();
mDestroyed = true;
@@ -147,6 +149,8 @@
public static final Parcelable.Creator<VisibilitySetterAction> CREATOR =
new Parcelable.Creator<VisibilitySetterAction>() {
+
+ @NonNull
@Override
public VisibilitySetterAction createFromParcel(Parcel parcel) {
// Always go through the builder to ensure the data ingested by
@@ -165,6 +169,7 @@
return builder == null ? null : builder.build();
}
+ @NonNull
@Override
public VisibilitySetterAction[] newArray(int size) {
return new VisibilitySetterAction[size];
diff --git a/core/java/android/service/autofill/augmented/FillResponse.java b/core/java/android/service/autofill/augmented/FillResponse.java
index 2ac406c..48a3c1b 100644
--- a/core/java/android/service/autofill/augmented/FillResponse.java
+++ b/core/java/android/service/autofill/augmented/FillResponse.java
@@ -19,9 +19,6 @@
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.TestApi;
-import android.view.autofill.AutofillId;
-
-import java.util.List;
/**
* Response to a {@link FillRequest}.
@@ -63,6 +60,7 @@
*
* @return this builder
*/
+ @NonNull
public Builder setFillWindow(@NonNull FillWindow fillWindow) {
// TODO(b/123100712): check not null / unit test / throw exception if FillWindow not
// updated yet
@@ -71,19 +69,6 @@
}
/**
- * Tells the Android System that the given {@code ids} should not trigger further
- * {@link FillRequest requests} when focused.
- *
- * @param ids ids of the fields that should be ignored
- *
- * @return this builder
- */
- public Builder setIgnoredIds(@NonNull List<AutofillId> ids) {
- // TODO(b/123100695): implement / check not null / unit test
- return this;
- }
-
- /**
* Builds a new {@link FillResponse} instance.
*
* @throws IllegalStateException if any of the following conditions occur:
@@ -95,6 +80,7 @@
*
* @return A built response.
*/
+ @NonNull
public FillResponse build() {
// TODO(b/123100712): check conditions / add unit test
return new FillResponse(this);
diff --git a/core/java/android/service/contentcapture/SnapshotData.java b/core/java/android/service/contentcapture/SnapshotData.java
index c3af1f0..58ec2ff 100644
--- a/core/java/android/service/contentcapture/SnapshotData.java
+++ b/core/java/android/service/contentcapture/SnapshotData.java
@@ -60,6 +60,7 @@
/**
* Returns the assist data for this snapshot.
*/
+ @NonNull
public Bundle getAssistData() {
return mAssistData;
}
@@ -67,6 +68,7 @@
/**
* Returns the assist structure for this snapshot.
*/
+ @NonNull
public AssistStructure getAssistStructure() {
return mAssistStructure;
}
@@ -74,6 +76,7 @@
/**
* Returns the assist context for this snapshot.
*/
+ @Nullable
public AssistContent getAssistContent() {
return mAssistContent;
}
@@ -94,11 +97,13 @@
new Creator<SnapshotData>() {
@Override
+ @NonNull
public SnapshotData createFromParcel(@NonNull Parcel parcel) {
return new SnapshotData(parcel);
}
@Override
+ @NonNull
public SnapshotData[] newArray(int size) {
return new SnapshotData[size];
}
diff --git a/core/java/android/view/contentcapture/ContentCaptureContext.java b/core/java/android/view/contentcapture/ContentCaptureContext.java
index 8bb4d21..f2d958f 100644
--- a/core/java/android/view/contentcapture/ContentCaptureContext.java
+++ b/core/java/android/view/contentcapture/ContentCaptureContext.java
@@ -214,6 +214,7 @@
/**
* Helper that creates a {@link ContentCaptureContext} associated with the given {@code uri}.
*/
+ @NonNull
public static ContentCaptureContext forLocusId(@NonNull Uri uri) {
return new Builder(new LocusId(uri)).build();
}
@@ -269,6 +270,7 @@
*
* @return the built {@code ContentCaptureContext}
*/
+ @NonNull
public ContentCaptureContext build() {
throwIfDestroyed();
mDestroyed = true;
@@ -355,6 +357,7 @@
new Parcelable.Creator<ContentCaptureContext>() {
@Override
+ @NonNull
public ContentCaptureContext createFromParcel(Parcel parcel) {
final boolean hasClientContext = parcel.readInt() == 1;
@@ -383,6 +386,7 @@
}
@Override
+ @NonNull
public ContentCaptureContext[] newArray(int size) {
return new ContentCaptureContext[size];
}
diff --git a/core/java/android/view/contentcapture/ContentCaptureEvent.java b/core/java/android/view/contentcapture/ContentCaptureEvent.java
index 2585b74..46c3414 100644
--- a/core/java/android/view/contentcapture/ContentCaptureEvent.java
+++ b/core/java/android/view/contentcapture/ContentCaptureEvent.java
@@ -387,6 +387,7 @@
new Parcelable.Creator<ContentCaptureEvent>() {
@Override
+ @NonNull
public ContentCaptureEvent createFromParcel(Parcel parcel) {
final String sessionId = parcel.readString();
final int type = parcel.readInt();
@@ -415,6 +416,7 @@
}
@Override
+ @NonNull
public ContentCaptureEvent[] newArray(int size) {
return new ContentCaptureEvent[size];
}
diff --git a/core/java/android/view/contentcapture/ContentCaptureSession.java b/core/java/android/view/contentcapture/ContentCaptureSession.java
index ab8f346..6bf1eba 100644
--- a/core/java/android/view/contentcapture/ContentCaptureSession.java
+++ b/core/java/android/view/contentcapture/ContentCaptureSession.java
@@ -208,6 +208,7 @@
/**
* Gets the id used to identify this session.
*/
+ @NonNull
public final ContentCaptureSessionId getContentCaptureSessionId() {
if (mContentCaptureSessionId == null) {
mContentCaptureSessionId = new ContentCaptureSessionId(mId);
diff --git a/core/java/android/view/contentcapture/ContentCaptureSessionId.java b/core/java/android/view/contentcapture/ContentCaptureSessionId.java
index d7f9fcc..9b1f172 100644
--- a/core/java/android/view/contentcapture/ContentCaptureSessionId.java
+++ b/core/java/android/view/contentcapture/ContentCaptureSessionId.java
@@ -100,11 +100,13 @@
new Parcelable.Creator<ContentCaptureSessionId>() {
@Override
+ @NonNull
public ContentCaptureSessionId createFromParcel(Parcel parcel) {
return new ContentCaptureSessionId(parcel.readString());
}
@Override
+ @NonNull
public ContentCaptureSessionId[] newArray(int size) {
return new ContentCaptureSessionId[size];
}
diff --git a/core/java/android/view/contentcapture/UserDataRemovalRequest.java b/core/java/android/view/contentcapture/UserDataRemovalRequest.java
index 7d66af9..170a3a9 100644
--- a/core/java/android/view/contentcapture/UserDataRemovalRequest.java
+++ b/core/java/android/view/contentcapture/UserDataRemovalRequest.java
@@ -121,6 +121,7 @@
*
* @return this builder
*/
+ @NonNull
public Builder addLocusId(@NonNull LocusId locusId, boolean recursive) {
throwIfDestroyed();
Preconditions.checkState(!mForEverything, "Already is for everything");
@@ -178,11 +179,13 @@
new Parcelable.Creator<UserDataRemovalRequest>() {
@Override
+ @NonNull
public UserDataRemovalRequest createFromParcel(Parcel parcel) {
return new UserDataRemovalRequest(parcel);
}
@Override
+ @NonNull
public UserDataRemovalRequest[] newArray(int size) {
return new UserDataRemovalRequest[size];
}
diff --git a/core/java/android/webkit/WebViewProvider.java b/core/java/android/webkit/WebViewProvider.java
index baf5826..4c8f72a 100644
--- a/core/java/android/webkit/WebViewProvider.java
+++ b/core/java/android/webkit/WebViewProvider.java
@@ -351,7 +351,7 @@
}
default void onProvideContentCaptureStructure(
- @SuppressWarnings("unused") android.view.ViewStructure structure,
+ @NonNull @SuppressWarnings("unused") android.view.ViewStructure structure,
@SuppressWarnings("unused") int flags) {
}