Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ad619b2 authored by Feng Cao's avatar Feng Cao
Browse files

Extend augmented autofill service APIs to support inline suggestion.

Test: manual
Bug: 146453195

Change-Id: Ia094c93741187f55183d5e2213ff5eef076efc9d
parent c2517eee
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -7979,6 +7979,7 @@ package android.service.autofill.augmented {
    method @NonNull public android.content.ComponentName getActivityComponent();
    method @NonNull public android.view.autofill.AutofillId getFocusedId();
    method @NonNull public android.view.autofill.AutofillValue getFocusedValue();
    method @Nullable public android.view.inputmethod.InlineSuggestionsRequest getInlineSuggestionsRequest();
    method @Nullable public android.service.autofill.augmented.PresentationParams getPresentationParams();
    method public int getTaskId();
  }
@@ -7989,7 +7990,8 @@ package android.service.autofill.augmented {
  public static final class FillResponse.Builder {
    ctor public FillResponse.Builder();
    method @NonNull public android.service.autofill.augmented.FillResponse build();
    method @NonNull public android.service.autofill.augmented.FillResponse.Builder setFillWindow(@NonNull android.service.autofill.augmented.FillWindow);
    method @NonNull public android.service.autofill.augmented.FillResponse.Builder setFillWindow(@Nullable android.service.autofill.augmented.FillWindow);
    method @NonNull public android.service.autofill.augmented.FillResponse.Builder setInlineSuggestions(@Nullable java.util.List<android.service.autofill.Dataset>);
  }
  public final class FillWindow implements java.lang.AutoCloseable {
+3 −1
Original line number Diff line number Diff line
@@ -2785,6 +2785,7 @@ package android.service.autofill.augmented {
    method @NonNull public android.content.ComponentName getActivityComponent();
    method @NonNull public android.view.autofill.AutofillId getFocusedId();
    method @NonNull public android.view.autofill.AutofillValue getFocusedValue();
    method @Nullable public android.view.inputmethod.InlineSuggestionsRequest getInlineSuggestionsRequest();
    method @Nullable public android.service.autofill.augmented.PresentationParams getPresentationParams();
    method public int getTaskId();
  }
@@ -2795,7 +2796,8 @@ package android.service.autofill.augmented {
  public static final class FillResponse.Builder {
    ctor public FillResponse.Builder();
    method @NonNull public android.service.autofill.augmented.FillResponse build();
    method @NonNull public android.service.autofill.augmented.FillResponse.Builder setFillWindow(@NonNull android.service.autofill.augmented.FillWindow);
    method @NonNull public android.service.autofill.augmented.FillResponse.Builder setFillWindow(@Nullable android.service.autofill.augmented.FillWindow);
    method @NonNull public android.service.autofill.augmented.FillResponse.Builder setInlineSuggestions(@Nullable java.util.List<android.service.autofill.Dataset>);
  }

  public final class FillWindow implements java.lang.AutoCloseable {
+19 −0
Original line number Diff line number Diff line
/**
 * Copyright (c) 2019, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.service.autofill;

parcelable Dataset;
+4 −4
Original line number Diff line number Diff line
@@ -236,9 +236,9 @@ public abstract class AugmentedAutofillService extends Service {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
        }

        onFillRequest(new FillRequest(proxy), cancellationSignal, new FillController(proxy),
                new FillCallback(proxy));
        // TODO(b/146453195): pass the inline suggestion request over.
        onFillRequest(new FillRequest(proxy, /* inlineSuggestionsRequest= */null),
                cancellationSignal, new FillController(proxy), new FillCallback(proxy));
    }

    private void handleOnDestroyAllFillWindowsRequest() {
@@ -500,7 +500,7 @@ public abstract class AugmentedAutofillService extends Service {
                        }
                    }
                    try {
                        mCallback.onSuccess();
                        mCallback.onSuccess(/* mInlineSuggestionsData= */null);
                    } catch (RemoteException e) {
                        Log.e(TAG, "Error reporting success: " + e);
                    }
+83 −8
Original line number Diff line number Diff line
@@ -23,6 +23,9 @@ import android.content.ComponentName;
import android.service.autofill.augmented.AugmentedAutofillService.AutofillProxy;
import android.view.autofill.AutofillId;
import android.view.autofill.AutofillValue;
import android.view.inputmethod.InlineSuggestionsRequest;

import com.android.internal.util.DataClass;

/**
 * Represents a request to augment-fill an activity.
@@ -31,14 +34,20 @@ import android.view.autofill.AutofillValue;
@SystemApi
// TODO(b/123100811): pass a requestId and/or sessionId?
@TestApi
@DataClass(
        genToString = true,
        genBuilder = false,
        genHiddenConstructor = true)
@DataClass.Suppress({"getProxy"})
public final class FillRequest {

    final AutofillProxy mProxy;
    private final @NonNull AutofillProxy mProxy;

    /** @hide */
    FillRequest(@NonNull AutofillProxy proxy) {
        mProxy = proxy;
    }
    //TODO(b/146901891): add detailed docs once we have stable APIs.
    /**
     * An optional request for inline suggestions.
     */
    private final @Nullable InlineSuggestionsRequest mInlineSuggestionsRequest;

    /**
     * Gets the task of the activity associated with this request.
@@ -81,10 +90,76 @@ public final class FillRequest {
        return mProxy.getSmartSuggestionParams();
    }

    @NonNull
    @Override
    public String toString() {
    String proxyToString() {
        return "FillRequest[act=" + getActivityComponent().flattenToShortString()
                + ", id=" + mProxy.getFocusedId() + "]";
    }




    // Code below generated by codegen v1.0.14.
    //
    // DO NOT MODIFY!
    // CHECKSTYLE:OFF Generated code
    //
    // To regenerate run:
    // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/service/autofill/augmented/FillRequest.java
    //
    // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
    //   Settings > Editor > Code Style > Formatter Control
    //@formatter:off


    /**
     * Creates a new FillRequest.
     *
     * @param inlineSuggestionsRequest
     *   An optional request for inline suggestions.
     * @hide
     */
    @DataClass.Generated.Member
    public FillRequest(
            @NonNull AutofillProxy proxy,
            @Nullable InlineSuggestionsRequest inlineSuggestionsRequest) {
        this.mProxy = proxy;
        com.android.internal.util.AnnotationValidations.validate(
                NonNull.class, null, mProxy);
        this.mInlineSuggestionsRequest = inlineSuggestionsRequest;

        // onConstructed(); // You can define this method to get a callback
    }

    /**
     * An optional request for inline suggestions.
     */
    @DataClass.Generated.Member
    public @Nullable InlineSuggestionsRequest getInlineSuggestionsRequest() {
        return mInlineSuggestionsRequest;
    }

    @Override
    @DataClass.Generated.Member
    public String toString() {
        // You can override field toString logic by defining methods like:
        // String fieldNameToString() { ... }

        return "FillRequest { " +
                "proxy = " + proxyToString() + ", " +
                "inlineSuggestionsRequest = " + mInlineSuggestionsRequest +
        " }";
    }

    @DataClass.Generated(
            time = 1577399314707L,
            codegenVersion = "1.0.14",
            sourceFile = "frameworks/base/core/java/android/service/autofill/augmented/FillRequest.java",
            inputSignatures = "private final @android.annotation.NonNull android.service.autofill.augmented.AugmentedAutofillService.AutofillProxy mProxy\nprivate final @android.annotation.Nullable android.view.inputmethod.InlineSuggestionsRequest mInlineSuggestionsRequest\npublic  int getTaskId()\npublic @android.annotation.NonNull android.content.ComponentName getActivityComponent()\npublic @android.annotation.NonNull android.view.autofill.AutofillId getFocusedId()\npublic @android.annotation.NonNull android.view.autofill.AutofillValue getFocusedValue()\npublic @android.annotation.Nullable android.service.autofill.augmented.PresentationParams getPresentationParams()\n  java.lang.String proxyToString()\nclass FillRequest extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genToString=true, genBuilder=false, genHiddenConstructor=true)")
    @Deprecated
    private void __metadata() {}


    //@formatter:on
    // End of generated code

}
Loading