Loading core/api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -39613,6 +39613,7 @@ package android.service.autofill { method @Deprecated @NonNull public android.service.autofill.FillResponse.Builder setAuthentication(@NonNull android.view.autofill.AutofillId[], @Nullable android.content.IntentSender, @Nullable android.widget.RemoteViews, @Nullable android.service.autofill.InlinePresentation, @Nullable android.service.autofill.InlinePresentation); method @NonNull public android.service.autofill.FillResponse.Builder setAuthentication(@NonNull android.view.autofill.AutofillId[], @Nullable android.content.IntentSender, @Nullable android.service.autofill.Presentations); method @NonNull public android.service.autofill.FillResponse.Builder setClientState(@Nullable android.os.Bundle); method @NonNull public android.service.autofill.FillResponse.Builder setDetectedFieldClassifications(@NonNull java.util.Set<android.service.assist.classification.FieldClassification>); method @NonNull public android.service.autofill.FillResponse.Builder setDialogHeader(@NonNull android.widget.RemoteViews); method @NonNull public android.service.autofill.FillResponse.Builder setFieldClassificationIds(@NonNull android.view.autofill.AutofillId...); method @NonNull public android.service.autofill.FillResponse.Builder setFillDialogTriggerIds(@NonNull android.view.autofill.AutofillId...); core/api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -2550,6 +2550,7 @@ package android.service.autofill { } public final class FillResponse implements android.os.Parcelable { method @NonNull public java.util.Set<android.service.assist.classification.FieldClassification> getDetectedFieldClassifications(); method public int getFlags(); } Loading core/java/android/service/autofill/FillResponse.java +40 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.content.pm.ParceledListSlice; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.service.assist.classification.FieldClassification; import android.view.autofill.AutofillId; import android.widget.RemoteViews; Loading @@ -45,6 +46,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.Set; /** * Response for an {@link Loading Loading @@ -113,6 +115,7 @@ public final class FillResponse implements Parcelable { private final @StringRes int mServiceDisplayNameResourceId; private final boolean mShowFillDialogIcon; private final boolean mShowSaveDialogIcon; private final @Nullable FieldClassification[] mDetectedFieldTypes; private FillResponse(@NonNull Builder builder) { mDatasets = (builder.mDatasets != null) ? new ParceledListSlice<>(builder.mDatasets) : null; Loading Loading @@ -140,6 +143,14 @@ public final class FillResponse implements Parcelable { mServiceDisplayNameResourceId = builder.mServiceDisplayNameResourceId; mShowFillDialogIcon = builder.mShowFillDialogIcon; mShowSaveDialogIcon = builder.mShowSaveDialogIcon; mDetectedFieldTypes = builder.mDetectedFieldTypes; } /** @hide */ @TestApi @NonNull public Set<FieldClassification> getDetectedFieldClassifications() { return Set.of(mDetectedFieldTypes); } /** @hide */ Loading Loading @@ -312,6 +323,28 @@ public final class FillResponse implements Parcelable { private int mServiceDisplayNameResourceId; private boolean mShowFillDialogIcon = true; private boolean mShowSaveDialogIcon = true; private FieldClassification[] mDetectedFieldTypes; /** * Adds a new {@link FieldClassification} to this response, to * help the platform provide more accurate detection results. * * Call this when a field has been detected with a type. * * Altough similiarly named with {@link setFieldClassificationIds}, * it provides a different functionality - setFieldClassificationIds should * be used when a field is only suspected to be Autofillable. * This method should be used when a field is certainly Autofillable * with a certain type. */ @NonNull public Builder setDetectedFieldClassifications( @NonNull Set<FieldClassification> fieldInfos) { throwIfDestroyed(); throwIfDisableAutofillCalled(); mDetectedFieldTypes = fieldInfos.toArray(new FieldClassification[0]); return this; } /** * Triggers a custom UI before autofilling the screen with any data set in this Loading Loading @@ -1122,6 +1155,7 @@ public final class FillResponse implements Parcelable { parcel.writeParcelableArray(mIgnoredIds, flags); parcel.writeLong(mDisableDuration); parcel.writeParcelableArray(mFieldClassificationIds, flags); parcel.writeParcelableArray(mDetectedFieldTypes, flags); parcel.writeInt(mIconResourceId); parcel.writeInt(mServiceDisplayNameResourceId); parcel.writeBoolean(mShowFillDialogIcon); Loading Loading @@ -1192,6 +1226,12 @@ public final class FillResponse implements Parcelable { builder.setFieldClassificationIds(fieldClassifactionIds); } final FieldClassification[] detectedFields = parcel.readParcelableArray(null, FieldClassification.class); if (detectedFields != null) { builder.setDetectedFieldClassifications(Set.of(detectedFields)); } builder.setIconResourceId(parcel.readInt()); builder.setServiceDisplayNameResourceId(parcel.readInt()); builder.setShowFillDialogIcon(parcel.readBoolean()); Loading Loading
core/api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -39613,6 +39613,7 @@ package android.service.autofill { method @Deprecated @NonNull public android.service.autofill.FillResponse.Builder setAuthentication(@NonNull android.view.autofill.AutofillId[], @Nullable android.content.IntentSender, @Nullable android.widget.RemoteViews, @Nullable android.service.autofill.InlinePresentation, @Nullable android.service.autofill.InlinePresentation); method @NonNull public android.service.autofill.FillResponse.Builder setAuthentication(@NonNull android.view.autofill.AutofillId[], @Nullable android.content.IntentSender, @Nullable android.service.autofill.Presentations); method @NonNull public android.service.autofill.FillResponse.Builder setClientState(@Nullable android.os.Bundle); method @NonNull public android.service.autofill.FillResponse.Builder setDetectedFieldClassifications(@NonNull java.util.Set<android.service.assist.classification.FieldClassification>); method @NonNull public android.service.autofill.FillResponse.Builder setDialogHeader(@NonNull android.widget.RemoteViews); method @NonNull public android.service.autofill.FillResponse.Builder setFieldClassificationIds(@NonNull android.view.autofill.AutofillId...); method @NonNull public android.service.autofill.FillResponse.Builder setFillDialogTriggerIds(@NonNull android.view.autofill.AutofillId...);
core/api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -2550,6 +2550,7 @@ package android.service.autofill { } public final class FillResponse implements android.os.Parcelable { method @NonNull public java.util.Set<android.service.assist.classification.FieldClassification> getDetectedFieldClassifications(); method public int getFlags(); } Loading
core/java/android/service/autofill/FillResponse.java +40 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.content.pm.ParceledListSlice; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.service.assist.classification.FieldClassification; import android.view.autofill.AutofillId; import android.widget.RemoteViews; Loading @@ -45,6 +46,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.Set; /** * Response for an {@link Loading Loading @@ -113,6 +115,7 @@ public final class FillResponse implements Parcelable { private final @StringRes int mServiceDisplayNameResourceId; private final boolean mShowFillDialogIcon; private final boolean mShowSaveDialogIcon; private final @Nullable FieldClassification[] mDetectedFieldTypes; private FillResponse(@NonNull Builder builder) { mDatasets = (builder.mDatasets != null) ? new ParceledListSlice<>(builder.mDatasets) : null; Loading Loading @@ -140,6 +143,14 @@ public final class FillResponse implements Parcelable { mServiceDisplayNameResourceId = builder.mServiceDisplayNameResourceId; mShowFillDialogIcon = builder.mShowFillDialogIcon; mShowSaveDialogIcon = builder.mShowSaveDialogIcon; mDetectedFieldTypes = builder.mDetectedFieldTypes; } /** @hide */ @TestApi @NonNull public Set<FieldClassification> getDetectedFieldClassifications() { return Set.of(mDetectedFieldTypes); } /** @hide */ Loading Loading @@ -312,6 +323,28 @@ public final class FillResponse implements Parcelable { private int mServiceDisplayNameResourceId; private boolean mShowFillDialogIcon = true; private boolean mShowSaveDialogIcon = true; private FieldClassification[] mDetectedFieldTypes; /** * Adds a new {@link FieldClassification} to this response, to * help the platform provide more accurate detection results. * * Call this when a field has been detected with a type. * * Altough similiarly named with {@link setFieldClassificationIds}, * it provides a different functionality - setFieldClassificationIds should * be used when a field is only suspected to be Autofillable. * This method should be used when a field is certainly Autofillable * with a certain type. */ @NonNull public Builder setDetectedFieldClassifications( @NonNull Set<FieldClassification> fieldInfos) { throwIfDestroyed(); throwIfDisableAutofillCalled(); mDetectedFieldTypes = fieldInfos.toArray(new FieldClassification[0]); return this; } /** * Triggers a custom UI before autofilling the screen with any data set in this Loading Loading @@ -1122,6 +1155,7 @@ public final class FillResponse implements Parcelable { parcel.writeParcelableArray(mIgnoredIds, flags); parcel.writeLong(mDisableDuration); parcel.writeParcelableArray(mFieldClassificationIds, flags); parcel.writeParcelableArray(mDetectedFieldTypes, flags); parcel.writeInt(mIconResourceId); parcel.writeInt(mServiceDisplayNameResourceId); parcel.writeBoolean(mShowFillDialogIcon); Loading Loading @@ -1192,6 +1226,12 @@ public final class FillResponse implements Parcelable { builder.setFieldClassificationIds(fieldClassifactionIds); } final FieldClassification[] detectedFields = parcel.readParcelableArray(null, FieldClassification.class); if (detectedFields != null) { builder.setDetectedFieldClassifications(Set.of(detectedFields)); } builder.setIconResourceId(parcel.readInt()); builder.setServiceDisplayNameResourceId(parcel.readInt()); builder.setShowFillDialogIcon(parcel.readBoolean()); Loading