Loading api/current.txt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -40467,6 +40467,7 @@ package android.service.autofill { method public android.service.autofill.FillResponse.Builder setHeader(android.widget.RemoteViews); method public android.service.autofill.FillResponse.Builder setHeader(android.widget.RemoteViews); method public android.service.autofill.FillResponse.Builder setIgnoredIds(android.view.autofill.AutofillId...); method public android.service.autofill.FillResponse.Builder setIgnoredIds(android.view.autofill.AutofillId...); method public android.service.autofill.FillResponse.Builder setSaveInfo(android.service.autofill.SaveInfo); method public android.service.autofill.FillResponse.Builder setSaveInfo(android.service.autofill.SaveInfo); method public android.service.autofill.FillResponse.Builder setUserData(android.service.autofill.UserData); } } public final class ImageTransformation implements android.os.Parcelable android.service.autofill.Transformation { public final class ImageTransformation implements android.os.Parcelable android.service.autofill.Transformation { core/java/android/service/autofill/AutofillFieldClassificationService.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -175,7 +175,7 @@ public abstract class AutofillFieldClassificationService extends Service { public float[][] onGetScores(@Nullable String algorithm, public float[][] onGetScores(@Nullable String algorithm, @Nullable Bundle algorithmOptions, @NonNull List<AutofillValue> actualValues, @Nullable Bundle algorithmOptions, @NonNull List<AutofillValue> actualValues, @NonNull List<String> userDataValues) { @NonNull List<String> userDataValues) { Log.e(TAG, "service implementation (" + getClass() + " does not implement onGetScore()"); Log.e(TAG, "service implementation (" + getClass() + " does not implement onGetScores()"); return null; return null; } } Loading core/java/android/service/autofill/FillResponse.java +31 −0 Original line number Original line Diff line number Diff line Loading @@ -84,6 +84,7 @@ public final class FillResponse implements Parcelable { private final @Nullable AutofillId[] mFieldClassificationIds; private final @Nullable AutofillId[] mFieldClassificationIds; private final int mFlags; private final int mFlags; private int mRequestId; private int mRequestId; private final @Nullable UserData mUserData; private FillResponse(@NonNull Builder builder) { private FillResponse(@NonNull Builder builder) { mDatasets = (builder.mDatasets != null) ? new ParceledListSlice<>(builder.mDatasets) : null; mDatasets = (builder.mDatasets != null) ? new ParceledListSlice<>(builder.mDatasets) : null; Loading @@ -99,6 +100,7 @@ public final class FillResponse implements Parcelable { mFieldClassificationIds = builder.mFieldClassificationIds; mFieldClassificationIds = builder.mFieldClassificationIds; mFlags = builder.mFlags; mFlags = builder.mFlags; mRequestId = INVALID_REQUEST_ID; mRequestId = INVALID_REQUEST_ID; mUserData = builder.mUserData; } } /** @hide */ /** @hide */ Loading Loading @@ -156,6 +158,11 @@ public final class FillResponse implements Parcelable { return mFieldClassificationIds; return mFieldClassificationIds; } } /** @hide */ public @Nullable UserData getUserData() { return mUserData; } /** @hide */ /** @hide */ @TestApi @TestApi public int getFlags() { public int getFlags() { Loading Loading @@ -198,6 +205,7 @@ public final class FillResponse implements Parcelable { private AutofillId[] mFieldClassificationIds; private AutofillId[] mFieldClassificationIds; private int mFlags; private int mFlags; private boolean mDestroyed; private boolean mDestroyed; private UserData mUserData; /** /** * Triggers a custom UI before before autofilling the screen with any data set in this * Triggers a custom UI before before autofilling the screen with any data set in this Loading Loading @@ -505,6 +513,21 @@ public final class FillResponse implements Parcelable { return this; return this; } } /** * Sets a specific {@link UserData} for field classification for this request only. * * @return this builder * @throws IllegalStateException if the FillResponse * {@link #setAuthentication(AutofillId[], IntentSender, RemoteViews) * requires authentication}. */ public Builder setUserData(@NonNull UserData userData) { throwIfDestroyed(); throwIfAuthenticationCalled(); mUserData = Preconditions.checkNotNull(userData); return this; } /** /** * Builds a new {@link FillResponse} instance. * Builds a new {@link FillResponse} instance. * * Loading Loading @@ -599,6 +622,9 @@ public final class FillResponse implements Parcelable { if (mFieldClassificationIds != null) { if (mFieldClassificationIds != null) { builder.append(Arrays.toString(mFieldClassificationIds)); builder.append(Arrays.toString(mFieldClassificationIds)); } } if (mUserData != null) { builder.append(", userData=").append(mUserData); } return builder.append("]").toString(); return builder.append("]").toString(); } } Loading @@ -621,6 +647,7 @@ public final class FillResponse implements Parcelable { parcel.writeParcelable(mPresentation, flags); parcel.writeParcelable(mPresentation, flags); parcel.writeParcelable(mHeader, flags); parcel.writeParcelable(mHeader, flags); parcel.writeParcelable(mFooter, flags); parcel.writeParcelable(mFooter, flags); parcel.writeParcelable(mUserData, flags); parcel.writeParcelableArray(mIgnoredIds, flags); parcel.writeParcelableArray(mIgnoredIds, flags); parcel.writeLong(mDisableDuration); parcel.writeLong(mDisableDuration); parcel.writeParcelableArray(mFieldClassificationIds, flags); parcel.writeParcelableArray(mFieldClassificationIds, flags); Loading Loading @@ -661,6 +688,10 @@ public final class FillResponse implements Parcelable { if (footer != null) { if (footer != null) { builder.setFooter(footer); builder.setFooter(footer); } } final UserData userData = parcel.readParcelable(null); if (userData != null) { builder.setUserData(userData); } builder.setIgnoredIds(parcel.readParcelableArray(null, AutofillId.class)); builder.setIgnoredIds(parcel.readParcelableArray(null, AutofillId.class)); final long disableDuration = parcel.readLong(); final long disableDuration = parcel.readLong(); Loading services/autofill/java/com/android/server/autofill/Session.java +9 −1 Original line number Original line Diff line number Diff line Loading @@ -1238,7 +1238,15 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState return; return; } } final UserData userData = mService.getUserData(); final UserData packageUserData = lastResponse.getUserData(); final UserData userData; if (packageUserData != null) { // Replace default userData userData = packageUserData; } else { userData = mService.getUserData(); } for (int i = 0; i < mViewStates.size(); i++) { for (int i = 0; i < mViewStates.size(); i++) { final ViewState viewState = mViewStates.valueAt(i); final ViewState viewState = mViewStates.valueAt(i); Loading Loading
api/current.txt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -40467,6 +40467,7 @@ package android.service.autofill { method public android.service.autofill.FillResponse.Builder setHeader(android.widget.RemoteViews); method public android.service.autofill.FillResponse.Builder setHeader(android.widget.RemoteViews); method public android.service.autofill.FillResponse.Builder setIgnoredIds(android.view.autofill.AutofillId...); method public android.service.autofill.FillResponse.Builder setIgnoredIds(android.view.autofill.AutofillId...); method public android.service.autofill.FillResponse.Builder setSaveInfo(android.service.autofill.SaveInfo); method public android.service.autofill.FillResponse.Builder setSaveInfo(android.service.autofill.SaveInfo); method public android.service.autofill.FillResponse.Builder setUserData(android.service.autofill.UserData); } } public final class ImageTransformation implements android.os.Parcelable android.service.autofill.Transformation { public final class ImageTransformation implements android.os.Parcelable android.service.autofill.Transformation {
core/java/android/service/autofill/AutofillFieldClassificationService.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -175,7 +175,7 @@ public abstract class AutofillFieldClassificationService extends Service { public float[][] onGetScores(@Nullable String algorithm, public float[][] onGetScores(@Nullable String algorithm, @Nullable Bundle algorithmOptions, @NonNull List<AutofillValue> actualValues, @Nullable Bundle algorithmOptions, @NonNull List<AutofillValue> actualValues, @NonNull List<String> userDataValues) { @NonNull List<String> userDataValues) { Log.e(TAG, "service implementation (" + getClass() + " does not implement onGetScore()"); Log.e(TAG, "service implementation (" + getClass() + " does not implement onGetScores()"); return null; return null; } } Loading
core/java/android/service/autofill/FillResponse.java +31 −0 Original line number Original line Diff line number Diff line Loading @@ -84,6 +84,7 @@ public final class FillResponse implements Parcelable { private final @Nullable AutofillId[] mFieldClassificationIds; private final @Nullable AutofillId[] mFieldClassificationIds; private final int mFlags; private final int mFlags; private int mRequestId; private int mRequestId; private final @Nullable UserData mUserData; private FillResponse(@NonNull Builder builder) { private FillResponse(@NonNull Builder builder) { mDatasets = (builder.mDatasets != null) ? new ParceledListSlice<>(builder.mDatasets) : null; mDatasets = (builder.mDatasets != null) ? new ParceledListSlice<>(builder.mDatasets) : null; Loading @@ -99,6 +100,7 @@ public final class FillResponse implements Parcelable { mFieldClassificationIds = builder.mFieldClassificationIds; mFieldClassificationIds = builder.mFieldClassificationIds; mFlags = builder.mFlags; mFlags = builder.mFlags; mRequestId = INVALID_REQUEST_ID; mRequestId = INVALID_REQUEST_ID; mUserData = builder.mUserData; } } /** @hide */ /** @hide */ Loading Loading @@ -156,6 +158,11 @@ public final class FillResponse implements Parcelable { return mFieldClassificationIds; return mFieldClassificationIds; } } /** @hide */ public @Nullable UserData getUserData() { return mUserData; } /** @hide */ /** @hide */ @TestApi @TestApi public int getFlags() { public int getFlags() { Loading Loading @@ -198,6 +205,7 @@ public final class FillResponse implements Parcelable { private AutofillId[] mFieldClassificationIds; private AutofillId[] mFieldClassificationIds; private int mFlags; private int mFlags; private boolean mDestroyed; private boolean mDestroyed; private UserData mUserData; /** /** * Triggers a custom UI before before autofilling the screen with any data set in this * Triggers a custom UI before before autofilling the screen with any data set in this Loading Loading @@ -505,6 +513,21 @@ public final class FillResponse implements Parcelable { return this; return this; } } /** * Sets a specific {@link UserData} for field classification for this request only. * * @return this builder * @throws IllegalStateException if the FillResponse * {@link #setAuthentication(AutofillId[], IntentSender, RemoteViews) * requires authentication}. */ public Builder setUserData(@NonNull UserData userData) { throwIfDestroyed(); throwIfAuthenticationCalled(); mUserData = Preconditions.checkNotNull(userData); return this; } /** /** * Builds a new {@link FillResponse} instance. * Builds a new {@link FillResponse} instance. * * Loading Loading @@ -599,6 +622,9 @@ public final class FillResponse implements Parcelable { if (mFieldClassificationIds != null) { if (mFieldClassificationIds != null) { builder.append(Arrays.toString(mFieldClassificationIds)); builder.append(Arrays.toString(mFieldClassificationIds)); } } if (mUserData != null) { builder.append(", userData=").append(mUserData); } return builder.append("]").toString(); return builder.append("]").toString(); } } Loading @@ -621,6 +647,7 @@ public final class FillResponse implements Parcelable { parcel.writeParcelable(mPresentation, flags); parcel.writeParcelable(mPresentation, flags); parcel.writeParcelable(mHeader, flags); parcel.writeParcelable(mHeader, flags); parcel.writeParcelable(mFooter, flags); parcel.writeParcelable(mFooter, flags); parcel.writeParcelable(mUserData, flags); parcel.writeParcelableArray(mIgnoredIds, flags); parcel.writeParcelableArray(mIgnoredIds, flags); parcel.writeLong(mDisableDuration); parcel.writeLong(mDisableDuration); parcel.writeParcelableArray(mFieldClassificationIds, flags); parcel.writeParcelableArray(mFieldClassificationIds, flags); Loading Loading @@ -661,6 +688,10 @@ public final class FillResponse implements Parcelable { if (footer != null) { if (footer != null) { builder.setFooter(footer); builder.setFooter(footer); } } final UserData userData = parcel.readParcelable(null); if (userData != null) { builder.setUserData(userData); } builder.setIgnoredIds(parcel.readParcelableArray(null, AutofillId.class)); builder.setIgnoredIds(parcel.readParcelableArray(null, AutofillId.class)); final long disableDuration = parcel.readLong(); final long disableDuration = parcel.readLong(); Loading
services/autofill/java/com/android/server/autofill/Session.java +9 −1 Original line number Original line Diff line number Diff line Loading @@ -1238,7 +1238,15 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState return; return; } } final UserData userData = mService.getUserData(); final UserData packageUserData = lastResponse.getUserData(); final UserData userData; if (packageUserData != null) { // Replace default userData userData = packageUserData; } else { userData = mService.getUserData(); } for (int i = 0; i < mViewStates.size(); i++) { for (int i = 0; i < mViewStates.size(); i++) { final ViewState viewState = mViewStates.valueAt(i); final ViewState viewState = mViewStates.valueAt(i); Loading